爱T帮
我们的信心,源于客户的信赖
帮助企业构建数字化管理体系、统一规范企业管理结构,更以专业、周到的服务在业界有口皆碑!

cad 二次开发入门

日期:2022-10-29
已查看:0
点赞:

在这一章中,我们将使用VisualStudio.NET来创建一个新的类库工程。通过这个工程,你可以创建一个能被AutoCAD装载的.NET??dll文件。这个dll文件会向AutoCAD加入一个名为“HelloWorld”的新命令。当用户运行这个命令后,在AutoCAD命令行上将显示“HelloWorld”文本。 )启动VisualStudio.NET,选择”文件>新建>工程”(File>New>Project)。在新建工程对话框中选择工程类型为”VisualC#工程”,然后选择”类库”模板,在工程名字框中输入”Lab1”,然后选择工程存放的位置。点击确定按钮来创建工程。

2)在工程的Class1.cs文件中,一个公有类“Class1”已经被系统自动创建了。接下来向这个类加入命令。要加入命令,你需要使用AutoCAD.NET托管封装类。这些托管封装类包含在两个托管模块中。要加入对这两个托管模块的引用,请用鼠标右键单击”引用”然后选择”添加引用”。在弹出的”添加引用”对话框中选择”浏览”。在”选择组件”对话框中,选择AutoCAD2006的安装目录(这里假定为C:ProgramFilesAutoCAD2006),在这个目录下找到“acdbmgd.dll”然后选择并打开它。再一次选择”浏览”,在AutoCAD2006的安装目录下找到“acmgd.dll”并打开它。当这两个组件被加入后,请单击”添加引用”对话框中的”确定”按钮。正如它们的名字所表示的,acdbmgd.dll包含ObjectDBX托管类,而acmgd.dll包含AutoCAD托管类。

3)使用对象浏览器(VisualStudio.NET的”查看>其它窗口>对象浏览器”菜单项)来浏览加入的两个托管模块所提供的类。请展开“AutoCAD.NETManagedWrapper”对象(在对象浏览器中显示为acmgd),在整个教程中我们将使用这个对象中的类。在本章中,我们将使用“Autodesk.AutoCAD.EditorInput.Editor”类的一个实例来在AutoCAD命令行中显示文本。请再展开“ObjectDBX.NETManagedWrapper”对象(在对象浏览器中显示为acdbmgd),这个对象中的类将被用来访问和编辑AutoCAD图形中的实体(这部分内容将在以后的章节中介绍)。
CAD二次开发入门

4)引用了ObjectARX.NET封装类后,我们就可以导入它们。在Class1类的声明语句(位于Class1.cs文件的顶部的)之前,导入ApplicationServices,EditorInput和Runtime命名空间。

usingAutodesk.AutoCAD.ApplicationServices;

usingAutodesk.AutoCAD.EditorInput;

usingAutodesk.AutoCAD.Runtime;

5)接下来在类Class1中加入命令。要加入能在AutoCAD中调用的命令,你需要使用“CommandMethod”属性。这个属性由Runtime命名空间提供。在类Class1中加入下列属性和函数。

[CommandMethod("HelloWorld")]

publicvoidHelloWorld()

6)当“HelloWorld”命令在AutoCAD中运行的时候,上面定义的HelloWorld函数就会被调用。在这个函数中,一个Editor类的实例将被创建。Editor类拥有访问AutoCAD命令行的相关方法,它还包括选择对象和其它一些重要的功能。AutoCAD当前活动文档的Editor对象可以使用Application类来访问。当Editor对象被创建后,你可以使用它的WriteMessage方法在命令行中显示“HelloWorld”文本。在HelloWorld函数中加入以下代码:

Editored=Application.DocumentManager.MdiActiveDocument.Editor;

ed.WriteMessage("HelloWorld");

7)要在AutoCAD中调试这个程序,你可以让VisualStudio.NET启动一个AutoCAD进程。在解决方案管理器中右键单击“Lab1”,然后选择”属性”。在Lab1的属性页对话框中,选择”配置属性>调试”。在”启动”项中,选择”调试模式”为”程序”,在”启动程序”的右边单击省略号按钮然后选择AutoCAD2006安装目录下的acad.exe。设置好以后,按F5来启动一个AutoCAD进程。这样就会编译你的程序然后自动启动AutoCAD,而当编译后有错误的时候就会停止。请修正你可能碰到的任何错误。

8)“NETLOAD”命令被用来装载托管程序。在AutoCAD命令行中输入NETLOAD,会出现”选择.NET组件”的对话框。选择上面生成的“lab1.dll”然后打开它。

9)在命令行中输入“HellowWorld”。如果一切顺利的话,命令行中将显示“HelloWorld”文本。切换到VisualStudio.NET,在ed.WriteMessage(“HelloWorld”);语句处加入一个断点。在AutoCAD中再次运行HelloWorld命令,你会注意到你可以跟踪代码的运行。VisulStudio.NET的”调试”菜单有好几项可以用来跟踪程序的运行。

如果有时间的话,请浏览一下CommandMethod属性。你会发现它有七种不同的形式。在上面的例子中,我们使用了简单的形式,它只有一个输入参数(命令的名字)。你可以使用其它的形式来控制命令的工作方式,例如你可以确定命令组的名字、全局和局部名字、命令标识(命令如何来运行)等。

专业的数字化顾问服务,确保每一个案例切实落地

咨询热线:400-165-0388