第一次运用python对solidworks进行二次开发,并未接触过solidworks所以操作起来有些困难,所以记录一下自己的心路历程。
用python对solidworks进行二次开发可以减少很多人工流程,实现自动化绘图。solidworks提供了很多的API函数,可以在此基础上对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 最高访问权限
我们获取一个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
声明:
未经本人许可,任何单位及个人不得以任何形式对本文的全部或部分内容做转载、复制或商业用途。