天天看點

C#實戰之CAD二次開發001:CAD和C#的環境配置

前言

本博文主要介紹利用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。

C#實戰之CAD二次開發001:CAD和C#的環境配置

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鍵,就會顯示下圖所示。

C#實戰之CAD二次開發001:CAD和C#的環境配置
C#實戰之CAD二次開發001:CAD和C#的環境配置

這裡介紹一個小技巧,如果在做大項目的時候,每次都在CAD中執行NetLoad指令,會很耽誤效率,在CAD安裝目錄下的Support檔案夾中找到acad2010.lsp檔案,打開在最下方輸入以下指令 (command “netload” “你項目生成的dll路徑”),這樣就不用每次運作CAD就執行NetLoad指令了。

由此,CAD和C#的環境配置已基本完成了,項目主要參考資料為

AutoCAD VBA&VB.NET開發基礎與執行個體教程(第二版)

有興趣的讀者可以閱讀學習一下!