Autodesk官方最新的.NET教程(一)(C#版)
來源:互聯網
上載者:User
教程 第 1章 Hello World: 訪問 ObjectARX .NET 封裝類 在這一章中,我們將使用Visual Studio .NET來建立一個新的類庫工程。通過這個工程,你可以建立一個能被AutoCAD裝載的.NET dll檔案。這個dll檔案會向AutoCAD加入一個名為“HelloWorld”的新命令。當使用者運行這個命令後,在AutoCAD 命令列上將顯示“Hello World”文本。 1) 啟動Visual Studio.NET,選擇”檔案>建立>工程”(File> New> Project)。在建立工程對話方塊中選擇工程類型為”Visual C#工程”,然後選擇”類庫”模板,在工程名字框中輸入”Lab1”,然後選擇工程存放的位置。點擊確定按鈕來建立工程。2) 在工程的Class1.cs檔案中,一個公有類“Class1”已經被系統自動建立了。接下來向這個類加入命令。要加入命令,你必須使用AutoCAD .NET託管封裝類。這些託管封裝類包含在兩個託管模組中。要加入對這兩個託管模組的引用,請用滑鼠右鍵單擊”引用”然後選擇”添加引用”。在彈出的”添加引用”對話方塊中選擇”瀏覽”。在”選擇組件”對話方塊中,選擇AutoCAD 2006的安裝目錄(這裡假定為C:\Program Files\AutoCAD 2006\),在這個目錄下找到“acdbmgd.dll”然後選擇並開啟它。再一次選擇”瀏覽”,在AutoCAD 2006的安裝目錄下找到“acmgd.dll”並開啟它。當這兩個組件被加入後,請單擊”添加引用” 對話方塊中的”確定”按鈕。正如它們的名字所表示的,acdbmgd.dll包含ObjectDBX託管類,而acmgd.dll包含AutoCAD託管類。3) 使用物件瀏覽器(Visual Studio.NET的”查看>其它視窗>物件瀏覽器”功能表項目)來瀏覽加入的兩個託管模組所提供的類。請展開“AutoCAD .NET Managed Wrapper”對象(在物件瀏覽器中顯示為acmgd),在整個教程中我們將使用這個對象中的類。在本章中,我們將使用 “Autodesk.AutoCAD.EditorInput.Editor”類的一個執行個體來在AutoCAD命令列中顯示文本。請再展開“ObjectDBX .NET Managed Wrapper” 對象(在物件瀏覽器中顯示為acdbmgd),這個對象中的類將被用來訪問和編輯AutoCAD圖形中的實體(這部分內容將在以後的章節中介紹)。4) 引用了ObjectARX .NET 封裝類後,我們就可以匯入它們。在Class1類的聲明語句(位於Class1.cs檔案的頂部的)之前,匯入ApplicationServices, EditorInput 和 Runtime命名空間。 using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.EditorInput;using Autodesk.AutoCAD.Runtime; 5) 接下來在類Class1中加入命令。要加入能在AutoCAD 中調用的命令,你必須使用“CommandMethod”屬性。這個屬性由Runtime命名空間提供。在類Class1中加入下列屬性和函數。 [CommandMethod("HelloWorld")] public void HelloWorld(){ } 6) 當“HelloWorld”命令在AutoCAD中啟動並執行時候,上面定義的HelloWorld函數就會被調用。在這個函數中,一個Editor類的執行個體將被建立。Editor類擁有訪問AutoCAD命令列的相關方法,它還包括選擇對象和其它一些重要的功能。AutoCAD當前使用中文件的Editor對象可以使用Application類來訪問。當Editor對象被建立後,你可以使用它的WriteMessage方法在命令列中顯示“Hello World”文本。在HelloWorld函數中加入以下代碼: Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.WriteMessage("Hello World"); 7) 要在AutoCAD中調試這個程式,你可以讓Visual Studio.NET啟動一個AutoCAD進程。在解決方案管理器中按右鍵“Lab1”,然後選擇”屬性”。在Lab1的屬性頁面對話方塊中,選擇” 配置屬性>調試”。在”啟動”項中,選擇”偵錯模式”為”程式”,在”啟動程式”的右邊單擊省略符號按鈕然後選擇AutoCAD 2006安裝目錄下的acad.exe。設定好以後,按F5來啟動一個AutoCAD進程。這樣就會編譯你的程式然後自動啟動AutoCAD,而當編譯後有錯誤的時候就會停止。請修正你可能碰到的任何錯誤。8) “NETLOAD”命令被用來裝載託管程式。在AutoCAD命令列中輸入NETLOAD,會出現”選擇.NET組件”的對話方塊。選擇上面產生的“lab1.dll”然後開啟它。9) 在命令列中輸入“HellowWorld”。如果一切順利的話,命令列中將顯示“Hello World”文本。切換到Visual Studio.NET,在ed.WriteMessage(“Hello World”);語句處加入一個斷點。在AutoCAD中再次運行HelloWorld命令,你會注意到你可以跟蹤代碼的運行。Visul Studio.NET的”調試”菜單有好幾項可以用來跟蹤程式的運行。 如果有時間的話,請瀏覽一下CommandMethod屬性。你會發現它有七種不同的形式。在上面的例子中,我們使用了最簡單的形式,它只有一個輸入參數(命令的名字)。你可以使用其它的形式來控制命令的工作方式,例如你可以確定命令組的名字、全域和局部名字、命令標識(命令如何來運行)等。