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命令,可以看見斷點也能正常運作。