1. 目标
通过python语言调用Solidworks软件,进行结构自动化建模(适用零件及装配体),实现模型参数化,为后续结构参数优化提供基础。
本案例使用Solidworks2020、Python3.8
基于Solidworks软件建立法兰几何模型(单位为mm-deg),如下图所示。
法兰几何模型
使用方程式将需要优化的参数(法兰上端倒角角度及下端圆盘外径)定义为全局变量,如下图所示。
全局变量定义
法兰上端倒角角度参数定义
法兰下端圆盘外径参数定义
基于python语言的Solidworks二次开发编程实现模型参数的自动更新,并保存为通用的x_t格式文件。
图4.1 法兰模型自动更新程序
部分代码:
import os, win32com.client
import pythoncom
Nothing = win32com.client.VARIANT(pythoncom.VT_DISPATCH, None)
swEdition = 2020 # solidworks软件版本
swApp = win32com.client.Dispatch('SldWorks.Application.{}'.format(swEdition - 1992)) # 通过com方式连接软件
# 模型文件(支持零件和装配体)
# fileName = 'flange.SLDPRT' # 法兰零件模型
fileName = 'clamping.SLDASM' # 夹爪装配模型
file = os.path.join(os.getcwd(), fileName)
if 'SLDPRT' in file:
swApp.openDoc(file, 1) # 打开零件模型文件
partDoc = swApp.activeDoc # 定义模型对象为当前打开的零件模型
elif 'SLDASM' in file:
swApp.openDoc(file, 2) # 打开配模型文件
assemDoc = swApp.activeDoc # 定义模型对象为当前打开的装配模型
components = assemDoc.GetComponents(True)
for index in range(len(components)):
if components[index].name == 'WFD-C-A2416B-12-006A 夹爪连接板3-8':
component = components[index]
break
partDoc = component.GetModelDoc2
comName = component.name
boolstatus = assemDoc.Extension.SelectByID2(comName, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
assemDoc.EditPart()
……
swApp.closeDoc(file)
swApp.exitApp()
内容简介:通过Python调用Solidworks软件,实现结构参数化建模与自动化更新,适用零部件及装配体模型,附件给出了python代码及案例文件。