C# SolidWorks CAM api
我想创建一个外接程序,它可以在SolidWorks CAM 2021中自动化我们的一些工作流程。 根据此帮助页面,可以访问其他加载项的API: 但是,我不确定在SolidWorks CAM加载项上使用GetAddInObject之后要做什么。 这个家伙似乎有一个VB的解决方案,但没有给出实际的实现 这是我目前掌握的代码:C# SolidWorks CAM api,c#,solidworks,C#,Solidworks,我想创建一个外接程序,它可以在SolidWorks CAM 2021中自动化我们的一些工作流程。 根据此帮助页面,可以访问其他加载项的API: 但是,我不确定在SolidWorks CAM加载项上使用GetAddInObject之后要做什么。 这个家伙似乎有一个VB的解决方案,但没有给出实际的实现 这是我目前掌握的代码: dynamic SWCAMObject = default(dynamic); dynamic SWCAM = default(dynamic); SWCAMObject
dynamic SWCAMObject = default(dynamic);
dynamic SWCAM = default(dynamic);
SWCAMObject = iSwApp.GetAddInObject("{CCAC6208-0E19-6455-2017-2021CEB541FA}");
if (SWCAMObject == null) ErrorMsg(iSwApp, "SWCAMObject object not found");
Debug.WriteLine($"SWCAMObject loaded: {SWCAMObject}");
SWCAM = SWCAMObject.CAMWORKSADDINLib; <---- Breaks here, not at all sure how to extract the addin interface.
if (SWCAM == null) ErrorMsg(iSwApp, "SWCAM object not found");
Debug.WriteLine($"SWCAM loaded: {SWCAM}");
首先,您必须添加对以下DLL文件的引用才能访问intellisense:
- C:\Program Files\SOLIDWORKS 2021\SOLIDWORKS CAM\camworksu.dll
- C:\Program Files\SOLIDWORKS 2021\SOLIDWORKS CAM\cwapiu.dll
从这里,您将使用cwApp对象和CAMWORKSLib库的对象类型!我无法添加您所引用的dll,我得到以下信息:“……无法添加。请确保该文件可访问,并且是有效的程序集或COM组件。”然而,我添加了COM引用:SOLIDWORKS CAM 2021类型库CAMWorksAddin 1.0类型库,这似乎有效。我正在运行的最终代码是:
code
CAMWORKSADDINLib.MWAddin addinObject=iSwApp.GetAddInObject(@“{CCAC6208-0E19-6455-2017-2021CEB541FA}”);if(addinObject==null)ErrorMsg(iSwApp,“未找到SWCAMObject”);WriteLine($“已加载的SWCAMObject:{addinObject}”);CAMWORKSLib.CWApp-CWApp=addinObject.GetCWApp();if(cwApp==null)ErrorMsg(iSwApp,“未找到SWCAM对象”);Debug.WriteLine($“SWCAM加载:{cwApp}”);Debug.WriteLine(cwApp.GetVersion())<代码>代码
CAMWORKSADDINLib.MWAddin addinObject = iSwApp.GetAddInObject(@"{CCAC6208-0E19-6455-2017-2021CEB541FA}");
if (addinObject == null) ErrorMsg(iSwApp, "SWCAMObject object not found");
Debug.WriteLine($"SWCAMObject loaded: {addinObject}");
CAMWORKSLib.CWApp cwApp = addinObject.GetCWApp();
if (cwApp == null) ErrorMsg(iSwApp, "SWCAM object not found");
Debug.WriteLine($"SWCAM loaded: {cwApp}");
Debug.WriteLine(cwApp.GetVersion());
CAMWORKSADDINLib.MWAddin addinObject = swApp.GetAddInObject(@"{CCAC6208-0E19-6455-2017-2021CEB541FA}");
CAMWORKSLib.CWApp cwApp = addinObject.GetCWApp();