您的位置:首页 > 移动开发 > Objective-C

使用ObjectARX进行AutoCAD的二次开发 ——新建工程

2016-04-19 18:38 621 查看

前言

最近接手一个项目,需要对AutoCAD进行二次开发,简单地来讲,就是写一个插件。刚开始觉得应该不算很难,毕竟开发使用的是C++语言,界面也是MFC框架。真正入手之后才发现,光一个新建工程都要折腾好久,而且不同版本AutoCAD还需要配合特定的开发库以及特定的Visual Studio版本,更奇葩的是,官方给的Wizard还有一个致命的bug……为了不让这段惨痛的经历白白地度过,同时也希望能够帮到一些需要的人,所以就有了这篇博客。

ObjectARX介绍

这里搬一下百度百科对于ObjectARX的介绍:

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

虽说ObjectARX应用程序是一个DLL,但是ObjectARX模块都会使用.arx或者.dbx扩展名而不是更为通用的.dll。

开发环境

ObjectARX的开发环境是Mircrosoft Visual Studio,但由于通过ObjectARX API使用的原生类和库在AutoCAD软件的代码中使用,因此,这些库只能使用特定的编译器进行编译,也只能被用同一编译器构建的AutoCAD软件使用。所以,ObjectARX开发者往往需要使用多个版本的Microsoft Visual Studio搭配不同版本的SDK来进行开发。(为了兼容不同版本的AutoCAD,我的电脑已经有了4个版本的VS了。)具体的版本对应关系如下所示:



进行ObjectARX进行开发主要需要下载ObjectARX以及相应的Wizard(用于在VS中新建工程等)。2014以及2014年以前的ObjectARX网上搜搜就可以找到下载链接,Wizard官网上也都有:ObjectARX官方下载地址

新建工程

Autocad2010+Visual Studio 2008 SP1+ObjectARX2010

安装ObjectARX2010,最好选择默认安装路径C:\ObjectARX 2010,运行C:\ObjectARX 2010\utils\ObjARXWiz下的ArxWizards.msi,可以安装新建工程向导。打开Visual Studio 2008,新建项目,你可以发现多了一个工程模板,选择、点击确认就可以直接新建工程了,这里面没有多少坑。VS菜单栏下会出现一块白区,这个是ObjectARX的菜单栏,但不知道除了什么bug无法显示,听说安装什么补丁就可以解决了。




Autocad2013+Visual Studio 2010 SP1+ObjectARX2013

这个就比较坑了,ObjectARX和Wizard和前面一样,只不过Wizard另外单独提供了。安装Wizard的时候可能会出现失败的情况,右键安装文件,进行兼容性检查,之后点击测试程序,这时候安装就不会出现问题了。但继续按照之前的步骤新建工程时,你会发现新建工程失败,原因是编码错误。实际上,这是官方Wizard提供的模板中的Autodesk.arx-2013.props中的第一个字节有误(真不知道为什么Autodesk官方都没有测试就直接发布)。将第一行改成

<?xml version="1.0" encoding="utf-8"?>


就可以了。

Autocad2015+Visual Studio 2012 Update 4+ObjectARX2013

步骤和前面两个一样,这个新建工程就没有之前的编码错误了,但是Wizard还是可能需要进行兼容性检查,其他就没什么坑了。

总结

其他的版本开发新建工程过程和上面一样,可能会遇到以上的一些问题,按照上面的办法就应该可以解决了。第一次写博客,望多多支持。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: