| name | solidworks-api |
| description | SolidWorks 2023 API/SDK coding assistant. Covers part modeling, sketches, features (extrude/revolve/cut), patterns, mates, materials, STEP export, and shield machine cutterhead design. Triggers: SolidWorks, SOLIDWORKS, SLDWORKS, ISldWorks, IModelDoc2, IFeatureManager, sketch, extrude, revolve, cut, pattern, mate, cutterhead, 刀盘, PartDoc, AssemblyDoc, VBA macro, C# SolidWorks add-in, Python win32com SolidWorks.
|
| version | 1.0.0 |
| tags | ["solidworks","cad","mechanical-engineering","shield-machine","cutterhead","automation","com-api"] |
SolidWorks 2023 API 编码规范
核心规则:永远不要猜测 API 调用
SolidWorks API 方法的参数数量多(通常 10-15 个),参数类型混杂(bool/double/string)。
每次写 API 调用时必须:
- 先用
grep 在 ~/Desktop/SW-AI-Project/docs/ 中搜索对应方法
- 确认方法名、参数顺序、参数类型、返回值
- 不要假设默认值——明确传递每个参数
- 使用
swConst 枚举值,绝不硬编码整数
SolidWorks 对象模型
SldWorks (Application)
├── IModelDoc2
│ ├── PartDoc → 零件 (.sldprt)
│ ├── AssemblyDoc → 装配体 (.sldasm)
│ └── DrawingDoc → 工程图 (.slddrw)
├── ISketchManager → 草图管理
├── IFeatureManager → 特征管理
├── ISelectionMgr → 选择管理
└── ISketch → 草图对象
常用 API 方法
连接 SolidWorks
import win32com.client
swApp = win32com.client.Dispatch("SldWorks.Application")
swApp.Visible = True
创建新零件
swApp.NewDocument(templatePath, paperSize, width, height)
part = swApp.NewPart()
草图操作
part.InsertSketch2(True)
part.SketchManager.CreateCircle(x, y, z, radius)
part.SketchManager.CreateLine(x1,y1,z1, x2,y2,z2)
part.SketchManager.CreateCornerRectangle(x1,y1,z1, x2,y2,z2)
特征操作
part.FeatureManager.FeatureExtrusion2(
sd, flip, dir, t1, t2, d1, d2, dchk1, dchk2,
ddir1, ddir2, dang1, dang2, offsetReversal1, offsetReversal2,
merge, useFeatScope, useAutoSelect, t0, startOffset, startFlip
)
part.FeatureManager.FeatureRevolve2(
angle, reverseDir, angle2, revType, merge, useFeatScope, useAutoSelect
)
part.FeatureManager.FeatureCut4(
sd, flip, dir, t1, t2, d1, d2, dchk1, dchk2,
ddir1, ddir2, dang1, dang2, offsetReversal1, offsetReversal2,
flipCut, ...
)
part.FeatureManager.FeatureFillet3(radius, ...)
part.FeatureManager.FeatureChamfer3(...)
part.FeatureManager.FeatureCircularPattern4(
numInstances, spacing, equalSpacing, ...
)
part.FeatureManager.FeatureLinearPattern4(...)
part.FeatureManager.FeatureMirror2(...)
SolidWorks 常量 (swConst)
swDocPART = 1
swDocASSEMBLY = 2
swDocDRAWING = 3
swEndCondBlind = 1
swEndCondThroughAll = 2
swEndCondMidPlane = 6
swPlaneTop = 1
swPlaneFront = 2
swPlaneRight = 3
METERS_TO_MM = 1000
MM_TO_METERS = 0.001
swSelFACES = 2
swSelEDGES = 4
swSelSKETCHES = 16
刀盘建模常用参数
盾构机刀盘建模需要的典型特征:
- 刀盘面板: 大直径圆盘 (φ6
15m),拉伸厚度 400800mm
- 辐条/辐臂: 径向分布,4~8 条,矩形截面
- 滚刀安装座: 圆周分布,配合阵列
- 切刀/刮刀: 边缘分布
- 中心刀: 中心区域
- 出土槽/排渣口: 贯穿切除
- 搅拌棒: 背面分布
- 安装法兰: 中心连接结构
单位系统
SolidWorks 内部使用米作为长度单位。所有 API 调用中传递的长度值单位都是米:
- 1mm = 0.001m
- 1m = 1.0
- 刀盘直径 6m = 6.0
导出格式
part.SaveAs3(path, 0, 0)
part.SaveAs3(path + ".STEP", 0, 0)
创建基准面
part.FeatureManager.InsertRefPlane(...)
板厚/壳特征
part.FeatureManager.FeatureShell(thickness, ...)
已知限制 (COM Late Binding)
使用 IDispatch 晚期绑定时存在以下已知限制:
FeatureExtrusion2 等参数过多(>12个)的方法会失败,需使用 VBA 宏
RecordMacro / EditMacro 不可用(SW 2023 IDispatch 不支持)
SelectByID2 的 Callout 参数在 winax (Node.js) 中类型不匹配
- 中文基准面名称:前视基准面 / 上视基准面 / 右视基准面