在 SolidWorks(SW)二次开发中修改草图尺寸,主要通过 API 操作草图实体的参数(Dimension) 实现。以下是关键方法和示例代码:核心方法
使用 Part.Parameter 获取尺寸参数对象,然后设置其 SystemValue 属性。
必须调用 EditRebuild3() 使模型更新。
尺寸名称格式通常为 "D<编号>@<草图名称>",如 "D1@草图1"。
常用开发语言示例
1. VBA 示例
vba
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc
Dim swPart As SldWorks.PartDoc
Sub SetDimensionValue()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swPart = swModel ' 确保是零件文档
If Not swPart Is Nothing Then
Dim paramName As String
paramName = "D1@草图1" ' 替换为实际尺寸名称
Dim newValue As Double
newValue = 50 ' 新尺寸值(单位:米,若系统单位为mm则需转换)
Dim myParam As SldWorks.Parameter
Set myParam = swPart.Parameter(paramName)
If Not myParam Is Nothing Then
myParam.SystemValue = newValue
swPart.EditRebuild3 ' 重建模型
MsgBox "尺寸已更新"
Else
MsgBox "未找到指定尺寸"
End If
End If
End Sub
2. Python 示例(使用 pywin32)
python
import win32com.client as win
import pythoncom
def set_sketch_dimension(dim_name, new_value):
sw_app = win32.Dispatch("Sldworks.Application")
sw_app.Visible = True
sw_model = sw_app.ActiveDoc
获取参数并设置新值
param = sw_model.Parameter(dim_name)
if param is not None:
param.SystemValue = new_value
sw_model.EditRebuild3()
print("尺寸已更新")
else:
print("未找到指定尺寸")
使用示例
set_sketch_dimension("D1@草图1", 0.05) 50mm = 0.05m(若系统单位为米)
注意事项
单位问题:SolidWorks API 默认使用 米(m) 作为单位,若草图尺寸为毫米(mm),需将数值除以
尺寸名称查找:可在 FeatureManager 设计树中查看具体尺寸名称,或通过遍历参数获取。
草图必须处于非编辑状态:修改尺寸前确保草图未被激活编辑。
参考资料
SolidWorks二次开发:添加约束并设置尺寸值(微信公众号,2024)
Python二次开发SolidWorks:修改实体尺寸(CSDN博客,2023)
《SOLIDWORKS 二次开发与API教程(2025版)》(机械工业出版社,2025)
如需进一步学习,推荐参考官方文档《SOLIDWORKS 2025 API Fundamentals`