分享
 
 
 

ObjectARX简介

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

38.1.1ObjectARX简介

ObjectARX应用程序是动态链接库(DLL),可以和AutoCAD共享地址空间,直接调用AutoCAD的内部函数。在ObjectARX应用程序中定义的命令与AutoCAD的内部命令运行方式相同,而在ObjectARX应用程序中创建的实体对象也和AutoCAD中创建的实体对象没有区别。

目前ObjectARX的版本是ObjectARXforAutoCAD2002,它是由Autodesk公司在发布AutoCAD2002时推出的。

使用ObjectARX的用户可以完成各种开发工作,例如:

(1)直接访问AutoCAD的图形数据库。

(2)和AutoCAD编辑器进行交互。

(3)使用MFC创建标准的Windows用户界面。

(4)支持AutoCAD的多文档接口(MDI)。

(5)在应用程序中自定义类。

(6)与VisualLISP、ActiveX、COM等编程接口通信。

38.1.2系统的软、硬件要求

使用ObjectARXforAutoCAD2002开发工具的软件配置要求为:

(1)MicrosoftVisualC 6.0版本。

(2)MicrosoftWindows95或WindowsNT4.0以上版本。

使用ObjectARXforAutoCAD2002开发工具的硬件配置要求为:

(1)CPU至少为InterPentium90MHz或更高。

(2)内存至少为32M。

(3)800×600SVGA显示适配器或更高。

38.1.3ObjectARX目录结构

ObjectARX开发工具包括如下几个目录:

(1)ARXLABS:该目录中包含有9个子目录,分别从9个方面对ObjectARX程序开发进行说明和示范。

(2)CLASSMAP:该目录中只有一个名为“classmap.dwg”的图形文件,其内容是说明ObjectARX类的层次结构。

(3)DOCS:该目录中包含有ObjectARX的联机帮助文件。

(4)DOCSAMPS:该目录中包含有32个子目录,分别保存着ObjectARXDeveloper'sGuide中所用到的例程。

(5)INC:该目录中包含有ObjectARX的头文件。

(6)LIB:该目录中包含有ObjectARX的库文件。

(7)REDISTRIB:该目录中包含有ObjectARX应用程序可能用到的DLL文件。

(8)SAMPLES:该目录中包含有22个子目录,分别保存着一个完整的、具有代表性的ObjectARX例程。

(9)UTILS:该目录下包含有ObjectARX扩展应用程序使用的文件。

38.1.4ObjectARX的类库简介

ObjectARX开发工具中提供了如下几种类库:

1.AcRx类库

该类库提供了系统级的类和C 的宏指令集,用于约束一个应用程序以及实时类注册和识别。该类的基类为AcRxObject,提供了如下功能:

(1)对象实时类的标识及继承分析

(2)对现有类的扩充定义

(3)对象的比较及检验

(4)对象的复制

2.AcEd类库

该类库用于注册本地命令和系统事件通知。

3.AcDb类库

该类库提供了可直接访问AutoCAD数据库结构的类,用于对AutoCAD实体和对象进行各种操作。

4.AcGi类库

该类库提供了图形界面工具,用于绘制和渲染AutoCAD实体。

5.AcGe类库

该类库可被AcDb类所引用,可用于线形代数和几何实体的操作。

38.1.5ObjectARX的变量与常量

1.数据类型

为了提高程序的可读性,ObjectARX中定义了如下几种数据类型:

(1)typedefdoubleads_real;//实数

(2)typedefads_realads_point[3];//点

(3)typedefads_realads_matrix[4][4];//转换矩阵

(4)typedeflongads_name[2];//实体和选择集名称

2.常量

ObjectARX中定义了如下几种常量值:

(1)#defineTRUE1

(2)#defineFALSE0

(3)#defineX0

(4)#defineY1

(5)#defineZ2

(6)#defineEOS‘\0’//字符串结束符

(7)#definePAUSE“\\”//暂停符

3.结果缓冲区和数据类型码

结果缓冲区(resultbuffer)结构可以用来表示AutoCAD中所有数据类型。该结构中的数据定义为一个联合体,所以数据类型可发生变化;结果缓冲区中的数据的类型通过结构中的数据类型码(typecodes)来定义。结果缓冲区结构的定义如下:

unionads_u_val{

ads_realrreal;

ads_realrpoint[3];

shortrint;

char*rsting;

longrlname[2];

longrlong;

structads_binaryrbinary;

};

structresbuf{

structresbuf*rbnext;//链表指针

shortrestype;//数据类型码或DXF组码

unionads_u_valresval;//数据

};

其中常用的数据类型码及其意义如表38-1所示。

表38-1结果缓冲区结构中的数据类型码

数据类型码

意义

RTNONE

无数据

RTREAL

实数

RTPOINT

二维点

RTSHORT

短整型

RTANG

角度

RTSTR

字符串

RTENAME

实体名称

RTPICKS

选择集名称

RT3DPOINT

三维点

RTLONG

长整型

通常使用链表作为结果缓冲区的数据结构,例如图38-1表示了一个具有三个结点的结果缓冲区链表。

4.函数返回的结果类型码

ObjectARX全局函数的返回值可以是其结果值,也可以是结果类型码。通常全局函数返回结果类型码以反映函数操作情况。结果类型码的种类及其意义如表38-2所示。

表38-2ObjectARX函数返回的结果类型码

结果类型码

意义

RTNORM

函数操作成功

RTERROR

函数操作失败

RTCAN

用户按下“ESC”键取消操作

RTREJ

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

RTFAIL

与AutoLISP通信失败

RTKWord

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有