1. 程式人生 > >AutoCAD2019二次開發.Net學習

AutoCAD2019二次開發.Net學習

工作上要用到CAD畫圖,但是機械性的操作太多,感覺效率很低,既然是偽程式猿何不用程式碼提高下設計效率呢,我就有了CAD二次開發的想法,參考了網上很多大佬的教程,這裡把我自己總結的方法記錄下來,使用的均為目前最新版本的軟體,踩了一些坑,希望和大家分享一下。

1.環境搭建

CAD版本一般要比VS版本晚兩年以上,比如我現在使用VS2017,則CAD要用2019版,至於CAD2018能不能用沒試驗過,有興趣的小夥伴可以試試。

搭建環境很簡單,只需兩步:

      1.安裝ObjectARX類庫

雙擊Autodesk_ObjectARX_2019_Win_64_and_32_Bit.sfx選個非中文路徑解壓,記住路徑備用。

      2.安裝dotnet_wizards

雙擊安裝autoCADnetwizards2019,嚮導可以幫我們配置好環境,當然也可以自己配置,但是還是直接用人家提供的嚮導方便。這裡我安裝的時候碰到一個坑,開啟wizard後提示需要framework4.7,而我明明安裝了framework4.7.2,折騰了半天最後把4.7.2卸了裝回4.7才把wizard裝上,好吧,人家只認framework4.7,高了不行。

我也放在網盤了:網盤   密碼:y2fz。

2.Hello World

完成上述步驟開啟CAD,新建專案,可以發現C#下面出現了Autodesk選項,framework固定為4.7,點選確定。

                                  

接下來選擇:ObjectARX SDK(上面第一步的路徑) 和 CAD 軟體安裝目錄。

                                            

點選Ok後建立完成。

此時在解決方案欄裡有了兩個cs:myCommand.cs和myPlugin.cs,選擇myCommand.cs找到如下程式碼:

[CommandMethod("MyGroup", "MyCommand", "MyCommandLocal", CommandFlags.Modal)]
public void MyCommand() // This method can have any name
        {
            // Put your command code here
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Editor ed;
            if (doc != null)
            {
                ed = doc.Editor;
                ed.WriteMessage("Hello, this is your first command.");

            }
        }

這是其自動生成的示例,在CAD裡輸入"MyCommand"命令可以輸出"Hello, this is your first command."的資訊,我們可以改成熟悉的"Hello World"

ed.WriteMessage("Hello World");

F5啟動,系統會自動開啟CAD,在CAD中輸入命令"netload",開啟“選擇.NET程式集”框,找到我們剛生成的dll。

注:啟動前選Debug的話,生成的dll在:工程資料夾\bin\Debug裡,比如我的在:

F:\IGNB \AutoCAD CSharp plug-in2\bin\Debug裡。

選擇後會詢問安全性,選載入。

這樣我們的dll就載入進來了,命令欄輸入mycommand,回車會顯示“Hello World”,則執行成功。

在VS裡設定斷點,再回CAD輸一遍mycommand命令,可以看見斷點也能正常運作。