跳到主要内容

使用SOLIDWORKS API在新文档创建时运行宏

在SOLIDWORKS中创建新文档{ width=350 }

这个VBA宏处理在SOLIDWORKS中创建新文档(零件、装配或图纸)的事件,并允许在此事件发生时自动运行自定义代码或其他宏。此宏还处理在SOLIDWORKS装配中创建新虚拟文档的情况。

配置

  • 创建新的宏(例如RunOnNewDocCreated.swp
  • 将代码复制到宏的相应模块中。VBA宏树应该类似于下面的image:

宏文件树{ width=250 }

  • 将代码放入HandlerModule模块的main子程序中。将IModelDoc2文档的指针作为参数传递。使用该指针而不是ISldWorks::ActiveDoc,因为在此事件到达时,新文档可能尚未设置为活动文档。
Sub main(model As SldWorks.ModelDoc2)
'TODO: 在这里添加你的代码
End Sub

宏模块

启动新文档创建事件监视的入口点

Dim swFileNewWatcher As FileNewWatcher

Sub main()

Set swFileNewWatcher = New FileNewWatcher

While True
DoEvents
Wend

End Sub

FileNewWatcher 类模块

处理SOLIDWORKS新文档API通知的类

Dim WithEvents swApp As SldWorks.SldWorks

Private Sub Class_Initialize()
Set swApp = Application.SldWorks
End Sub

Private Function swApp_FileNewNotify2(ByVal NewDoc As Object, ByVal DocType As Long, ByVal TemplateName As String) As Long
HandlerModule.main NewDoc
End Function

HandlerModule 模块

需要为每个新创建的文档运行的自定义VBA代码

Sub main(model As SldWorks.ModelDoc2)
'TODO: 实现你的过程
MsgBox "文件创建: " & model.GetTitle()
End Sub