【问题标题】:SolidWorks CAM apiSolidWorks CAM API
【发布时间】: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


    【解决方案1】:

    首先,您必须添加对以下 DLL 文件的引用才能访问智能感知:

    • C:\Program Files\SOLIDWORKS 2021\SOLIDWORKS CAM\camworksu.dll
    • C:\Program Files\SOLIDWORKS 2021\SOLIDWORKS CAM\cwapiu.dll

    然后你可以像你已经做的那样获取插件对象,但作为一个特定的对象(MWAddin):

    CAMWORKSADDINLib.MWAddin addinObject = swApp.GetAddInObject(@"{CCAC6208-0E19-6455-2017-2021CEB541FA}");
    

    以及访问接口API(cwapiu.dll):

    CAMWORKSLib.CWApp cwApp = addinObject.GetCWApp();
    

    从这里您将使用 cwApp 对象和 CAMWORKSLib 库的对象类型

    【讨论】:

    • 这行得通!我无法添加您所指的 dll,我得到以下信息:“......无法添加。请确保该文件可访问,并且它是有效的程序集或 COM 组件。”但是我添加了 COM 参考:SOLIDWORKS CAM 2021 类型库 CAMWorksAddin 1.0 类型库这似乎有效。
    • 我运行的最终代码是:codeCAMWORKSADDINLib.MWAddin addinObject = iSwApp.GetAddInObject(@"{CCAC6208-0E19-6455-2017-2021CEB541FA}"); if (addinObject == null) ErrorMsg(iSwApp, "SWCAMObject object not found"); Debug.WriteLine($"SWCAMObject 加载:{addinObject}"); CAMWORKSLib.CWApp cwApp = addinObject.GetCWApp(); if (cwApp == null) ErrorMsg(iSwApp, "SWCAM object not found"); Debug.WriteLine($"SWCAM 加载:{cwApp}"); Debug.WriteLine(cwApp.GetVersion()); code
    猜你喜欢
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    相关资源
    最近更新 更多