成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#.NET教程:訪問 ObjectARX .NET 封裝類

開發(fā) 后端
本文以“Hello World”命令為例,介紹了訪問 ObjectARX .NET 封裝類的方法。

在這一章中,我們將使用Visual Studio .NET來創(chuàng)建一個(gè)新的類庫工程。通過這個(gè)工程,你可以創(chuàng)建一個(gè)能被AutoCAD裝載的.NET dll文件。這個(gè)dll文件會(huì)向AutoCAD加入一個(gè)名為“HelloWorld”的新命令。當(dāng)用戶運(yùn)行這個(gè)命令后,在AutoCAD 命令行上將顯示“Hello World”文本,訪問 ObjectARX .NET 封裝類

1) 啟動(dòng)Visual Studio.NET,選擇”文件>新建>工程”(File> New> Project)。在新建工程對(duì)話框中選擇工程類型為”Visual C#工程”,然后選擇”類庫”模板,在工程名字框中輸入”Lab1”,然后選擇工程存放的位置。點(diǎn)擊確定按鈕來創(chuàng)建工程。

2) 在工程的Class1.cs文件中,一個(gè)公有類“Class1”已經(jīng)被系統(tǒng)自動(dòng)創(chuàng)建了。接下來向這個(gè)類加入命令。要加入命令,你必須使用AutoCAD .NET托管封裝類。這些托管封裝類包含在兩個(gè)托管模塊中。要加入對(duì)這兩個(gè)托管模塊的引用,請(qǐng)用鼠標(biāo)右鍵單擊”引用”然后選擇”添加引用”。在彈出的”添加引用”對(duì)話框中選擇”瀏覽”。在”選擇組件”對(duì)話框中,選擇AutoCAD 2006的安裝目錄(這里假定為C:\Program Files\AutoCAD 2006\),在這個(gè)目錄下找到“acdbmgd.dll”然后選擇并打開它。再一次選擇”瀏覽”,在AutoCAD 2006的安裝目錄下找到“acmgd.dll”并打開它。當(dāng)這兩個(gè)組件被加入后,請(qǐng)單擊”添加引用” 對(duì)話框中的”確定”按鈕。正如它們的名字所表示的,acdbmgd.dll包含ObjectDBX托管類,而acmgd.dll包含AutoCAD托管類。

3) 使用對(duì)象瀏覽器(Visual Studio.NET的”查看>其它窗口>對(duì)象瀏覽器”菜單項(xiàng))來瀏覽加入的兩個(gè)托管模塊所提供的類。請(qǐng)展開“AutoCAD .NET Managed Wrapper”對(duì)象(在對(duì)象瀏覽器中顯示為acmgd),在整個(gè)教程中我們將使用這個(gè)對(duì)象中的類。在本章中,我們將使用 “Autodesk.AutoCAD.EditorInput.Editor”類的一個(gè)實(shí)例來在AutoCAD命令行中顯示文本。請(qǐng)?jiān)僬归_“ObjectDBX .NET Managed Wrapper” 對(duì)象(在對(duì)象瀏覽器中顯示為acdbmgd),這個(gè)對(duì)象中的類將被用來訪問和編輯AutoCAD圖形中的實(shí)體(這部分內(nèi)容將在以后的章節(jié)中介紹)。

4) 引用了ObjectARX .NET 封裝類后,我們就可以導(dǎo)入它們。在Class1類的聲明語句(位于Class1.cs文件的頂部的)之前,導(dǎo)入ApplicationServices, EditorInput 和 Runtime命名空間。

  1. using Autodesk.AutoCAD.ApplicationServices;  
  2. using Autodesk.AutoCAD.EditorInput;  
  3. using Autodesk.AutoCAD.Runtime; 

5) 接下來在類Class1中加入命令。要加入能在AutoCAD 中調(diào)用的命令,你必須使用“CommandMethod”屬性。這個(gè)屬性由Runtime命名空間提供。在類Class1中加入下列屬性和函數(shù)。

  1. [CommandMethod("HelloWorld")]  
  2. public void HelloWorld()  
  3. {  
  4.  
  5. }  

6) 當(dāng)“HelloWorld”命令在AutoCAD中運(yùn)行的時(shí)候,上面定義的HelloWorld函數(shù)就會(huì)被調(diào)用。在這個(gè)函數(shù)中,一個(gè)Editor類的實(shí)例將被創(chuàng)建。Editor類擁有訪問AutoCAD命令行的相關(guān)方法,它還包括選擇對(duì)象和其它一些重要的功能。AutoCAD當(dāng)前活動(dòng)文檔的Editor對(duì)象可以使用Application類來訪問。當(dāng)Editor對(duì)象被創(chuàng)建后,你可以使用它的WriteMessage方法在命令行中顯示“Hello World”文本。在HelloWorld函數(shù)中加入以下代碼:

  1. Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;  
  2. ed.WriteMessage("Hello World"); 

