python二次开发Solidworks:圆+样条曲线草图

以下代码实现在Solidworks中构建草图,在草图中绘制了一个圆和一根样条曲线,并实现全约束。

import numpy as np
import win32com.client as win32
import pythoncom
def vtPoint(x, y, z):# 坐标点转化为浮点数return win32.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x, y, z))def vtObj(obj):# 转化为对象数组return win32.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_DISPATCH, obj)def vtFloat(list):# 列表转化为浮点数return win32.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, list)def vtInt(list):# 列表转化为整数return win32.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_I2, list)def vtVariant(list):# 列表转化为变体return win32.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_VARIANT, list)swApp = win32.Dispatch('sldworks.application')
swApp.Visible = True
Nothing = win32.VARIANT(pythoncom.VT_DISPATCH, None)
Part = swApp.NewDocument(r"C:\ProgramData\SolidWorks\SOLIDWORKS 2016\templates\gb_part.prtdot", 0, 0, 0)
# Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch(True)
Part.ClearSelection2(True)
Part.SketchManager.CreateCircle(0, 0, 0, 0.058688, 0.001201, 0)
Part.ClearSelection2(True)
Part.SketchManager.CreateCenterLine(-0.078937, 0, 0, 0.094381, 0, 0)
Part.ClearSelection2(True)
Part.SketchManager.CreateCenterLine(0, 0.085286, 0, 0, -0.084943, 0)
Part.ClearSelection2(True)
points=(-4.10648844451184E-02,4.19275921015285E-02,0,-2.47106162035851E-02,2.72846387247918E-02,0,1.23553081017925E-02,2.38526086965161E-02,0,0.03672272130255,2.52254207078264E-02,0,5.77327604333032E-02,1.05440071450045E-02,0)
pointsarray=vtFloat(points)
# pointsarray=win32.VARIANT(12,points)
Part.SketchManager.CreateSpline2(pointsarray,boolstatus)
Part.ClearSelection2(True)boolstatus = Part.Extension.SelectByID2("Point8", "SKETCHPOINT", -4.10648844451184E-02, 4.19275921015285E-02, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", -3.98739928799935E-02, 8.58007507068922E-04, 0, True, 0, Nothing, 0)
myDisplayDim = Part.AddDimension2(-0.110573811462473, 2.38526086965161E-02, 0)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Point10", "SKETCHPOINT", -2.47106162035851E-02, 2.72846387247918E-02, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", -3.98739928799935E-02, 8.58007507068922E-04, 0, True, 0, Nothing, 0)
myDisplayDim = Part.AddDimension2(-3.26667298206146E-02, 9.0948795749306E-03, 0)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Point11", "SKETCHPOINT", 1.23553081017925E-02, 2.38526086965161E-02, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", -3.98739928799935E-02, 8.58007507068922E-04, 0, True, 0, Nothing, 0)
myDisplayDim = Part.AddDimension2(1.67545025865555E-02, 7.72206756362032E-03, 0)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Point12", "SKETCHPOINT", 0.03672272130255, 2.52254207078264E-02, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", -3.98739928799935E-02, 8.58007507068922E-04, 0, True, 0, Nothing, 0)
myDisplayDim = Part.AddDimension2(3.32282467222789E-02, 0.011154097591896, 0)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Point9", "SKETCHPOINT", 5.77327604333032E-02, 1.05440071450045E-02, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", -3.98739928799935E-02, 8.58007507068922E-04, 0, True, 0, Nothing, 0)
myDisplayDim = Part.AddDimension2(8.81407271746901E-02, 0.013556518611689, 0)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Point9", "SKETCHPOINT", 5.77327604333032E-02, 1.05440071450045E-02, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 2.80758450832141E-04, 0.047876818894446, 0, True, 0, Nothing, 0)
myDisplayDim = Part.AddDimension2(8.23062761266213E-02, 7.63626681291343E-02, 0)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Point12", "SKETCHPOINT", 0.03672272130255, 2.52254207078264E-02, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 2.80758450832141E-04, 0.047876818894446, 0, True, 0, Nothing, 0)
myDisplayDim = Part.AddDimension2(8.02470581096559E-02, 5.95457209905834E-02, 0)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Point11", "SKETCHPOINT", 1.23553081017925E-02, 2.38526086965161E-02, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 2.80758450832141E-04, 0.047876818894446, 0, True, 0, Nothing, 0)
myDisplayDim = Part.AddDimension2(2.56777806600723E-02, 4.47879918689979E-02, 0)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Point10", "SKETCHPOINT", -2.47106162035851E-02, 2.72846387247918E-02, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 2.80758450832141E-04, 0.047876818894446, 0, True, 0, Nothing, 0)
myDisplayDim = Part.AddDimension2(-1.20745496509604E-02, 4.61608038803081E-02, 0)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Point8", "SKETCHPOINT", -4.10648844451184E-02, 4.19275921015285E-02, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", -3.98739928799935E-02, 8.58007507068922E-04, 0, True, 0, Nothing, 0)
myDisplayDim = Part.AddDimension2(-3.57555568460627E-02, 6.50369690358245E-02, 0)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", -5.25725039846136E-02, -2.38526086965161E-02, 0, False, 0, Nothing, 0)
myDisplayDim = Part.AddDimension2(3.02638247345272E-03, -9.59252392903058E-02, 0)
Part.ClearSelection2(True)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/162337.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IF: 22.1, 中科院1区TOP刊被剔除WOS (10月SCI/SSCI目录已更新)~

