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

教程

  第2章  .NET AutoCAD 向导及简单用户输入        在第一章中,我们使用的是类库模板,这样就不得不手工加入acdbmdg. dll 和acmgd.dll这两个引用。在这一章中,我们将使用AutoCAD托管C#应用程序向导来创建.NET工程,它会自动加入以上两个引用。在开始本章之前,你首先得安装ObjectARX向导(ObjectARX2006开发包的\utils\ObjARXWiz\ArxWizards.msi)。   1)    启动Visual Studio .NET,选择”文件>新建>工程”(File> New> Project)。在新建工程对话框中选择工程类型为”Visual Basic工程”,然后选择“AutoCAD Managed VB Project Application”模板。在工程名字框中输入”Lab2”,然后选择工程存放的位置。点击确定按钮,“AutoCAD Managed VB Application Wizard”对话框将会出现。因为我们不需要使用非托管代码,所以不要选择“Enable Unmanaged Debugging”项。“Registered Developer Symbol”将会使用你在安装ObjectARX向导时输入的值。单击”finish”按钮来创建工程。2)    下面来看一下向导生成的工程。在解决方案浏览器中,你会看到acdbmgd 和 acmgd已经被引用了。在Class.vb文件中,“Autodesk.AutoCAD.Runtime”命名空间已被导入,工程使用“Registered Developer Symbol”的名字来命名缺省的公有类。向导还为类加入了一个CommandMethod属性和一个函数,它们用于AutoCAD命令。3)       在前一章中,我们使用一个“Autodesk.AutoCAD.EditorInput.Editor”类的实例对象在AutoCAD命令行上输出文本。在这一章中,我们将使用这个类来提示用户在AutoCAD图形中选择一个点,然后将用户选择的点的x,y,z值显示出来。和前一章一样,请导入Autodesk.AutoCAD.ApplicationServices 和 Autodesk.AutoCAD.EditorInput命名空间。  Imports Autodesk.AutoCAD.ApplicationServicesImports Autodesk.AutoCAD.EditorInput 4)       把向导生成的CommandMethod属性的值改为有意义一些的名字如“selectPoint”(函数的名字可以不用修改)。PromptPointOptions类用来设置提示字符串和其它的一些控制提示的选项。这个类的一个实例作为参数被传入到Editor.GetPoint方法。在函数的开始,实例化这个类,设置字符串参数为“Select a point”。因为 Editor.GetPoint方法会返回一个PromptPointResult类的实例对象,所以我们也要把它实例化。      Dim prPointOptions As PromptPointOptions =New PromptPointOptions("Select a point")Dim prPointRes As PromptPointResult 5)       接下来实例化一个Editor类的对象并使用参数为PromptPointOptions对象的GetPoint方法。用GetPoint方法的返回值来给上面声明的PromptPointResult对象赋值。赋值好以后,我们可以测试PromptPointResult对象的状态,如果不是OK就返回。 Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor           prPointRes = ed.GetPoint(prPointOptions)            If prPointRes.Status <> PromptStatus.OK Then                 Return Nothing           End If 6)       如果PromptPointResult对象返回了一个有效的点,我们就可以使用WriteMessage方法把结果输出到命令行。PromptPointResult.Value的ToString方法使输出非常容易: ed.WriteMessage("You selected point " & prPointRes.Value.ToString()) 7)       按F5来运行一个调试AutoCAD的进程。(注意:向导已经设置好用acad.exe来调试)在AutoCAD命令行中输入NETLOAD,选择Lab2.dll并打开。在命令行中输入你起的命令名字(selectPoint)。在选择点的提示下,单击图形中的任一点。如果一切正常的话,你可以在命令行中看到你所选的点的坐标值。在Class.vb文件的“Return Nothing”行加入断点,然后再次运行selectPoint命令。这一次,在选择点的提示下按ESC键而不是选择一个点。PromptPointResult对象的状态就不是OK了,所以上面代码中的if语句就会被执行,“Return Nothing”语句就会被调用。8)       接下来我们将加入另外一个命令,它可以获取两个点之间的距离。向导没有添加命令的功能,所以我们必须手工添加。在Class.vb文件的选择点的函数(getPoint)下面添加一个名为getDistance的新命令。加入命令的方法请参考上一章的内容或本章的源代码,这里就不列出了。使用CommandMethod属性并使字符串参数为“getdistance”或其它类似的名字。在命令的函数中使用PromptDistanceOptions代替PromptPointOptions。当然GetDistance方法的返回值是一个PromptDoubleResult类的实例对象,所以请用PromptDoubleResult来代替PromptPointResult: Dim prDistOptions As PromptDistanceOptions = New PromptDistanceOptions("Find distance, select first point:")          Dim prDistRes As PromptDoubleResult      prDistRes = ed.GetDistance(prDistOptions)  9)       和前面的命令一样,也可以测试PromptDoubleResult的状态,然后用WriteMessage方法在命令行中显示值。 If prDistRes.Status <> PromptStatus.OK Then              Return Nothing           End If            ed.WriteMessage("The distance is: " & prDistRes.Value.ToString)

时间: 2024-08-18 01:28:01

Autodesk官方最新的.NET教程(二)(VB.NET版)的相关文章

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

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

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

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

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版)

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

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

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

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

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

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

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

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

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

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

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