找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 643|回复: 2

[ARX程序]:跟我许arx——第一课arx类库说明

[复制链接]
发表于 2002-11-28 18:47:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 ObjectARX库
库 描 述
AcRx      用于连编应用程序及运行时类的注册和标识

AcEd      用于注册本地命令及系统事件通知

AcDb      AutoCAD数据库类(存放所有的实体及其他类型)

AcGi      渲染AutoCAD实体的图形接口

AcGe      普通线性代数和几何实体通用库

ADSRX     用于创建AutoCAD应用程序的C语言库,ObjectARX应用程序用这个库来实现实体选择、选择集操作和获取数据

2.2 AcRx库
动态链接库(DLL)的初始化、链接、运行时类的注册和识别。该库的基类为AcRxObject,经常要用到的函数是:

isA()函数是用于类识别,被识别的类必须能够测试其类型。
isKindOf()函数也用于类识别,但这里的类要能够被测试其类型,或者测试派生类的类型。
desc()函数返回类名。
cast()函数用来试将一个基类转换为更高一级的类,如果转换成功,基类对象的指针将是转换后类型的指针。

该库也可以用来给应用程序进行加锁或解锁。使用acrxUnlockApplication()可以使应用程序不可卸载,如果不希望应用程序被卸载的,请不要使用acrxUnlockApplication()。例如,如果当前应用程序可能将实体与一个外部数据库绑定在一起的话,卸载该应用程序可能会带来一定的麻烦。

对于那些用ActiveX进行编程的人,AcRxObject可以提供许多COM函数。在库中另一个有用的类是AcRxService,使用这个类,可以编写实用函数,并能注册到由这些函数提供的服务程序。应用程序能检查服务程序是否存在,如果存在,就可以使用已经注册到服务程序的实用函数。

2.3 AcEd库
在AcEd库中有很多重要的类。当在AutoCAD中定义命令时,它们被定义为本地命令并被添加到AutoCAD的命令堆栈中,用于向命令堆栈中添加命令的函数是addCommand()。该库还提供一个编辑反应器,可以向AutoCAD的编辑器中添加或从中删除反应器。编辑反应器用于监视AutoCAD的事件,如命令什么时候开始和什么时侯结束等。借助于反应器的帮助,可以正确地进行操作。该库还提供了一个事务管理器,它可以让应用程序响应Undo事件和ESC事件。
2.4 AcDb库
AcDb库的内容较多,它包含了所有的符号表,如线型、层、文本样式、尺寸样式等等。每一个AutoCAD数据库都有一个有名对象字典AcDbDictionary,可用来存放形文件中的用户数据。有名对象字典是该库的一部分,AutoCAD各实体也是这样。正如前面所见,我们可以对AutoCAD编辑器做出响应,我们也可以响应发生在AutoCAD数据库中对象之间的事件。该库提供的主要类有:

根数据库:

符号表:

实体:

AcDbObject类负责打开和关闭对象及向AutoCAD数据库添加对象。AcDbDictionary类允许向数据文件中添加用户数据,在数据字典中几个重要的条目是AutoCAD的“groups”和“mline”样式。

符号表从其名称就可以知道它们所包含的内容。最重要的大概要算AcDbBlockTable了。所有的AutoCAD实体都是存放在这个表中的。AcDbBlockTable中最重要的两条记录是*MODEL_SPACE记录和*PAPER_SPACE记录。AutoCAD数据库中所有的实体都属于这些记录中一条。块的定义也存放在AcDbBlockTable中。

最后,AutoCAD中的每一个实体都是从AdDbEntity中派生出来的,也可以从AdDbEntity中派生出你自己的实体。

2.5 AcGi库
AcGi代表AutoCAD的形接口。该库提供服务程序,在定义用户实体时起作用。比如在3D实体或网格中有面和边的数据,在AcGi库中有对应的类来操纵这些子实体。该库中提供的最重要的两个类是AcGiWorldDraw和AcGiWorldGeometry。

2.6 AcGe库
AcGe库是一个通用库。它提供数学计算和几何计算函数,如矢量、点和矩阵的运算等。在AutoCAD中每一个实体都有一个相对应的等价几何形状,它有助于在创建对应的真实感实体时进行数学计算。该库提供用于2D和3D计算的几何函数。例如,如果一条直线通过一个圆的附近,且需要求出直线到圆上的最近点,那么用库中的几何函数就可求出所需的点。
2.7 ADSRX库(以前的ADS)
早就使用AutoCAD的人一定知道ADS(AutoCAD Development Sysetm)。ADS是一个C语言的开发环境,该环境下的成员现在转到了ObjectARX中。在早期的ADS编程环境中,AutoCAD和ADS之间的通信是由AutoLISP通过IPC(内部进程间通讯)来完成的。现在使用ADS不再需要用AutoLISP进行通信或缓慢的IPC。ADS主要用于选择实体、获取用户的输入以及选择集。ADS的函数很容易辨别,它们都是以ads_开头的。但在ObjectARX 2000中,大部分函数已经重新命名。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-12-14 14:26:25 | 显示全部楼层
非常感谢,我也是个初学者
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-26 23:47:37 | 显示全部楼层
http://mingbai.xilubbs.com
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-28 11:20 , Processed in 0.186430 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表