前面的文章分享了SolidWorks二次开发的api安装和vs2019软件里面的创建项目,今天分享SolidWorks api项目模板的代码浅析,因为溪风二次开发水平有限只能浅析,如有错误,欢迎指正。
官方代码我分为7个部分分享,如图所示。
Region "Local Variables"
这个翻译过来就是本地局部变量,也就是这个代码段,全部声明变量用的。
Dim WithEvents iSwApp As SldWorks Dim iCmdMgr As ICommandManager ' 比如这个用来声明commandmanger命令区上面的命令 Dim addinID As Integer Dim openDocs As Hashtable Dim SwEventPtr As SldWorks Dim ppage As UserPMPage Dim iBmp As BitmapHandler ’这个是命令图标用的 Dim frame As IFrame Dim bRet As Boolean Dim registerID As Integer Public Const mainCmdGroupID As Integer = 0 Public Const mainItemID1 As Integer = 0 Public Const mainItemID2 As Integer = 1 Public Const flyoutGroupID As Integer = 91 ' Public Properties ReadOnly Property SwApp() As SldWorks Get Return iSwApp End Get End Property ReadOnly Property CmdMgr() As ICommandManager Get Return iCmdMgr End Get End Property ReadOnly Property OpenDocumentsTable() As Hashtable Get Return openDocs End Get End Property
#Region "SolidWorks Registration"
这个代码是SolidWorks插件注册,也就是我们的插件写好了,要加载到SolidWorks里面,官方写好了,那么我就没动
#Region "ISwAddin Implementation"
这个还是比较重要的,引入SolidWorks插件,包括SolidWorks连接和断开。
Function ConnectToSW(ByVal ThisSW As Object, ByVal Cookie As Integer) As Boolean Implements SolidWorks.Interop.swpublished.SwAddin.ConnectToSW '连接SolidWorks之后执行的函数 iSwApp = ThisSW addinID = Cookie ' Setup callbacks iSwApp.SetAddinCallbackInfo(0, Me, addinID) ' Setup the Command Manager iCmdMgr = iSwApp.GetCommandManager(Cookie) AddCommandMgr() '加载commandmanger函数,比如增加命令图标文字函数 'Setup the Event Handlers SwEventPtr = iSwApp openDocs = New Hashtable AttachEventHandlers() 'Setup Sample Property Manager AddPMP() '这都是勾选插件之后自动执行的函数 ConnectToSW = True End Function Function DisconnectFromSW() As Boolean Implements SolidWorks.Interop.swpublished.SwAddin.DisconnectFromSW '断开SolidWorks,也就是SolidWorks插件取消勾选之后要执行的函数 RemoveCommandMgr() RemovePMP() DetachEventHandlers() ’取消勾选插件之后要执行,SolidWorks界面移除命令区移除插件菜单 System.Runtime.InteropServices.Marshal.ReleaseComObject(iCmdMgr) iCmdMgr = Nothing System.Runtime.InteropServices.Marshal.ReleaseComObject(iSwApp) iSwApp = Nothing 'The addin _must_ call GC.Collect() here in order to retrieve all managed code pointers GC.Collect() GC.WaitForPendingFinalizers() GC.Collect() GC.WaitForPendingFinalizers() DisconnectFromSW = True End Function
#Region "UI Methods"
这个也非常的重要,翻译过来就是UI方法,也就是SolidWorks插件界面实现的方法。非常重要,仔细比对一遍。
比如添加SolidWorks菜单,添加commandmanger菜单等,然后到api帮助文档里面查方法的使用,比如AddCommandItem2这个方法,然后去搜
这里也有解释,添加标题,名字,注释,图标,执行的函数等等,传进去。
#Region "Event Methods"
下面这些就是上面调用函数的本体了,你调用的函数,就这 里面写要实现干嘛!
#Region "UI Callbacks"
比如这个里面放的是UI调用的函数,比如第一个就是创建立方体,其实这里开始就考验大家的函数学习情况了,比如C#如何写,vb如何写
以上就是溪风自己整理的SolidWorks二次开发学习文档,记录自己学习,也分享大家交流。
还没有评论,来说两句吧...