首页/文章/ 详情

如何通过API为SOLIDWORKS自动化开发插件

1年前浏览996

SOLIDWORKS 插件是使用 SOLIDWORKS API 实现的 SOLIDWORKS进程内应用程序,它具有高度客制化、最佳的性能和用户体验等特点。插件可以在启动时加载并集成到应用程序中,并拥有扩展 SOLIDWORKS 用户界面和功能的能力。


SOLIDWORKS 插件是一个 COM 对象,可以使用任何兼容 COM 的语言(如 C++、C#、VB.NET、VB6)进行开发。


为了开发外接程序,需要:

  • 创建实现 ISwAddIn 接口的公共 COM 可见类。(https://help.solidworks.com/2023/english/api/swpublishedapi/solidworks.interop.swpublished~solidworks.interop.swpublished.iswaddin.html)


  • 使用Regasm(https://learn.microsoft.com/zh-cn/dotnet/framework/tools/regasm-exe-assembly-registration-tool)

    (适用于基于 .NET 的插件(C# 或 VB.NET))和 RegSvr32()

    (适用于基于 C++ 和 VB6 的插件)将 dll 注册为 COM 服务。注册 COM 对象时需要添加 dll 的代码库。

(注册表中插件 dll 的com 注册信息)

  • 将有关插件的信息添加到 SOLIDWORKS 注册表,以便在加载时可以识别它。插件信息需要添加到SOFTWARE\SolidWorks\Addins\和Software\SolidWorks\AddInsStartup\注册表目录下。第一个键定义外接程序的名称和说明,并且是必需的。第二个键是可选的,允许指定在 SOLIDWORKS 启动时是否需要在启动时加载插件。



(SOLIDWORKS 注册表中的加载项详细信息)





(SOLIDWORKS 注册表中的插件启动详细信息)


   

实现插件


   

1

ISwAddIn 接口提供了两个函数来实现:

  • ConnectToSW:当插件随 SOLIDWORKS 一起加载时(如果指定了启动时加载选项)或从 SOLIDWORKS 中的 工具->插件 菜单启用时调用。函数传递 2 个参数:指向主 ISldWorks接口的指针和插件的ID。

存储指向 ISldWorks 的指针,

并在整个代码中使用它来访问所有接口。

请勿使用 CreateObject 或 Activator::CreateInstance 方法

来检索指向应用程序的指针,

因为此方法不能保证连接到 SOLIDWORKS 的当前实例,

并且会启动新的后台会话。


   

   

   


第二个参数是插件的ID,可用于在方法中添加UI组件,例如 ISldWorks::GetCommandManager、ISldWorks::AddFileSaveAsItem2、ISldWorks::ShowBubbleTooltipAt2。

使用此方法启动资源并创建用户界面(命令管理器、任务窗格等)。


  • DisconnectFromSW:在关闭 SOLIDWORKS 时卸载插件时或在 SOLIDWORKS 中的 工具->插件 菜单中禁用插件时调用。使用此方法清除资源并删除所有用户界面元素(如命令管理器或任务窗格)。

导入它是为了卸载用户界面页面,

因为用户可以通过在插件菜单中禁用加载项

(不仅通过关闭 SOLIDWORKS 应用程序)来卸载插件,

并且保持用户界面页面加载可能会引入崩溃或不稳定的风险,

因为页面与插件本身断开连接。



   

   

   



   

开发环境


   

2

SOLIDWORKS 插件最受欢迎的开发环境是 Microsoft Visual Studio。Visual Studio有不同的版本:Professional,Enterprise和Community。您可能更容易获得免费版本的Community版本。查看 EULA 了解更多信息。可替代的自由环境是SharpDevelop。



   

例子


   

3

下面的链接提供了使用不同编程语言创建简单的“Hello World”插件的详细指南。

  • C#(https://www.codestack.net/solidworks-api/getting-started/add-ins/csharp/)

  • VB.NET(https://www.codestack.net/solidworks-api/getting-started/add-ins/vbnet/)

插件在启动时加载,并在加载时显示“Hello World”消息框。



(加载插件时显示的消息框)

插件可从“插件...”对话框中获得。




(插件对话框中显示的插件)



   

开发框架


   

4

使用免费和开源的xCAD.NET框架(https://xcad.xarial.com/),可以在.NET(C#或VB.NET)中显著简化 SOLIDWORKS 加载项的开发。框架封装了 COM 类和 API 对象模型的复杂性,以适应 .NET 环境并从语言的功能(如强类型)中受益。

来源:三维机械设计工程师
SolidWorks
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-10-26
最近编辑:1年前
SOLIDWORKS艾金米
SOLIDWORKS增值服务商
获赞 228粉丝 126文章 936课程 2
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