AutoCAD(Autodesk Computer Aided Design)是Autodesk(欧特克)公司首次于1982年开发的自动计算机辅助设计软件,用于二维绘图、详细绘制、设计文档和基本三维设计,现已经成为国际上广为流行的绘图工具。AutoCAD具有良好的用户界面,通过交互菜单或命令行方式便可以进行各种操作。它的多文档设计环境,让非计算机专业人员也能很快地学会使用。在不断实践的过程中更好地掌握它的各种应用和开发技巧,从而不断提高工作效率。
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)
下载后的ObjectARX
解压后目录如下图所示。其中docs文件夹为帮助文档;classmap文件夹是程序类关系图;samples是一些示例工程,可参考其中代码;inc文件夹是程序引用的头文件。
下面我们来新建一个基于C#语言开发CAD扩展程序的解决方案。首先我们启动Visual Studio 2013并新建一个.NET Framework 4环境的Visual C#的类库项目。
添加程序引用文件,将ObjectARX 2012\inc文件夹中acdbmgd.dll和acmgd.dll添加到工程中,用并将两个文件的复制本地属性改成False。其中acdbmgd.dll用于图形文件中对对象的操作,当处理图形文件中储存的对象时进行引用;acmgd.dll用于对AutoCad应用程序进行操作,当处理AutoCad应用程序和用户接口时进行引。
准备开始写作第一个应用程序,在Class1类的定义之前导入Runtime、EditorInput、ApplicationServices命名空间。代码如下:
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
在Class1类内部加入能在CAD中调用的命令,把由Runtime命名空间提供的“CommandMethod”属性加入到Class1类中,并在Class1类中定义一个方法。完整代码如下图所示:
当“HelloCAD”命令在AutoCAD中运行时候,在Class1类中定义的HelloCAD()函数就会被调用。程序中创建一个Editor实例,它具有访问AutoCAD命令行的相关方法。我们使用WriteMessage()方法在命令行打印一行字符串。接下来我们调试一下我们做的第一个应用程序,在解决方案管理器中选中“First”项目右键进入属性对话框,选择“调试”页面,配置启动AutoCAD2012文件目录中acad.exe外部应用程序。
以上是我们C#语言开发CAD的第一课,希望我们互相探讨,一起学习交流。下次有时间我们可以详细讲解一下Editor类,以获取命令行输入以及点选、窗选、交选等不同的选择方式。让我们下期再见。
– END –
CAD完美转ArcGIS的干货技巧.pdf(文档可下载)让你精通CASS软件的教程免费下载CAD放样、点放样、控制点测量、面积测量、直线放样CASS地形图绘制提高效率 | 教你批量提取CAD坐标的小技巧Python学的好,数据处理快又好!ArcPy入门到精通(手册可下载)