SOLIDWORKS自动化开发:通过API打造专属插件

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 注册表中的插件启动详细信息

实现插件

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

  • ConnectToSW:当插件随 SOLIDWORKS 一起加载时(如果指定了启动时加载选项)或从 SOLIDWORKS 中的 工具->插件 菜单启用时调用。函数传递 2 个参数:指向主 ISldWorks接口的指针和插件的ID。
存储指向 ISldWorks 的指针,并在整个代码中使用它来访问所有接口。请勿使用 CreateObject 或 Activator::CreateInstance 方法来检索指向应用程序的指针,因为此方法不能保证连接到 SOLIDWORKS 的当前实例,并且会启动新的后台会话。

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

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

  • DisconnectFromSW:在关闭 SOLIDWORKS 时卸载插件时或在 SOLIDWORKS 中的 工具->插件 菜单中禁用插件时调用。使用此方法清除资源并删除所有用户界面元素(如命令管理器或任务窗格)。
导入它是为了卸载用户界面页面,因为用户可以通过在插件菜单中禁用加载项(不仅通过关闭 SOLIDWORKS 应用程序)来卸载插件,并且保持用户界面页面加载可能会引入崩溃或不稳定的风险,因为页面与插件本身断开连接。

开发环境

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

例子

下面的链接提供了使用不同编程语言创建简单的“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”消息框。

加载插件时显示的消息框

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

插件对话框中显示的插件

开发框架

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

文章翻译自https://www.codestack.net/

仅供学习使用。

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空