相关分类
MAYA教程
3DSMAX教程
AutoCAD教程
VRay教程
MentalRay教程
Zbrush教程
SoftimageXSI教程
Cinema 4D教程
三维理论
Rhino教程
飞特网 顶部通栏广告

ObjectARX简介

夏雪发布于:2012-3-10 02:10 |原作者: 飞特信息采编-张薇| |来自:互联网
夏雪
辽宁省 鞍山市 
发私信 + 关注
简介: 本教程向FEVTE的朋友们介绍ObjectARX,ObjectARX 应用程序是动态链接库(DLL),可以和AutoCAD共享地址空间,直接调用AutoCAD的内部函数。向要了解的朋友快来阅读一下教程吧! ... ... ...
ObjectARX简介ObjectARX 应用程序是动态链接库(DLL),可以和AutoCAD共享地址空间,直接调用AutoCAD的内部函数。在ObjectARX应用程序中定义的命令与AutoCAD的内部命令运行方式相同,而在ObjectARX应用程序中创建的实体对象也和AutoCAD中创建的实体对象没有区别。目前ObjectARX的版本是ObjectARX for AutoCAD 2002,它是由Autodesk公司在发布AutoCAD 2002时推出的。使用ObjectARX的用户可以完成各种开发工作,例如:(1) 直接访问AutoCAD的图形数据库。(2) 和AutoCAD编辑器进行交互。(3) 使用MFC创建标准的Windows用户界面。(4) 支持AutoCAD的多文档接口(MDI)。(5) 在应用程序中自定义类。(6) 与Visual LISP、ActiveX、COM等编程接口通信。38.1.2 系统的软、硬件要求使用ObjectARX for AutoCAD 2002开发工具的软件配置要求为:(1) Microsoft Visual C 6.0版本。(2) Microsoft Windows 95或Windows NT4.0以上版本。使用ObjectARX for AutoCAD 2002开发工具的硬件配置要求为:(1) CPU至少为Inter Pentium 90 MHz或更高。(2) 内存至少为32M。(3) 800×600 SVGA显示适配器或更高。38.1.3 ObjectARX目录结构ObjectARX开发工具包括如下几个目录:(1) ARXLABS:该目录中包含有9个子目录,分别从9个方面对ObjectARX程序开发进行说明和示范。(2) CLASSMAP:该目录中只有一个名为"classmap.dwg"的图形文件,其内容是说明ObjectARX类的层次结构。(3) DOCS:该目录中包含有ObjectARX的联机帮助文件。(4) DOCSAMPS:该目录中包含有32个子目录,分别保存着ObjectARX Developer's Guide 中所用到的例程。(5) INC:该目录中包含有ObjectARX的头文件。(6) LIB:该目录中包含有ObjectARX的库文件。(7) REDISTRIB:该目录中包含有ObjectARX应用程序可能用到的DLL文件。(8) SAMPLES:该目录中包含有22个子目录,分别保存着一个完整的、具有代表性的ObjectARX例程。(9) UTILS:该目录下包含有ObjectARX扩展应用程序使用的文件。38.1.4 ObjectARX的类库简介ObjectARX开发工具中提供了如下几种类库:1. AcRx类库该类库提供了系统级的类和C 的宏指令集,用于约束一个应用程序以及实时类注册和识别。该类的基类为AcRxObject,提供了如下功能:(1) 对象实时类的标识及继承分析(2) 对现有类的扩充定义(3) 对象的比较及检验(4) 对象的复制2. AcEd类库该类库用于注册本地命令和系统事件通知。3. AcDb类库该类库提供了可直接访问AutoCAD数据库结构的类,用于对AutoCAD实体和对象进行各种操作。4. AcGi类库该类库提供了图形界面工具,用于绘制和渲染AutoCAD实体。5. AcGe类库该类库可被AcDb类所引用,可用于线形代数和几何实体的操作。38.1.5 ObjectARX的变量与常量1. 数据类型为了提高程序的可读性,ObjectARX中定义了如下几种数据类型:(1) typedef double ads_real; //实数(2) typedef ads_real ads_point; //点(3) typedef ads_real ads_matrix; //转换矩阵(4) typedef long ads_name; //实体和选择集名称2. 常量ObjectARX中定义了如下几种常量值:(1) #define TRUE 1(2) #define FALSE 0(3) #define X 0(4) #define Y 1(5) #define Z 2(6) #define EOS '\0' //字符串结束符(7) #define PAUSE "\\" //暂停符3. 结果缓冲区和数据类型码结果缓冲区(result buffer)结构可以用来表示AutoCAD中所有数据类型。该结构中的数据定义为一个联合体,所以数据类型可发生变化;结果缓冲区中的数据的类型通过结构中的数据类型码(type codes)来定义。结果缓冲区结构的定义如下:union ads_u_val{ads_real rreal;ads_real rpoint;short rint;char *rsting;long rlname;long rlong;struct ads_binary rbinary;};struct resbuf{struct resbuf *rbnext; //链表指针short restype; //数据类型码或DXF组码union ads_u_val resval; //数据};其中常用的数据类型码及其意义如表38-1所示。表38-1 结果缓冲区结构中的数据类型码

数据类型码

意义

RTNONE

无数据

RTREAL

实数

RTPOINT

二维点

RTSHORT

短整型

RTANG

角度

RTSTR

字符串

RTENAME

实体名称

RTPICKS

选择集名称

RT3DPOINT

三维点

RTLONG

长整型

通常使用链表作为结果缓冲区的数据结构,例如图38-1表示了一个具有三个结点的结果缓冲区链表。ObjectARX简介 飞特网 AutoCAD教程 ›4. 函数返回的结果类型码ObjectARX全局函数的返回值可以是其结果值,也可以是结果类型码。通常全局函数返回结果类型码以反映函数操作情况。结果类型码的种类及其意义如表38-2所示。表38-2 ObjectARX函数返回的结果类型码

结果类型码

意义

RTNORM

函数操作成功

RTERROR

函数操作失败

RTCAN

用户按下"ESC"键取消操作

RTREJ

拒绝执行操作(操作不合法)

RTFAIL

与AutoLISP通信失败

RTKWORD

用户键入了关键字或其它文本

FEVTE编注:更多AUTOCAD教程讨论交流和作业提交请进入飞特论坛三维作业板块,地址:https://www.fevte.com/forum-54-1.html

14

好评
12

差评

刚表态过的朋友 (26 人)

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

  • 飞特游客

夏雪
辽宁省 鞍山市 
+关注 发私信

最新评论

您需要登录后才可以评论和提交作业 登录 | 立即注册
本周热点文章
2020 新飞特 从心开始
关于飞特| 广告服务| 付款方式| 版权申明| 网站地图| 联系我们| 加入我们| 举报| 帮助中心| 移动版| 手机版| 飞特网

委托设计