C#程序对AutoCAD二次开发

Posted GIS前沿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#程序对AutoCAD二次开发相关的知识,希望对你有一定的参考价值。


AutoCAD(Autodesk Computer Aided Design)是Autodesk(欧特克)公司首次于1982年开发的自动计算机辅助设计软件,用于二维绘图、详细绘制、设计文档和基本三维设计,现已经成为国际上广为流行的绘图工具。AutoCAD具有良好的用户界面,通过交互菜单或命令行方式便可以进行各种操作。它的多文档设计环境,让非计算机专业人员也能很快地学会使用。在不断实践的过程中更好地掌握它的各种应用和开发技巧,从而不断提高工作效率。


AutoCAD对象模型如下图:


C#程序对AutoCAD二次开发(一)


我们接下来讲解一下如何使用ObjectARX对AutoCAD进行二次开发,在我们做测绘和地理信息工作中经常使用的CAD二次开发产品有南方CASS、威远图、湘源修规等。



这里我们主要讲解基于Visual Studio 2013和ObjectARX2012开发CAD2012应用程序。


首先软件准备:


  • Visual Studio 2013:可在MSDN开发者中心下载。

  • AutoCAD2012:可在autodesk官网上进行下载。

http://download.autodesk.com/esd/objectarx/2012/ObjectARX_2012_Win_64_and_32Bit.exe)


下载后的ObjectARXC#程序对AutoCAD二次开发(一)解压后目录如下图所示。其中docs文件夹为帮助文档;classmap文件夹是程序类关系图;samples是一些示例工程,可参考其中代码;inc文件夹是程序引用的头文件。


C#程序对AutoCAD二次开发(一)

C#程序对AutoCAD二次开发(一) 

下面我们来新建一个基于C#语言开发CAD扩展程序的解决方案。首先我们启动Visual Studio 2013并新建一个.NET Framework 4环境的Visual C#的类库项目。


C#程序对AutoCAD二次开发(一)

C#程序对AutoCAD二次开发(一) 

添加程序引用文件,将ObjectARX 2012inc文件夹中acdbmgd.dll和acmgd.dll添加到工程中,用并将两个文件的复制本地属性改成False。其中acdbmgd.dll用于图形文件中对对象的操作,当处理图形文件中储存的对象时进行引用;acmgd.dll用于对AutoCad应用程序进行操作,当处理AutoCad应用程序和用户接口时进行引。

C#程序对AutoCAD二次开发(一) 

C#程序对AutoCAD二次开发(一)
C#程序对AutoCAD二次开发(一)
C#程序对AutoCAD二次开发(一) C#程序对AutoCAD二次开发(一)

准备开始写作第一个应用程序,在Class1类的定义之前导入Runtime、EditorInput、ApplicationServices命名空间。代码如下:


using Autodesk.AutoCAD.Runtime;

using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.EditorInput;

在Class1类内部加入能在CAD中调用的命令,把由Runtime命名空间提供的“CommandMethod”属性加入到Class1类中,并在Class1类中定义一个方法。完整代码如下图所示:


C#程序对AutoCAD二次开发(一)

C#程序对AutoCAD二次开发(一) 

当“HelloCAD”命令在AutoCAD中运行时候,在Class1类中定义的HelloCAD()函数就会被调用。程序中创建一个Editor实例,它具有访问AutoCAD命令行的相关方法。我们使用WriteMessage()方法在命令行打印一行字符串。接下来我们调试一下我们做的第一个应用程序,在解决方案管理器中选中“First”项目右键进入属性对话框,选择“调试”页面,配置启动AutoCAD2012文件目录中acad.exe外部应用程序。


C#程序对AutoCAD二次开发(一)

C#程序对AutoCAD二次开发(一) 

在Visual Studio 2013中点击【调试】-【启动调试】按钮(或者按F5)启动AutoCAD2012应用程序。在命令行中输入“netload”命令,加载我们解决方案中inDebug文件夹中First.dll文件。在命令行输入 “HelloCAD”命令之后命令行将打印出“欢迎进入CAD.Net开发世界!!!”

C#程序对AutoCAD二次开发(一)

C#程序对AutoCAD二次开发(一)
C#程序对AutoCAD二次开发(一)

C#程序对AutoCAD二次开发(一) 

以上是我们C#语言开发CAD的第一课,希望我们互相探讨,一起学习交流。下次有时间我们可以详细讲解一下Editor类,以获取命令行输入以及点选、窗选、交选等不同的选择方式。让我们下期再见。


- END -








戳原文,更有料!

以上是关于C#程序对AutoCAD二次开发的主要内容,如果未能解决你的问题,请参考以下文章

利用C#进行AutoCAD的二次开发(转)

autocad二次开发的为啥要对AutoCAD进行二次开发

用C#做autocad二次开发的时候,autocad图形对象类是不是要自己编写?

基于C#编程语言的CAD二次开发技术---展测量点坐标

怎样用VB对AutoCAD 进行二次开发?急!急!急!

autocad二次开发资料总结