【发布时间】:2021-05-05 14:30:41
【问题描述】:
我想创建一个插件来自动化我们在 SolidWorks CAM 2021 中的一些工作流程。 根据这个帮助页面,可以访问其他插件的API: https://help.solidworks.com/2018/English/api/sldworksapiprogguide/Overview/Accessing_Add-ins.htm
但是,我不确定在 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}");
有人知道如何正确提取 Solidworks CAM 界面吗?
这里也有人问过问题: https://forum.solidworks.com/thread/246718
--- 更新 --- 遵循 Sinues 的建议有效! 我无法添加他所指的dll,我收到以下错误: “...无法添加。请确保文件可访问,并且它是有效的程序集或 COM 组件。” 但是我添加了 COM 引用: SOLIDWORKS CAM 2021 类型库 CAMWorksAddin 1.0 类型库 这似乎有效
我正在运行的最终代码是:
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());
【问题讨论】:
标签: c# solidworks