简介
SolidWorks宏(Macro)是使用VBA(Visual Basic for Applications)或C#编写的自动化脚本,可用于执行重复性任务、批量处理模型、自动生成图纸等。 本页面收集了多个常见场景下的SolidWorks宏代码示例,适合初学者和进阶用户参考使用。
1. 打开当前文档并输出文件路径
Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If Not swModel Is Nothing Then
Debug.Print "当前文档路径: " & swModel.GetPathName
Else
MsgBox "未打开任何文档"
End If
End Sub
2. 批量导出所有零件为STEP格式
Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim vFiles As Variant
Dim i As Long
Sub main()
Set swApp = Application.SldWorks
vFiles = swApp.GetOpenDocumentFilePaths
For i = 0 To UBound(vFiles)
Set swModel = swApp.OpenDoc6(vFiles(i), swDocPART, swOpenDocOptions_Silent, "", 0, 0)
If Not swModel Is Nothing Then
Dim stepPath As String
stepPath = Replace(vFiles(i), ".sldprt", ".step")
swModel.SaveAs3 stepPath, 0, 0
swApp.CloseDoc vFiles(i)
End If
Next i
End Sub
3. 自动创建中心线(工程图)
Dim swApp As SldWorks.SldWorks
Dim swDraw As DrawingDoc
Sub main()
Set swApp = Application.SldWorks
Set swDraw = swApp.ActiveDoc
If swDraw.GetType = swDocDRAWING Then
swDraw.AutoInsertCenterlines
Else
MsgBox "请在工程图中运行此宏"
End If
End Sub
4. 遍历装配体中的所有零部件
Dim swApp As SldWorks.SldWorks
Dim swAssy As AssemblyDoc
Dim vComps As Variant
Dim i As Long
Sub main()
Set swApp = Application.SldWorks
Set swAssy = swApp.ActiveDoc
If swAssy.GetType = swDocASSEMBLY Then
vComps = swAssy.GetComponents(False)
For i = 0 To UBound(vComps)
Debug.Print vComps(i).GetName2
Next i
Else
MsgBox "请在装配体中运行此宏"
End If
End Sub