7) 要在AutoCAD中調(diào)試這個(gè)程序,你可以讓Visual Studio.NET啟動(dòng)一個(gè)AutoCAD進(jìn)程。在解決方案管理器中右鍵單擊“Lab1”,然后選擇”屬性”。在Lab1的屬性頁對(duì)話框中,選擇” 配置屬性>調(diào)試”。在”啟動(dòng)”項(xiàng)中,選擇”調(diào)試模式”為”程序”,在”啟動(dòng)程序”的右邊單擊省略號(hào)按鈕然后選擇AutoCAD 2006安裝目錄下的acad.exe。設(shè)置好以后,按F5來啟動(dòng)一個(gè)AutoCAD進(jìn)程。這樣就會(huì)編譯你的程序然后自動(dòng)啟動(dòng)AutoCAD,而當(dāng)編譯后有錯(cuò)誤的時(shí)候就會(huì)停止。請(qǐng)修正你可能碰到的任何錯(cuò)誤。

8) “NETLOAD”命令被用來裝載托管程序。在AutoCAD命令行中輸入NETLOAD,會(huì)出現(xiàn)”選擇.NET組件”的對(duì)話框。選擇上面生成的“l(fā)ab1.dll”然后打開它。

9) 在命令行中輸入“HellowWorld”。如果一切順利的話,命令行中將顯示“Hello World”文本。切換到Visual Studio.NET,在ed.WriteMessage(“Hello World”);語句處加入一個(gè)斷點(diǎn)。在AutoCAD中再次運(yùn)行HelloWorld命令,你會(huì)注意到你可以跟蹤代碼的運(yùn)行。Visul Studio.NET的”調(diào)試”菜單有好幾項(xiàng)可以用來跟蹤程序的運(yùn)行。

如果有時(shí)間的話,請(qǐng)瀏覽一下CommandMethod屬性。你會(huì)發(fā)現(xiàn)它有七種不同的形式。在上面的例子中,我們使用了最簡(jiǎn)單的形式,它只有一個(gè)輸入?yún)?shù)(命令的名字)。你可以使用其它的形式來控制命令的工作方式,例如你可以確定命令組的名字、全局和局部名字、命令標(biāo)識(shí)(命令如何來運(yùn)行)等。

這樣,就完成了ObjectARX .NET 封裝類的訪問。

【編輯推薦】

  1. C#事件和委托的編譯代碼
  2. C#事件的由來
  3. 學(xué)習(xí)C#委托:將方法綁定到委托
  4. 學(xué)習(xí)C#委托:將方法作為方法的參數(shù)
  5. C# 插件構(gòu)架實(shí)例詳解
責(zé)任編輯:book05 來源: 新浪博客
相關(guān)推薦

2009-08-25 13:53:20

C#.NET rege

2009-08-19 16:05:46

AutoCADEditor類

2009-08-26 14:23:14

C#.Net Fram

2009-09-11 11:30:53

Net60C#.NET

2011-06-17 15:55:19

ArrayListC#

2009-08-13 10:35:55

C#.NET操作XML

2009-08-26 10:09:22

C#編碼規(guī)范

2009-08-24 16:19:54

C#.NET綁定Off

2009-08-19 16:19:33

Employee對(duì)象

2011-06-01 15:45:28

實(shí)體類序列化

2009-08-24 16:30:43

C#.NET綁定Off

2009-08-31 14:45:15

C#.NET多線程應(yīng)用

2009-04-02 15:21:43

c#IDisposeFinalize

2009-08-28 09:29:02

2009-08-28 14:15:19

SocketVisual C#.N

2009-09-01 16:14:05

ArrayList與A

2009-10-29 17:45:24

VB.NET線程

2023-09-26 07:57:17

C#.NetCCtor函數(shù)

2023-08-02 08:48:11

C#碟片算法

2023-10-11 14:18:40

C#.Net析構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品久久久久aaaa九色 | 韩国主播午夜大尺度福利 | 男女久久久 | 日韩在线看片 | 国产免费一区二区 | 91精品国产日韩91久久久久久 | 成人精品国产一区二区4080 | 黄色一级大片在线免费看产 | 亚洲一区二区三区在线视频 | 成人免费在线观看 | 91精品午夜窝窝看片 | 99精品视频在线观看 | 人人射人人插 | 一区在线视频 | 亚洲欧美日韩激情 | 亚洲顶级毛片 | 亚洲免费在线播放 | 成人精品鲁一区一区二区 | 国产一级特黄aaa大片评分 | 国产精品久久久久久久久免费丝袜 | 亚洲欧美一区二区三区在线 | 免费观看一级特黄欧美大片 | 黄免费看| 皇色视频在线 | 成人永久免费 | 国产精品欧美一区喷水 | 香蕉视频一区二区 | 久久爆操 | 日韩欧美在线一区 | 国产精品高潮呻吟久久 | 国产精品久久久久久久一区二区 | 热久色| 国产成人精品免高潮在线观看 | 亚洲国产精品一区二区久久 | 91精品在线播放 | 国内精品在线视频 | 欧美日韩一区不卡 | 成人99| 欧美一区在线视频 | 久久福利 | 在线看片网站 |