最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

為SOLIDWORKS創(chuàng)建VB.NET獨(dú)立(exe)應(yīng)用程序

2023-04-14 20:26 作者:HongfengZhu  | 我要投稿

在本教程中,我將演示如何使用 VB.NET 和Microsoft Visual Studio從進(jìn)程外(也稱為獨(dú)立)應(yīng)用程序(例如Windows Forms,Windows Console)連接到SOLIDWORKS應(yīng)用程序。

有關(guān)本文中討論的方法的更詳細(xì)說(shuō)明,請(qǐng)閱讀《如何使用SOLIDWORKS API創(chuàng)建獨(dú)立(exe)應(yīng)用程序》一文。

創(chuàng)建新項(xiàng)目

我將使用Microsoft Visual Studio開(kāi)發(fā)環(huán)境。您可以使用任何版本的 Visual Studio。相同的代碼適用于專業(yè)版、精簡(jiǎn)版或社區(qū)版。

  • 打開(kāi)Visual Studio。?

  • 啟動(dòng)新項(xiàng)目:

在Visual Studio中創(chuàng)建新的 VB.NET 項(xiàng)目
  • 選擇項(xiàng)目模板。我建議從控制臺(tái)應(yīng)用程序項(xiàng)目模板開(kāi)始,因?yàn)樗钌俚念A(yù)生成代碼:

選擇 VB.NET 控制臺(tái)應(yīng)用程序項(xiàng)目模板
  • 添加對(duì) SolidWorks 互操作庫(kù)的引用。

    互操作庫(kù)文件位于SOLIDWORKS安裝文件夾\api\redist\SolidWorks.Interop.sldworks.dll(用于面向 Framework 4.0 及更高版本的項(xiàng)目),SOLIDWORKS安裝文件夾\api\redist\CLR2\SolidWorks.Interop.sldworks.dll(用于面向框架 2.0 和 3.5 的項(xiàng)目)。

向項(xiàng)目添加程序集引用

對(duì)于面向 Framework 4.0 的項(xiàng)目,我建議將“嵌入互操作類型”選項(xiàng)設(shè)置為 false。否則,由于類型轉(zhuǎn)換問(wèn)題,在調(diào)用 SOLIDWORKS API 時(shí),應(yīng)用程序可能會(huì)出現(xiàn)不可預(yù)測(cè)的行為。?

嵌入互操作程序集的選項(xiàng)

現(xiàn)在我們可以添加代碼以連接到 SOLIDWORKS 實(shí)例。

創(chuàng)建或連接到SOLIDWORKS實(shí)例

連接到 COM 服務(wù)器的最常見(jiàn)和最快速的方法可能是使用CreateObject方法(https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.visualbasic.interaction.createobject)。替代方法是:Activator::CreateInstance(https://learn.microsoft.com/zh-cn/dotnet/api/system.activator.createinstance)和 GetObject(https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.visualbasic.interaction.getobject)。請(qǐng)注意,如果 GetObject 無(wú)法連接到活動(dòng)會(huì)話,它將創(chuàng)建新實(shí)例。

我建議使用 Activator::CreateInstance,因?yàn)檫@允許通過(guò) 2 個(gè)步驟連接到會(huì)話:

  • 由于 SOLIDWORKS 應(yīng)用程序已注冊(cè)為 COM 服務(wù)器,因此我們可以通過(guò) Type::GetTypeFromProgID方法(https://learn.microsoft.com/zh-cn/dotnet/api/system.type.gettypefromprogid)從其程序標(biāo)識(shí)符創(chuàng)建類型。

  • 從類型定義構(gòu)造類型的實(shí)例。

這種方法將在發(fā)生錯(cuò)誤時(shí)提供更好的故障排除選項(xiàng):如果第一步失敗,則意味著 COM 類未注冊(cè)或無(wú)法從注冊(cè)表訪問(wèn);否則,這可能表示存在某些權(quán)限問(wèn)題。請(qǐng)閱讀《如何使用SOLIDWORKS API創(chuàng)建獨(dú)立(exe)應(yīng)用程序》一文,了解此方法的限制說(shuō)明。

或者,您可以使用 Marshal::GetActiveObject方法(https://learn.microsoft.com/zh-cn/dotnet/api/system.runtime.interopservices.marshal.getactiveobject)連接到SOLIDWORKS的活動(dòng)(已啟動(dòng))會(huì)話。與調(diào)用 GetObject 不同,此方法將確保不會(huì)創(chuàng)建新的 SOLIDWORKS 實(shí)例,并且如果沒(méi)有要連接的正在運(yùn)行的 SOLIDWORKS 會(huì)話,則會(huì)引發(fā)異常。

通過(guò) ROT 獲取正在運(yùn)行的實(shí)例

為了連接到已經(jīng)運(yùn)行的特定 SOLIDWORKS 會(huì)話或能夠創(chuàng)建多個(gè)會(huì)話,您可以使用正在運(yùn)行的對(duì)象表 API。請(qǐng)閱讀《如何使用SOLIDWORKS API創(chuàng)建獨(dú)立(exe)應(yīng)用程序》一文,了解有關(guān)此方法的更多詳細(xì)信息。

在上面的示例中,通過(guò)從SOLIDWORKS應(yīng)用程序安裝路徑啟動(dòng)新進(jìn)程來(lái)啟動(dòng)SOLIDWORKS的新會(huì)話。StartSwApp 函數(shù)需要 sldworks.exe的完整路徑作為第一個(gè)參數(shù),可選的timeout(超時(shí),以秒為單位)作為第二個(gè)參數(shù)。超時(shí)將確保在進(jìn)程無(wú)法啟動(dòng)的情況下應(yīng)用程序不會(huì)被鎖定。

您還可以使用異步調(diào)用,以便在SOLIDWORKS啟動(dòng)時(shí)在應(yīng)用程序中顯示一些進(jìn)度指示:


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

僅供學(xué)習(xí)使用。


為SOLIDWORKS創(chuàng)建VB.NET獨(dú)立(exe)應(yīng)用程序的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
仁化县| 固始县| 个旧市| 营口市| 兴国县| 南川市| 那曲县| 铜鼓县| 阳山县| 武穴市| 阳江市| 五指山市| 江永县| 怀来县| 达尔| 龙口市| 古田县| 江阴市| 大城县| 班戈县| 牙克石市| 新宁县| 波密县| 佛山市| 温宿县| 苍溪县| 新建县| 理塘县| 尚志市| 桃源县| 邢台县| 瑞安市| 呼图壁县| 社会| 宝丰县| 台南市| 新蔡县| 内乡县| 蒙阴县| 银川市| 讷河市|