在這一章中我們將使用Visual Studio NET來創建一個新的類庫工程通過這個工程你可以創建一個能被AutoCAD裝載的NET dll文件這個dll文件會向AutoCAD加入一個名為HelloWorld的新命令當用戶運行這個命令後在AutoCAD 命令行上將顯示Hello World文本
) 啟動Visual StudioNET選擇文件>新建>工程(File> New> Project)在新建工程對話框中選擇工程類型為Visual C#工程然後選擇類庫模板在工程名字框中輸入Lab然後選擇工程存放的位置點擊確定按鈕來創建工程
) 在工程的Classcs文件中一個公有類Class已經被系統自動創建了接下來向這個類加入命令要加入命令你必須使用AutoCAD NET托管封裝類這些托管封裝類包含在兩個托管模塊中要加入對這兩個托管模塊的引用請用鼠標右鍵單擊引用然後選擇添加引用在彈出的添加引用對話框中選擇浏覽在選擇組件對話框中選擇AutoCAD 的安裝目錄(這裡假定為C:\Program Files\AutoCAD \)在這個目錄下找到acdbmgddll然後選擇並打開它再一次選擇浏覽在AutoCAD 的安裝目錄下找到acmgddll並打開它當這兩個組件被加入後請單擊添加引用 對話框中的確定按鈕正如它們的名字所表示的acdbmgddll包含ObjectDBX托管類而acmgddll包含AutoCAD托管類
) 使用對象浏覽器(Visual StudioNET的查看>其它窗口>對象浏覽器菜單項)來浏覽加入的兩個托管模塊所提供的類請展開AutoCAD NET Managed Wrapper對象(在對象浏覽器中顯示為acmgd)在整個教程中我們將使用這個對象中的類在本章中我們將使用 AutodeskAutoCADEditorInputEditor類的一個實例來在AutoCAD命令行中顯示文本請再展開ObjectDBX NET Managed Wrapper 對象(在對象浏覽器中顯示為acdbmgd)這個對象中的類將被用來訪問和編輯AutoCAD圖形中的實體(這部分內容將在以後的章節中介紹)
) 引用了ObjectARX NET 封裝類後我們就可以導入它們在Class類的聲明語句(位於Classcs文件的頂部的)之前導入ApplicationServices EditorInput 和 Runtime命名空間
using AutodeskAutoCADApplicationServices;
using AutodeskAutoCADEditorInput;
using AutodeskAutoCADRuntime;
) 接下來在類Class中加入命令要加入能在AutoCAD 中調用的命令你必須使用CommandMethod屬性這個屬性由Runtime命名空間提供在類Class中加入下列屬性和函數
[CommandMethod(HelloWorld)]
public void HelloWorld()
{
}
) 當HelloWorld命令在AutoCAD中運行的時候上面定義的HelloWorld函數就會被調用在這個函數中一個Editor類的實例將被創建Editor類擁有訪問AutoCAD命令行的相關方法它還包括選擇對象和其它一些重要的功能AutoCAD當前活動文檔的Editor對象可以使用Application類來訪問當Editor對象被創建後你可以使用它的WriteMessage方法在命令行中顯示Hello World文本在HelloWorld函數中加入以下代碼
Editor ed = ApplicationDocumentManagerMdiActiveDocumentEditor;
edWriteMessage(Hello World);
) 要在AutoCAD中調試這個程序你可以讓Visual StudioNET啟動一個AutoCAD進程在解決方案管理器中右鍵單擊Lab然後選擇屬性在Lab的屬性頁對話框中選擇 配置屬性>調試在啟動項中選擇調試模式為程序在啟動程序的右邊單擊省略號按鈕然後選擇AutoCAD 安裝目錄下的acadexe設置好以後按F來啟動一個AutoCAD進程這樣就會編譯你的程序然後自動啟動AutoCAD而當編譯後有錯誤的時候就會停止請修正你可能碰到的任何錯誤
) NETLOAD命令被用來裝載托管程序在AutoCAD命令行中輸入NETLOAD會出現選擇NET組件的對話框選擇上面生成的labdll然後打開它
) 在命令行中輸入HellowWorld如果一切順利的話命令行中將顯示Hello World文本切換到Visual StudioNET在edWriteMessage(Hello World);語句處加入一個斷點在AutoCAD中再次運行HelloWorld命令你會注意到你可以跟蹤代碼的運行Visul StudioNET的調試菜單有好幾項可以用來跟蹤程序的運行
如果有時間的話請浏覽一下CommandMethod屬性你會發現它有七種不同的形式在上面的例子中我們使用了最簡單的形式它只有一個輸入參數(命令的名字)你可以使用其它的形式來控制命令的工作方式例如你可以確定命令組的名字全局和局部名字命令標識(命令如何來運行)等
From:http://tw.wingwit.com/Article/program/net/201311/12427.html