基于Python的Solidworks二次开发小尝试(一)


前言

第一次运用python对solidworks进行二次开发,并未接触过solidworks所以操作起来有些困难,所以记录一下自己的心路历程。


一、自我理解

用python对solidworks进行二次开发可以减少很多人工流程,实现自动化绘图。solidworks提供了很多的API函数,可以在此基础上对solidworks进行二次开发。

二、使用步骤

1.建立 Python 与 SolidWorks 之间的关联

因为我用的是pycharm,所以以下操作均用pycharm讲述。
首先要找到python文件下的Lib\site-packages\win32com\client \makepy.py的设置文件。
可以直接用pycharm直接运行makepy.py,如果没有win32com文件,可以pip install pywin32。
因为pycharm可以生成venv虚拟环境,所以可以直接在虚拟环境中安装pywin32。
运行后分别选择SOLIDWORKS 20XX Type library和SOLIDWORKS 20XX Constant type library的文件,选择ok后,运行窗会出现一行地址,根据地址找到对应的文件。
在这里插入图片描述
SOLIDWORKS 20XX Type library和SOLIDWORKS 20XX Constant type library另存swconnect和swconst到venv虚拟环境下win32com的client。
在这里插入图片描述
以下代码即可用 Python 获取 SolidWorks 的接口::

import win32com.client as win32 
import pythoncom

sw_app = win32.Dispatch("Sldworks.application")            #引入sldworks接口
sw_app.Visible = True                                      #是否可视化
arg_Nothing = win32.VARIANT(pythoncom.VT_DISPATCH, None)   #转义VBA中不同变量nothing
sw_app.OpenDoc(r'D:\船舱\平板.SLDASM',1)     #打开二次开发源文件                 #sldworks 最高访问权限

2.通过录制宏获取vb代码

我们获取一个solidworks的操作,通过录制宏。首先打开solidworks,然后点击设置,选择宏,把录制宏按钮放到工具栏,方便操作。在这里插入图片描述
在这里插入图片描述
比如:我们实现一下,改变长度。
先点击录制宏,然后开始修改一下长度,停止录制。会生成一个.swp的文件,然后用编辑宏打开.swp的文件,就会出现vb代码。
在这里插入图片描述
我们只需要把vb代码转换成python代码即可。
示例代码如下:

import win32com.client as win32
import pythoncom

sw_app = win32.Dispatch("Sldworks.application")            #引入sldworks接口
sw_app.Visible = True                                      #是否可视化
arg_Nothing = win32.VARIANT(pythoncom.VT_DISPATCH, None)   #转义VBA中不同变量nothing
sw_app.OpenDoc(r'D:\船舱\平板.SLDASM',1)     #打开二次开发源文件
Part = sw_app.ActiveDoc
myDimension1 = Part.Parameter("D6@草图1@镀锌平板.Part")      
myDimension1.SystemValue = 0.4
Part.SaveAs3(r"D:\船舱\test\test.SLDASM", 0, 2) #保存新的文件

总结

因为网上大部分都是c#对solidworks二次开发的资料,参考了一部分资料,也是为初学者提供一个保姆及入门教程,自己感觉python对solidworks 二次开发的核心就是python对vb代码的转换。
文章参考了大佬的文章
https://mp.weixin.qq.com/s/xf_lDViBEt0IR-sxPlQVRA
声明:
未经本人许可,任何单位及个人不得以任何形式对本文的全部或部分内容做转载、复制或商业用途。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小张Tt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值