前言
本博文主要介紹利用C#對CAD進行二次開發,結合了ObjectARX功能強大的特點和VBA易用的特點,通過實戰項目對C#開發CAD進行一個簡要的介紹。
1.CAD的安裝
首先我們需要安裝CAD,不同版本的CAD所對應的.NET版本不同,這裡我安裝的CAD版本為2010,從網上下載下傳好安裝包之後,進行安裝。詳細安裝流程可參考 https://jingyan.baidu.com/article/03b2f78c1bdfd05ea337ae66.html
2.VS2012的安裝
這裡我們開發環境選擇VS2012,當然選擇VS2015也是可以的,讀者可在官網下載下傳相應的版本。如果遇到無法解除安裝VS2015的情況,可利用這個工具進行解除安裝:https://download.csdn.net/download/qq_26739139/10974619 安裝好之後我們就可以進行環境的配置了。
3.配置VS2012
CAD和VS2012安裝完畢之後,我們就可以開始準備環境的配置了,首先我們建立一個類庫項目,然後再引用CAD的兩個dll檔案,在CAD的安裝目錄下的找到這兩個檔案,acmgd.dll和acdbmgd.dll,由于VS2012的.NET版本較高,而CAD2010的.NET版本為3.5,可能會出現不相容的情況,是以需要把項目的目标架構改為.NET3.5。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL10EVNVTT65kMJpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzEzN4IDMwkDM0IjNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
4.第一個AutoCAD程式
下面我們來實踐一下,上面我們建立了一個類庫項目,名字預設Class1,引用上面所說的兩個檔案,并将項目目标架構改為.NET3.5。在Class1中敲入一下代碼:
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
接下來在Class1類中加入指令Hello。要加入能在AutoCAD中調用的指令,就必須要使用CommandMethod屬性,這個屬性由Runtime命名空間提供。
public class Class1
{
[CommandMethod("Hello")]
public void Hello()
{
//擷取目前活動文檔的Editor對象,也就是指令行
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
//調用Editor對象的WriteMessage函數在指令行上顯示文本
ed.WriteMessage("Hello, 歡迎進入.NET 開發CAD世界");
}
}
接下我們選擇生成解決方案或快捷鍵F6編譯程式,如果顯示生成成功則表示程式已經成功被編譯。啟動AutoCAD2010,使用NetLoad指令裝在編譯好的托管程式,在CAD中執行NetLoad指令,會彈出一個對話框,找到項目中生成的Hello.dll,然後打開它。
這時在CAD指令行中輸入hello并按Enter鍵,就會顯示下圖所示。
這裡介紹一個小技巧,如果在做大項目的時候,每次都在CAD中執行NetLoad指令,會很耽誤效率,在CAD安裝目錄下的Support檔案夾中找到acad2010.lsp檔案,打開在最下方輸入以下指令 (command “netload” “你項目生成的dll路徑”),這樣就不用每次運作CAD就執行NetLoad指令了。
由此,CAD和C#的環境配置已基本完成了,項目主要參考資料為
AutoCAD VBA&VB.NET開發基礎與執行個體教程(第二版)
有興趣的讀者可以閱讀學習一下!