明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2861|回复: 3

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

[复制链接]
发表于 2005-6-1 10:24 | 显示全部楼层 |阅读模式
1 Hello World: 工程的创建
在这一章中,我们将不使用ObjectARX向导来创建一个新的工程。我们将使用Visual Studio .NET来创建一个新的类库工程。通过这个工程,你可以创建一个能被AutoCAD装载的.NET dll文件。这个dll文件会向AutoCAD加入一个名为“HelloWorld”的新命令。当用户运行这个命令后,在AutoCAD 命令行上将显示“Hello World”文本。
1) 启动Visual Studio.NET,选择”文件>新建>工程”(File> New> Project)。在新建工程对话框中选择工程类型为”Visual Basic 工程”,然后选择”类库”模板,在工程名字框中输入”Lab1”,然后选择工程存放的位置。点击确定按钮来创建工程。
2) 在工程的Class1.vb文件中,一个公有类“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.vb文件的顶部的)之前,导入ApplicationServices, EditorInput 和 Runtime命名空间。
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Runtime
5) 接下来在类Class1中加入命令。要加入能在AutoCAD 中调用的命令,你必须使用“CommandMethod”属性。这个属性由Runtime命名空间提供。在类Class1中加入下列属性和子程序。注意续行符” _”的使用。
Public Class Class1
<CommandMethod("HelloWorld")> _
Public Sub HelloWorld()
End Sub
End Class
6) 当“HelloWorld”命令在AutoCAD中运行的时候,上面定义的HelloWorld子程序就会被调用。在这个子程序中,一个Editor类的实例将被创建。Editor类拥有访问AutoCAD命令行的相关方法,它还包括选择对象和其它一些重要的功能。AutoCAD当前活动文档的Editor对象可以使用Application类来访问。当Editor对象被创建后,你可以使用它的WriteMessage方法在命令行中显示“Hello World”文本。在HelloWorld子程序中加入以下代码:
Dim ed As Editor = 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属性。你会发现它有七种不同的形式。在上面的例子中,我们使用了最简单的形式,它只有一个输入参数(命令的名字)。你可以使用其它的形式来控制命令的工作方式,例如你可以确定命令组的名字、全局和局部名字、命令标识(命令如何来运行)等。
 楼主| 发表于 2005-6-1 10:27 | 显示全部楼层
呵呵,有网友说我比较偏向C#。其实我用的是C#,对VB.net不是很熟,所以我写的文章都是用C#写的。由于这个教程有C#和VB.net版本,所以我都把它们翻译好了。
发表于 2005-6-26 23:08 | 显示全部楼层
"C#最适合开发AutoCAD,因为它拥有VB容易的特点,却具有VC++的强大功能。"


楼主有无写错,是否应该是


VB.NET最适合开发AutoCAD,因为它拥有VB容易的特点,却具有VC++的强大功能。
发表于 2005-7-9 17:14 | 显示全部楼层
鼓励一下vb.net的使用者: 用vb(指net)的理由: 1. vb和c#的功能一样多!,c#能使用的功能,vb都正式支持,决无缺憾。 2. vb和c#的速度一样快!两者都编译成相同的代码,没有谁是编译执行谁是解释执行的区别。 3. 对activex的支持vb更方便,只要看看activex的官方文档都用vb作例子。要是用activex和vba非vb莫属。 4. vb的开发环境更方便。 5. 看看visual studio2005就更明白了,两者更像是说不同方言的一家人。仅文法格式不同,功能一样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-2 21:12 , Processed in 0.142213 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表