C#赋能AutoCAD:二次开发实战演练

AutoCAD对象模型如下图:

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


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


ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速的访问AutoCAD图形数据库。与其他的AutoCAD 二次开发工具 AutoLISP 和ADS所不同的是,ObjectARX应用程序是一个DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用。所以,使用ARX编程的函数的执行速度得以大大提高。ARX 类库采用了标准的C++类库的封装形式,这也大大提高了程序员编程的可靠度和效率。ObjectARX编程环境提供了面向对象的C ++,C#和VB .NET应用程序编程接口,供开发人员使用,可以帮助开发快速、高效的CAD 应用程序,扩展AutoCAD功能。


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


首先软件准备:



  • Visual Studio 2013:可在MSDN开发者中心下载。
  • AutoCAD2012:可在autodesk官网上进行下载。
  • ObjectARX_SDK:可在 AutoCAD开发者中心下载,这其中包含了AutoCAD.net API的相关文档和众多的示例工程。其中ObjectARX2012下载地址如下:(

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


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


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

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

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


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

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

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

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

C#程序对AutoCAD二次开发(一)_java_08C#程序对AutoCAD二次开发(一)_java_09C#程序对AutoCAD二次开发(一)_java_10C#程序对AutoCAD二次开发(一)_java_10

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



using Autodesk.AutoCAD.Runtime;

using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.EditorInput;

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


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

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

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


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

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

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

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

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

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

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


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空