贸易平台·行业报道·技术社区
新闻
|
技术
|
供求
|
企业
|
产品
|
展会
|
专题
|
论坛
|
专家知道
|
广告联盟
论坛名称:金属加工论坛 网址:http://www.mw1950.com/forum/
提醒您:如果本页图片或flash动画无法正常显示,请点击这里访问原帖。
objectarx简介
作者:tmlike 时间:2007-5-25 9:10:00
第
1
楼
38.1.1 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]; //点 (3) typedef ads_real ads_matrix[4][4]; //转换矩阵 (4) typedef long ads_name[2]; //实体和选择集名称 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[3]; short rint; char *rsting; long rlname[2]; 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表示了一个具有三个结点的结果缓冲区链表。 4. 函数返回的结果类型码 objectarx全局函数的返回值可以是其结果值,也可以是结果类型码。通常全局函数返回结果类型码以反映函数操作情况。结果类型码的种类及其意义如表38-2所示。 表38-2 objectarx函数返回的结果类型码 结果类型码 意义 rtnorm 函数操作成功 rterror 函数操作失败 rtcan 用户按下“esc”键取消操作 rtrej 拒绝执行操作(操作不合法) rtfail 与autolisp通信失败 rtkword 用户键入了关键字或其它文本 -------------------------------------------------------------------------------- 本文引用地址:http://www.im08.com/tech/cad/autocad/index1/85848.shtml
所属版面:CAD交流区 本帖第1页
共有回复: 0 共有页数: 1 显示帖数:
50
欢迎光临金属加工论坛 网址:http://www.mw1950.com/forum/