首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SolidWorks CAM

SolidWorks CAM
EN

Stack Overflow用户
提问于 2021-02-01 11:53:38
回答 1查看 352关注 0票数 2

我想要创建一个外接程序,它可以自动化我们在SolidWorks CAM 2021中的一些工作流。根据此帮助页,可以访问其他加载项:https://help.solidworks.com/2018/English/api/sldworksapiprogguide/Overview/Accessing_Add-ins.htm的API。

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

这是我到目前为止掌握的代码:

代码语言:javascript
运行
复制
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接口吗?

这里还提出了以下问题:https://forum.solidworks.com/thread/246718

-更新我无法添加他所指的dll,我得到以下错误:“无法添加。请确保该文件是可访问的,并且它是一个有效的程序集或COM组件。”不过,我添加了COM引用:SolidWorksCAM2021类型库CAMWorksAddin 1.0类型库,这似乎是可行的。

我正在运行的最后代码是:

代码语言:javascript
运行
复制
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());  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-03 09:56:04

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

SOLIDWORKS 2021\SOLIDWORKS CAM\camworksu.dll

  • C:\Program文件\SOLIDWORKS 2021\SOLIDWORKS CAM\cwapiu.dll

然后,您可以像前面所做的那样获得加载项对象,但作为特定对象(MWAddin):

代码语言:javascript
运行
复制
CAMWORKSADDINLib.MWAddin addinObject = swApp.GetAddInObject(@"{CCAC6208-0E19-6455-2017-2021CEB541FA}");

并访问接口API ( cwapiu.dll):

代码语言:javascript
运行
复制
CAMWORKSLib.CWApp cwApp = addinObject.GetCWApp();

在这里,您将使用cwApp对象和CAMWORKSLib库的对象类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65992281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档