2023年10月17日,科睿唯安更新了Web of Science核心期刊目录。 此次更新后SCIE期刊目录共包含9485本期刊,SSCI期刊目录共包含3551本期刊。此次SCIE & SSCI期刊目录更新,与上次更新(2023年9月)相比,共有7…

【MySQL】面试题

引言 :MySQL面试题及答案 【最新版】 目录 1、NOW()和CURRENT_DATE()有什么区别?2、CHAR和VARCHAR的区别?3、主键索引与唯一索引的区别4、MySQL中有哪些不同的表格?5、SQL的生命周期…

如何做好需求收集?方法和步骤

需求收集是理解你想要构建什么以及为什么要构建它的过程。需求收集通常被视为开发软件应用,或开发硬件产品的一部分。其重要性不言而喻。据调查显示50%以上产品在市场上失败的原因,是由于忽视了用户需求。 一、需求收集为什么会困难? 困扰项…

深入了解Spring Boot Actuator

文章目录 引言什么是ActuatorActuator的底层技术和原理端点自动配置端点请求处理端点数据提供端点数据暴露 如何使用Actuator添加依赖访问端点自定义端点 实例演示结论 引言 Spring Boot Actuator是一个非常强大且广泛使用的模块,它为Spring Boot应用程序提供了一套…

C++使用openssl对AES-256-ECB PKCS7 加解密

