logo资料库

VS2017 ObjectARX环境配置.docx

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
VS2017 ObjectARX 环境配置 1. AutoCAD 二次开发工具简介: AutoCAD 软件包是美国 Autodesk 公司的产品,因其功能强大而被广泛应用于我国的机械、 电子、航空等领域,但是在使用中也遇到一些问题,由于 AutoCAD 是一种通用的软件,它很 难满足各行业的行业标准。然而,AutoCAD 开放式结构和其所提供的多种开发工具,使用户 完全摆脱 AutoCAD 的限制,根据自己的需要对其进行二次开发,这也是 AutoCAD 广泛受人们 青睐的主要原因之一。迄今为止,Autodesk 公司已经相继提出了三代 AutoCAD 二次开发工 具如图所示。 1.1 AutoLisp AutoLisp 是 1986 年随 AutoCAD2.18 提供的二次开发工具,是 LISP 编程语言的一个子 集。AutoLISP 是一种编程语言,包含许多像 C 和 C++那样的基本元素,但语法规则比较简 单。AutoLISP 是一种解释性语言,所以不用对它进行编译。所有的程序代码都用文本编译 器编写(后缀名*.LSP)。 AutoLisp 的优点:1)语言规则简单,易学易用;2)直接针对 AutoCAD,易于交互; AutoLisp 的缺点是:1)功能单一,综合处理能力差;2)解释执行,程序运行速度慢; 3)源程序保密性差;4)不能直接访问硬件设备和进行二进制文件的读写;5)应用程序用 记事本等字处理软件编写,调试不方便。 1.2 ADS ADS 即 AutoCAD 开发系统(AutoCAD Develop System),它是用来开发 AutoCAD 应用程 序的 C 语言程序设计环境,它与 AutoCAD 并不直接通信,而是以 AutoLisp 为中介联系起来, 这就摆脱了 AutoCAD 的约束,从而具有更大的灵活性。在采用 ADS 对 AutoCAD 进行开发时, 使用 C 语言来编写 ADS 的应用程序与使用 AutoLisp 语言来编写的程序效果相同。在某些方 面,C 语言的功能比 AutoLisp 要强,比如运行速度比 AutoLisp 快,对各种类型的文件处理 灵活,容易加密,而且使用 ADS 开发方式还可以节省内存,对操作系统及硬件资料的控制也 较强。但 C 语言编程复杂,使用也比较麻烦,程序的任何一点变化都必须经过连接等操作规 程,不易掌握。同时 ADS 程序需要编译才能运行,不易见到代码效果,而且同样功能的 ADS 程序要比 AutoLisp 代码要长得多。 1.3 VBA VBA:(Microsoft Visual Basic for Applications)是嵌套在 AutoCAD 之中的一个基 于对象的编程环境,它提供了丰富的开发能力,能直接在 AutoCAD 内部执行。VBA 通过 AutoCAD ActiveX Automation Interface 发送信息到 AutoCAD。 VBA 的优点如下:1)容易使用 Windows 系统资源,使 AutoCAD 能容易地与其他 Windows
下的应用软件交互;2)对话框设计能力比 DCL 好得多,能快速高效地创建对话框;3)多图 档环境下的应用程序比 VisualLisp 提供更多的支持;4)VBA 工程能够单独存储或放在图形 文件中,这使开发者在发布应用程序时有很大的灵活性。 VBA 的缺点是:1)VBA 不能象 VisualLisp 那样随心所欲地使用 AutoCAD 命令,只能像 脚本文件的模式,以字符串的方式向 AutoCAD 命令发送一串响应,这个字串的内容也只好在 自己的程序中生成和进行数据转换;2)源程序始终以相当容易接近的方式,暴露在最终用 户面前,由于用户的误操作,很容易使经常使用的应用程序出错甚至崩溃。 1.4 ObjectARX ARX 全名 advanced runtime extention,是使用 C++语言结合 MFC 库开发 AutoCAD 应 用的 CAD 二次开发方式。比起 Visual Lisp 和 VBA 方式来,他的功能更加强大,代码运行速 度最快(代码和 cad 基础代码在同一个层次类运行)适合大程序的开发,但是开发难度可想 而知也相对较大。 它提供了以 C++为基础的面向对象的开发环境及应用程序接口,可直接访问 AutoCAD 数 据库的核心数据结构和代码,在运行期间扩展 AutoCAD 固有的类和功能,创建与 AutoCAD 固有命令相同特权的新命令。 与以往的 AutuCAD 二次开发工具 AutoLISP 和 ADS 不同,ObjectARX 应用程序是一个 DLL, 共享 AutoCAD 的地址空间,其效率、数据处理和软硬件控制能力好,是针对多图档环境的程 序设计方法 AutoLisp 与 ADS 都是通过内部进程通信(IPC)来和 AutoCAD 通信,它们和 AutoCAD 是 相互分离的过程,而 ARX 与 AutoCAD 采用 windows 通讯机制,运行更稳定、更简单。 2. ObjectARX 版本对应关系: 3. 软件下载: 3.1 VS2017 下载链接:https://pan.baidu.com/s/1vH7-TROh3JEyV0RHeJSMJA 提取码:pflw 3.2 AutoCAD2019 下载链接:pan.baidu.com/s/1r5hdcs9r7TQ3JUH2SkErhw 提取码:2hz5 3.3 ObjectARX_2019 SDK 3.4 ObjectARXWizard2019
以上两个下载链接:https://pan.baidu.com/s/1XkO_szXNayel7FeyKtZxug 提取码:q3oj 4. 环境配置: 首先安装 VS2017 和 AutoCAD2019,网上有很多教程,这里我就不说了。 之后我们先看 ObjectARX_2019 SDK 的安装。解压下载后的文件,可以看到第一个自解 压文件就是我们需要的 ObjectARX_2019 SDK。直接双击解压到一个指定的文件夹中即可。 这里我建议是在 C 盘创建一个 ObjectARX 文件夹,将 SDK 解压到这个文件夹下,如下图 所示:(为什么建议解压到这个文件夹下呢?因为我安装时是解压到了 D 盘目录下,但是向 导安装完成后编译生成的项目报错,提示错误为“C:\ObjectARX\inc\arx.props 文件无法 找到”。对此基本可以判断问题出在 arx.props 文件不存在导致的引用出错,所以我就把 D 盘解压出来的文件全部拷贝到了该文件夹下,项目创建就没有报这个错误了) SDK 安装完成后进行向导的安装。 安装 ObjectARX Wizard 过程如下,双击运行安装包,在安装界面需要设置 RSD(注册 开发符号,大致为 ARX 命令标识),以及 ObjectARX SDK 和 AutoCAD 程序的路径,这里我们 务必要指定正确的目录,如下图所示。之后我们就一直下一步即可。
向导安装完成后我们就可以通过向导创建 ARX 项目了。打开 Visual Studio 就可以看到 Autodesk 项目模板,选择【OK】即可进入 ObjectARX 向导。 我在第一次创建项目的时候点击【OK】并没有生成项目,也没有提示错误,就停留在上
面的界面。网上查找了很多的教程,基本上都是说向导安装的时候要以管理员身份运行。而 mis 安装程序没有这个选项,需要修改注册表重新安装吧啦吧啦。 然而重装是不可能重装的。我又看了很多的教程,终于让我找到了!如下: “安装完成后,若无法新建 ObjectARX 开发项目,则有可能是 ObjectArxWizard 有 Bug。 进入以下路径 VS2012\VC\vcprojects\Autodesk,更改以下两个文件 ArxAppWiz182.vsz、 ArxAppWiz.vsz。 将其中的两项改为以下内容。 Wizard=VsWizard.VsWizardEngine.11.0//版本号 Param="ABSOLUTE_PATH=C:\ProgramFiles(x86)\Autodesk\ObjectARX2014Wizards\ArxAppW iz"//ObjectARXWizard 安装路径” 由于 VS2017 的文件目录与 2012 有些不同,于是我用 everything 搜索 ArxAppWiz.vsz。 目录如图所示: 之后对上面提到的两个文件进行编辑: 我只修改了文件目录这一个选项,找到我的 ObjectARXWizard 安装路径,之后将上面提 到的第二个参数修改为如图所示的路径。之后创建项目成功! 成功创建项目的 VS2017 界面如下:
之后进行编译,这时候报错了,错误信息为“error C2338: /RTCc rejects conformant code, so it isn't supported by the C++ Standard Library. Either remove this compiler option, or define _ALLOW_RTCc_IN_STL to acknowledge that you have received this warning”。按照提示,他让我们要么关闭 Smaller Type check(/RTCc):数据截断的检测这 个选项,要么定义_ALLOW_RTCc_IN_STL 宏。 因此,我的解决方法是关闭这个检查,如下图: 之后进行编译,这时候又报错了(好崩溃啊有没有!),错误信息为“error MSB8036: 找 不到 Windows SDK 版本 8.1。在网上查找解决方案,如下网站的内容很好地解决了这个问 题。 https://zhidao.baidu.com/question/1951627826004020948.html 到此,我的程序编译成功,生成 Arx 文件。注意:由于 Arx 与 AutoCAD 版本内互相兼容, 版本外互不兼容,64 位 32 位互不兼容。所以我们在编译时选择 x64 平台进行编译。否则在 64 为 AutoCAD 平台上加载我们编写的 Arx 文件会出现 arx 与此版本的 AutoCAD 不兼容的情
况。 最后就是 AutoCAD 2019 加载测试。 第一步打开 AutoCAD2019,选择管理栏目,单击加载应用程序,如下图所示: 第二步,在弹出的对话框中选择刚刚编译好的 arx 文件并单击加载,如下图所示。 加载成功后会看到如下图所示的内容。 如果看到该行文字说明已经可以开始进行 objectARX 的开发工作了。 至此,我们开发环境的搭建成功!可以开始下一步的学习了。
分享到:
收藏