中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 临时文章
Autodesk官方最新的.NET教程(二)(vb.net版)
作者:未知 时间:2005-07-27 21:50 出处:CSDN 责编:chinaitpower
              摘要: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.ApplicationServices
Imports 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)

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有