/** AES-256-ECB PKCS7 加密 函数* input:经过PKCS7填充后的明文数据* outhex:加密后的命名数据16进制数,可以使用base64_encode转换为base64格式字符串密文* key:密钥* len:经过PKCS7填充后的明文数据长度*/ void AesEcb256Pkcs7Encrypt(u8 *input, u8 *outhex, u8 *key, int …

简单易学,让你拥有个性化的二维码

在数字化时代,二维码已经成为了我们日常生活的一部分。然而,大多数二维码都是简单而乏味的,缺乏个性和吸引力。这篇文章将向你介绍如何使用乔拓云等免费在线海报制作工具来制作艺术二维码,让你轻松掌握二维码的美化技巧。 1. 选择…

随机专享记录第一话 -- RustDesk的自我搭建和使用

1.介绍 RustDesk是继TeamView、向日葵等远程桌面软件后的新起之秀,最主要的是开源的可自己搭建中继服务。相比于公共服务器,连接一次等待的时间要多久,用过TeamView的都知道,而且还是免费的,不像某些远程搞各种个人证书,各种登录设备限制! 先看看软件图,这是待连接界…

Django 访问静态文件的APP staticfiles

Django 框架默认带的 APP: django.contrib.staticfiles Django文档中也写明了:如何管理静态文件(如图片、JavaScript、CSS) |姜戈 文档 |姜戈 (djangoproject.com)https://docs.djangoproject.com/zh-hans/4.2/howto/static-file…

leetCode 214.最短回文串 + KMP

给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。 示例 1: 输入:s "aacecaaa" 输出:"aaacecaaa"示例 2: 输入:s &…

11.The Metric Tensor

Metric Tensor--度量张量 度量张量可以测量空间的长度和角度。 How do you get the length of a vector ? (正交基的话)可以使用三角形的勾股定理(毕达哥拉斯定理)。 上面用的是正交基e1、e2来计算的, 但是,若你想用 利用勾…

2023.10.18

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private slot…

万界星空科技/生产制造执行MES系统/开源MES/免费MES

开源系统概述&#xff1a; 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、免费MES、免费智能制造系统、免费排产系统、免费排班系统、免费质检系统、免费生产计划系统、免费数字化大屏。 万界星空开源MES制造执行系统的Java开源版本。开源mes…

贝叶斯学习

贝叶斯学习 文章目录 贝叶斯学习相关概率知识朴素贝叶斯多维正态密度贝叶斯 贝叶斯学习主要是依靠先验概率来推出后验概率&#xff0c;然后更具后验概率去验证。其主流分为朴素贝叶斯和高斯分布下的贝叶斯估计。 相关概率知识 **先验概率&#xff1a;**指根据以往经验和分析。…

hive排序

目录 order by (全局排序asc ,desc) sort by(reduce 内排序) Distribute by(分区排序) Cluster By&#xff08;当 distribute by 和 sorts by 字段相同时 &#xff0c;可以使用 &#xff09; order by (全局排序asc ,desc) INSERT OVERWRITE LOCAL DIRECTORY /home/test2 …

FastAdmin框架实现数据表的增删改查

目录 简介 增加数据 修改数据 控制器&#xff08;controller&#xff09;代码&#xff1a; 查询数据 控制器&#xff08;controller&#xff09;代码&#xff1a; 模型&#xff08;model&#xff09;代码&#xff1a; 删除数据 控制器&#xff08;controller&#xff0…

【jvm】虚拟机栈之局部变量表

目录 一、说明二、代码分析2.1 代码示例2.2 执行javap2.3 jclasslib插件查看 三、对slot的理解3.1 说明3.2 slot索引图3.3 实例方法的局部变量表3.4 long和double类型变量占2个slot 四、slot的重复利用4.1 说明4.2 变量c复用变量b的槽位 五、静态变量与局部变量对比 一、说明 1…

细说雪花算法

文章目录 背景一、介绍二、结构三、数据库分表1.垂直分表2.水平分表&#xff08;1&#xff09;主键自增&#xff08;2&#xff09;取模&#xff08;3&#xff09;雪花算法&#xff08;主角登场&#xff09; 总结 背景 需要选择合适的方案去应对数据规模的增长&#xff0c;以应…

零信任身份管理平台,构建下一代网络安全体系

随着数字化时代的到来&#xff0c;网络安全已成为企业和组织面临的一项重要挑战。传统的网络安全方法已经无法满足不断演变的威胁和技术环境。近期&#xff0c;中国信息通信研究院&#xff08;简称“中国信通院”&#xff09;发布了《零信任发展研究报告&#xff08; 2023 年&a…

通过okhttp调用SSE流式接口,并将消息返回给客户端

通过一个完整的java示例来演示如何通过okhttp来调用远程的sse流式接口 背景&#xff1a;我们有一个智能AI的聊天界面&#xff0c;需要调用三方厂商的大模型chat接口&#xff0c;返回答案&#xff08;因为AI去理解并检索你的问题的时候这个是比较耗时的&#xff0c;这个时候客户…

超实用的Web兼容性测试经验总结,建议Mark

在日常工作中&#xff0c;我们经常碰到网页不兼容的问题。我们之所以要做兼容性测试&#xff0c;目的在于保证待测试项目在不同的操作系统平台上正常运行。 主要包括待测试项目能在同一操作系统平台的不同版本上正常运行&#xff1b;待测试项目能与相关的其他软件或系统的“和…