Autodesk官方最新的.NET教程(一)(C#版)

教程

  第 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属性。你会发现它有七种不同的形式。在上面的例子中,我们使用了最简单的形式,它只有一个输入参数(命令的名字)。你可以使用其它的形式来控制命令的工作方式,例如你可以确定命令组的名字、全局和局部名字、命令标识(命令如何来运行)等。

时间: 2024-10-27 05:21:20

Autodesk官方最新的.NET教程(一)(C#版)的相关文章

Autodesk官方最新的.NET教程(六)(C#版)

教程 第6章 更多的用户界面:添加自定义数据 在本章中,我们将介绍.NET API的用户界面部分能做些什么.我们首先将介绍一个自定义上下文菜单(快捷菜单).接下来我们将实现一个无模式可停靠的面板(一个真正的AutoCAD增强辅助窗口)来支持拖放操作.接着我们将介绍通过模式窗体选取实体.最后,我们将介绍使用AutoCAD的选项对话框来设置雇员的缺省值.本章还会介绍和上面内容有关的API. 第一部分 自定义上下文菜单 到目前为止,我们所写的代码只与CommandMethod属性定义的命令行进行相互操

Autodesk官方最新的.NET教程(六)(vb.net版)

教程 第6章 更多的用户界面:添加自定义数据在本章中,我们将介绍.NET API的用户界面部分能做些什么.我们首先将介绍一个自定义上下文菜单(快捷菜单).接下来我们将实现一个无模式可停靠的面板(一个真正的AutoCAD增强辅助窗口)来支持拖放操作.接着我们将介绍通过模式窗体选取实体.最后,我们将介绍使用AutoCAD的选项对话框来设置雇员的缺省值.本章还会介绍和上面内容有关的API. 第一部分 自定义上下文菜单 到目前为止,我们所写的代码只与CommandMethod属性定义的命令行进行相互操作

Autodesk官方最新的.NET教程(四)(vb.net版)

教程 第 4 章 数据库基础2:  添加自定义数据 在这一章中,我们将创建一个新的字典对象,它用来表示我们雇员就职的 'Acme 公司'(呵呵,当然是虚构的一家公司)的部门.这个"部门"字典对象将包含一个表示部门经理的记录.我们还会加入代码到雇员创建过程,这个过程会加入一个索引到雇员工作的部门.我们要说明的是如何在DWG文件中创建自定义数据,包括"每个图形"的自定义数据和"每个实体"的自定义数据."每个图形"的自定义数据是指只

Autodesk官方最新的.NET教程(五)(vb.net版)

教程   第 5 章 用户互操作:提示和选择背景提示通常包含一个描述性信息,伴随一个停止以让用户理解所给的信息并输入数据.数据可以通过多种方式被输入,如通过命令行.对话框或AutoCAD编辑窗口.给出的提示要遵循一定的格式,格式要与一般的AutoCAD提示相一致,这一点是非常重要的.例如,关键字要用"/"号分隔并放在方括号"[]"中,缺省值要放在"<>"内.对于一个AutoCAD用户来说,坚持统一的格式将会减少信息理解错误的产生.当用

Autodesk官方最新的.NET教程(一)(VB.NET版)

教程   第 1章         Hello World: 工程的创建        在这一章中,我们将不使用ObjectARX向导来创建一个新的工程.我们将使用Visual Studio .NET来创建一个新的类库工程.通过这个工程,你可以创建一个能被AutoCAD装载的.NET  dll文件.这个dll文件会向AutoCAD加入一个名为"HelloWorld"的新命令.当用户运行这个命令后,在AutoCAD 命令行上将显示"Hello World"文本.1) 

Autodesk官方最新的.NET教程(二)(VB.NET版)

教程   第2章  .NET AutoCAD 向导及简单用户输入        在第一章中,我们使用的是类库模板,这样就不得不手工加入acdbmdg. dll 和acmgd.dll这两个引用.在这一章中,我们将使用AutoCAD托管C#应用程序向导来创建.NET工程,它会自动加入以上两个引用.在开始本章之前,你首先得安装ObjectARX向导(ObjectARX2006开发包的\utils\ObjARXWiz\ArxWizards.msi).   1)    启动Visual Studio .N

Autodesk官方最新的.NET教程(三)(vb.net版)

教程 第 3 章 数据库基础:  创建我们自己的Employee 对象 打开Lab3文件夹下的Lab3工程文件,或或接着Lab2的代码.在这一章中,我们将创建一个'Employee 对象'(包括一个圆,一个椭圆和一个多行文本对象),这个对象属于一个自定义的EmployeeBlock'块(这个块驻留在'EmployeeLayer'层,当在模型空间插入这个块的时候,'EmployeeLayer'层就会拥有这个块的一个块索引).本章的每一个步骤中的代码都可以运行,这样做的目的可以使你更清楚地知道每一部

Autodesk官方最新的.NET教程(七)(C#版)

教程 第7章 事件 本章将讨论AutoCAD中的事件.我们将介绍事件处理函数的使用,特别是监视AutoCAD命令的事件处理函数和监视被AutoCAD命令修改的对象的事件处理函数.在解释怎样在C#中实现AutoCAD的事件处理之前,我们将首先简要地讨论一下.NET中的事件.  第一部分 C#中的事件 事件只是用来通知一个行为已经发生的信息.在ObjectARX中,我们使用反应器(reactor)来处理AutoCAD的事件.而在AutoCAD .NET API中,ObjectARX反应器被换成了事件

Autodesk官方最新的.NET教程(七)(vb.net版)

教程 第7章 事件 本章将讨论AutoCAD中的事件.我们将介绍事件处理函数的使用,特别是监视AutoCAD命令的事件处理函数和监视被AutoCAD命令修改的对象的事件处理函数.在解释怎样实现AutoCAD的事件处理之前,我们将首先简要地讨论一下.NET中的事件.  第一部分 VB.NET中的事件 事件只是用来通知一个行为已经发生的信息.在ObjectARX中,我们使用反应器(reactor)来处理AutoCAD的事件.而在AutoCAD .NET API中,ObjectARX反应器被换成了事件