SolidWorks VBA宏改进:导出带折弯点的钣金平板DWG/DXF
SolidWorks 钣金平板DWG导出宏折弯点缺失问题排查与优化
核心错误原因排查
- 导出状态不匹配:原宏未在导出前将钣金零件切换到平板展开状态,SolidWorks仅在展开状态下识别折弯线的平面坐标,折叠状态下
ExportBendLines选项会被系统直接忽略,仅导出实体面几何体 - 导出选项位值组合缺失:原宏仅组合了平板几何、折弯线两个导出选项,未叠加
IncludeHiddenEdges选项;折弯线属于非实体的参考边线,默认被系统判定为隐藏元素,不开启隐藏边导出时不会被写入DWG文件 - 导出参数传值逻辑偏差:原宏向
ExportToDWG2的实体选择参数传递空值,会触发系统默认的“仅导出可见实体面”过滤规则,所有非实体的参考元素(含折弯线、折弯点)都会被自动剔除
优化后的可正常导出折弯元素的宏代码
Enum SheetMetalOptions_e ExportFlatPatternGeometry = 1 IncludeHiddenEdges = 2 ExportBendLines = 4 IncludeSketches = 8 MergeCoplanarFaces = 16 ExportLibraryFeatures = 32 ExportFormingTools = 64 ExportBoundingBox = 2048 End Enum Const OUT_PATH As String = "D:\sm.dwg" Dim swApp As SldWorks.SldWorks Sub main() Set swApp = Application.SldWorks Dim swPart As SldWorks.PartDoc Set swPart = swApp.ActiveDoc ' 校验文档已保存 Dim modelPath As String modelPath = swPart.GetPathName If modelPath = "" Then Err.Raise vbError, "", "Part document must be saved" End If ' *关键修正*:强制切换到平板展开状态 swPart.ShowFlatPattern True ' *调整导出选项*:叠加隐藏边导出,确保折弯线被识别 Dim smExportOpts As Long smExportOpts = SheetMetalOptions_e.ExportFlatPatternGeometry + _ SheetMetalOptions_e.ExportBendLines + _ SheetMetalOptions_e.IncludeHiddenEdges ' *修正参数传递*:实体选择集传入当前激活文档对象,避免空值触发过滤逻辑 Dim exportRes As Boolean exportRes = swPart.ExportToDWG2( _ OUT_PATH, _ modelPath, _ swExportToDWG_e.swExportToDWG_ExportSheetMetal, _ True, _ swPart, _ False, _ False, _ smExportOpts, _ Empty) If False = exportRes Then Err.Raise vbError, "", "Failed to export flat pattern" End If ' 可选:导出完成后切回折叠状态,取消注释即可启用 ' swPart.ShowFlatPattern False End Sub
导出校验注意事项
- 折弯点是折弯线的固有端点,导出折弯线后会自动同步坐标到DWG文件,无需额外开启独立导出选项
- 宏的导出选项优先级低于SolidWorks系统全局设置,若导出后仍缺折弯元素,需检查「系统选项-导出-钣金DXF/DWG」下的折弯线导出开关
- 导出路径需提前创建对应文件夹,避免因路径不存在触发导出失败
内容的提问来源于stack exchange,提问作者Sylwester Marć
相关产品推荐
相关产品推荐

