Python SolidWorks 二次开发---Python如何连接SolidWorks

Python SolidWorks 二次开发—Python如何连接SolidWorks



前言

用Python来进行SolidWorks的二次开发其实是有点非主流的,因为Python本身的特性导致程序运行的效率会比VBA等SolidWorks原生支持的二次开发软件运行效率降低50%以上,用Python仅仅是因为语法简单,实现起来快捷,且所开发的功能仅供个人提高效率使用。这里记录一些开发过程,如有同样需求的可参考使用。


一、Python和SolidWorks的版本

Python使用的版本是3.8
SolidWorks使用的版本是2018
系统环境为WIN10

二、Python所需的环境

1.Anaconda

Python环境建议用Anaconda管理,这样比较方便管理各种环境和包
Anaconda官网地址,安装方法自行搜索

1.1Anaconda环境创建

第一步:打开Anaconda Powershell Prompt,并输入以下命令,其中XXXX为环境名称

conda create -n XXXX python=3.8

第二步:出现以下提示时输入确认,并等待环境创建完成

Proceed([y]/n)?

第三步:输入以下命令,激活刚才创建的环境

conda activate XXXX

第四步:在刚才激活的环境下,安装所需的包pywin32,输入以下命令

pip install pywin32

至此,Python所需的环境已经搭建完成

2.编辑器的选择

编辑器建议选择VS Code,配置简单,安装方便,体积小巧
VS Code官网地址,安装方法自行搜索

VS Code安装完成后安装以下2个插件

Python
Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code

以上工作完成后即可开始Python连接SolidWorks

三、连接SolidWorks

以下代码将使用Python连接SolidWorks,连接成功后回弹出"Hello SolidWorks"对话框,详细代码如下

import win32com.client

def connectsld():
    # SolidWorks年份版本
    sldver=2018
    # 建立com连接,如只有一个版本,可以只写"SldWorks.Application"
    swApp=win32com.client.Dispatch(f'SldWorks.Application.{sldver-1992}')
    # 提升API交互效率
    swApp.CommandInProgress =True
    # 显示SolidWorks界面
    swApp.Visible =True
    # 弹出SolidWorks自带对话框
    swApp.SendMsgToUser("Hello SolidWorks")

if __name__ == '__main__':
    connectsld()

执行完成后显示如下对话框
在这里插入图片描述

四、makepy.py生成相关API的Python文档

1. makepy.py文件的位置

在 Anaconda 的XXXX环境下的 …\envs\XXXX\Lib\site-packages\win32com\client 文件夹内找到 makepy.py

2. 运行makepy.py文件生成的文件

在VS Code中直接运行makepy.py,会弹出下图对话框
选择下图中两个选项会生成两个.py后缀的文件,文件路径在VS Code终端中可以看到
在这里插入图片描述

3. 生成文件的作用

SldWorks 2018 Type Library(1a.0)生成的是SolidWorks COM API 的调用方法,主要用来查询相关属性和方法
SOLIDWORKS 2018 Constant type library(1a.0)生成的是SolidWorks COM API 的常量参数,主要用来查询常量的设定值

不生成以上2个文件依然可以直接用Python连接SolidWorks,以上两个文件可以方便查询相关属性和方法及常量的设定

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值