如何通過API為SOLIDWORKS自動化開發(fā)插件
SOLIDWORKS 插件是使用 SOLIDWORKS API 實現(xiàn)的 SOLIDWORKS進程內(nèi)應(yīng)用程序,它具有高度客制化、最佳的性能和用戶體驗等特點。插件可以在啟動時加載并集成到應(yīng)用程序中,并擁有擴展 SOLIDWORKS 用戶界面和功能的能力。
SOLIDWORKS 插件是一個 COM 對象,可以使用任何兼容 COM 的語言(如 C++、C#、VB.NET、VB6)進行開發(fā)。
為了開發(fā)外接程序,需要:
創(chuàng)建實現(xiàn) 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 服務(wù)。注冊 COM 對象時需要添加 dll 的代碼庫。

將有關(guān)插件的信息添加到 SOLIDWORKS 注冊表,以便在加載時可以識別它。插件信息需要添加到SOFTWARE\SolidWorks\Addins\和Software\SolidWorks\AddInsStartup\注冊表目錄下。第一個鍵定義外接程序的名稱和說明,并且是必需的。第二個鍵是可選的,允許指定在 SOLIDWORKS 啟動時是否需要在啟動時加載插件。


實現(xiàn)插件
ISwAddIn 接口提供了兩個函數(shù)來實現(xiàn):
ConnectToSW:當(dāng)插件隨 SOLIDWORKS 一起加載時(如果指定了啟動時加載選項)或從 SOLIDWORKS 中的 工具->插件 菜單啟用時調(diào)用。函數(shù)傳遞 2 個參數(shù):指向主 ISldWorks接口的指針和插件的ID。
存儲指向 ISldWorks 的指針,并在整個代碼中使用它來訪問所有接口。請勿使用 CreateObject 或 Activator::CreateInstance 方法來檢索指向應(yīng)用程序的指針,因為此方法不能保證連接到 SOLIDWORKS 的當(dāng)前實例,并且會啟動新的后臺會話。
第二個參數(shù)是插件的ID,可用于在方法中添加UI組件,例如 ISldWorks::GetCommandManager、ISldWorks::AddFileSaveAsItem2、ISldWorks::ShowBubbleTooltipAt2。
使用此方法啟動資源并創(chuàng)建用戶界面(命令管理器、任務(wù)窗格等)。
DisconnectFromSW:在關(guān)閉 SOLIDWORKS 時卸載插件時或在 SOLIDWORKS 中的 工具->插件 菜單中禁用插件時調(diào)用。使用此方法清除資源并刪除所有用戶界面元素(如命令管理器或任務(wù)窗格)。
導(dǎo)入它是為了卸載用戶界面頁面,因為用戶可以通過在插件菜單中禁用加載項(不僅通過關(guān)閉 SOLIDWORKS 應(yīng)用程序)來卸載插件,并且保持用戶界面頁面加載可能會引入崩潰或不穩(wěn)定的風(fēng)險,因為頁面與插件本身斷開連接。
開發(fā)環(huán)境
SOLIDWORKS 插件最受歡迎的開發(fā)環(huán)境是 Microsoft Visual Studio。Visual Studio有不同的版本:Professional,Enterprise和Community。您可能更容易獲得免費版本的Community版本。查看 EULA 了解更多信息。可替代的自由環(huán)境是SharpDevelop。
例子
下面的鏈接提供了使用不同編程語言創(chuàng)建簡單的“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”消息框。

插件可從“插件...”對話框中獲得。

開發(fā)框架
使用免費和開源的xCAD.NET框架(https://xcad.xarial.com/),可以在.NET(C#或VB.NET)中顯著簡化 SOLIDWORKS 加載項的開發(fā)。框架封裝了 COM 類和 API 對象模型的復(fù)雜性,以適應(yīng) .NET 環(huán)境并從語言的功能(如強類型)中受益。
文章翻譯自https://www.codestack.net/
僅供學(xué)習(xí)使用。