簡體   English   中英

AutoCAD插件開發示例

[英]AutoCAD Plugin Development by Example

我對開發AutoCAD插件感興趣,並試圖了解幾種不同類型的AutoCAD插件文件之間的關系:

據我所知,這三個文件都是相互關聯的,並且一起工作以初始化和加載插件,我只是沒有看到樹林中每種文件類型包含哪些信息,加載或取決於哪個文件的信息。其他等等

聽起來插件的核心功能應該放在ARX文件中,並用C ++編寫並針對本機/目標平台進行編譯。

聽起來 ,在啟動時,AutoCAD會加載其插件DLL,它們都是托管的.NET庫(通常用C#編寫),然后依次調用其本機/已編譯的ARX文件。 至於CUIX文件在哪里起作用,我仍然不知道。

誰能幫助解釋這些文件的關系和依賴性,以及其中包含哪些類型的代碼/邏輯/數據? 提前致謝!

AutoCAD核心庫都是用非托管代碼(我相信是C ++)編寫的。 最終,無論選擇哪種API開發插件,您都將通過這些核心庫中的一種API來操縱這些核心庫中的非托管AutoCAD對象。 除了您提到的三種文件類型之外,還有許多其他方法可以為AutoCAD創建插件。 一些示例包括:Lisp腳本,VBA腳本,COM客戶端(VB,Java,Delphi)。 這些大多數現在已經過時了,如今,.Net和C ++(ObjectARX)API最受歡迎。 但是,其余的由於遺留原因仍在使用中。 如果要啟動新模塊,則可以使用.Net或ARX。

.NET API是一組包裝ObjectARX API的.NET包裝器庫。 您將引用的最常見的dll是accoremgd.dllacdbmgd.dllacmgd.dll ,但還有其他。 這些庫使您可以通過.NET語言來處理本地AutoCad對象。 如果要在C#中為AutoCad創建插件,則只需要在C#中進行編碼。 這對於提高開發速度非常有用,但是您的代碼性能將略遜於ARX插件。 話雖這么說,我真的想強調一點,它仍然很快。 由於性能問題,我沒有發現需要使用C ++ for AutoCAD進行編碼。 總體而言,它非常強大且功能豐富。 僅使用C#,您就可以對圖形做任何事情。

看看這個答案,我最近給。 它可以回答有關.Net的AutoCAD插件開發入門的大部分(如果不是全部)問題。

除了使用C ++進行編碼外, ObjectARX API與我為.NET API所描述的非常相似。 一些庫包括rxapi.libaccore.libacgiapi.libacdrawbridge.lib以及其他一些庫。 與使用C#相比,使用C ++進行開發要麻煩得多,但是C ++代碼運行得更快,盡管幅度不大。

CUIX文件生活在一個完全不同的星系中。 它們用於自定義UI以及其他相關內容。 您可以在此處瀏覽cuix文件的各種用法

您的選擇將真正取決於您在做什么。 如果編寫的代碼將盡可能快地批量處理成千上萬的圖形,那么您將需要探索C ++ API。 如果您僅處理數百個工程圖或僅為用戶創建一堆命令,我強烈建議您使用C#API。 值得的一點是,性能幾乎不會被用戶察覺到。

有關更多信息, 請轉到此AutoDesk鏈接 ,然后向下滾動到培訓實驗室。 我建議您至少通讀ObjectARX和.NET培訓實驗室。 選擇要使用的內容后,請通過所有實驗室進行選擇。 稍后,您將多謝自己,因為您將節省數小時的頭痛和挫敗感!

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM