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

文章目录

  • 前言
  • 一、自我理解
  • 二、使用步骤
    • 1.建立 Python 与 SolidWorks 之间的关联
    • 2.通过录制宏获取vb代码
  • 总结


前言

第一次运用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后,运行窗会出现一行地址,根据地址找到对应的文件。
基于Python的Solidworks二次开发小尝试(一)_第1张图片
SOLIDWORKS 20XX Type library和SOLIDWORKS 20XX Constant type library另存swconnect和swconst到venv虚拟环境下win32com的client。
基于Python的Solidworks二次开发小尝试(一)_第2张图片
以下代码即可用 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代码。
基于Python的Solidworks二次开发小尝试(一)_第3张图片
我们只需要把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
声明:
未经本人许可,任何单位及个人不得以任何形式对本文的全部或部分内容做转载、复制或商业用途。

你可能感兴趣的:(solibworks二次开发,python)