Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SolidWorks CAM api_C#_Solidworks - Fatal编程技术网

C# SolidWorks CAM api

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

我想创建一个外接程序,它可以在SolidWorks CAM 2021中自动化我们的一些工作流程。 根据此帮助页面,可以访问其他加载项的API:

但是,我不确定在SolidWorks CAM加载项上使用GetAddInObject之后要做什么。 这个家伙似乎有一个VB的解决方案,但没有给出实际的实现

这是我目前掌握的代码:

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
然后,您可以像以前一样获取加载项对象,但作为特定对象(MWAddin):

和访问(cwapiu.dll的)接口API:


从这里,您将使用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();