马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 小龙龙 于 2013-9-25 14:54 编辑
ObjectARX 类库简介
ObjectARX 开发环境包含下列几组类: AcRx 用于绑定应用程序及运行时类的注册和标识的类. AcEd 注册本地AutoCAD命令和AutoCAD事件通知的类. AcDb AutoCAD 数据库类. AcGi 显示AutoCAD实体的图形类. AcGe 线性代数学和几何学对象应用类. 下表列举了需要链接到ObjectARX应用程序的库.所有ObjectARX应用程序必须链接acad.lib和rxapi.lib,是否需要链接其他的库.取决于所用的ObjectARX类和函数的前缀。 需要链接的ObjectARX类库 前缀 需要链接的库
AcRx rxapi.lib, acdb19.lib
AcEd acad.lib, rxapi.lib, acdb19.lib
AcDb rxapi.lib, acdb19.lib
AcGi acgiapi.lib, rxapi.lib, acdb19.lib
AcGe rxapi.lib, acge19.lib, acdb19.lib
AcRx 类 AcRx提供了一些系统级类,用于DLL的初始化和链接及运行时类的注册和标识,该库的基类是AcRxObject,它提供如下功能: · 对象运行时类标识和继承分析 · 运行运行时向现有类添加新协议 (参见 扩展协议) · 对象的比较测试> · 对象复制 AcRx库还提供了一套C++宏,帮助我们创建派生于AcRxObject的新ObjectARX类 (参见 派生自定义的ObjectARX类). AcRxObject的每一个子类都有一个相关的描述对象(AcRxClass类型),用于运行时类型的标识.ObjectARX提供了许多函数,可以测试一个对象是特殊类还是派生类,确定两个对象是否是相同的类,并返回给定类的类描述者对象. AcAcRxDictionary 是该库中另一个重要的类,词典是从一个文本字符串到另一个对象的一个映射,AcRx库将其对象、类和服务词典放在一个全局对象词典中,全局对象词典是一个AcRxDictionary类的实例.应用程序可以向全局对象词典添加对象,所以其他应用程序可以访问这些实体。
AcEd 类
AcEd类提供定义和注册新的AutoCAD命令的类,新命令的操作性能与AutoCAD内部命令是完全一样的.我们定义的新命令被当做本地命令是因为它们与AutoCAD内部命令具有相同的内部结构(AcEdCommandStack).AcEd类还提供了编辑器反应器和一套与AutoCAD通信的全局函数.该类中一个重要的类是AcEdReactor,它监视AutoCAD编辑器的状态,并指定事件发生时(如开始、终止和删除命令)通知应用程序. AcDb 类
AcDb类提供了组成AutoCAD数据库的类.AutoCAD数据库用于存储所有图形对象和非图形对象;图形对象称为实体,组成AutoCAD图形;非图形对象(如图层、线型和字体样式)也属于图形的一部分.我们可以使用AcDb类查询和管理既有的AutoCAD实体的实例和对象,并且可以创建新的数据库对象实例. AutoCAD数据库包含如下主要元素: · 一套九个符号表,每个表都拥有唯一的命名符号表条目对象,这些对象表示各种常用的AcDbDatabase对象和数据成员. · 一套命名的对象词典(AcDbDictionary类),提供AutoCAD图的目录表.对于新图来说,该目录表包含四个AutoCAD使用的其他词典ID;我们开发的应用程序可以任意的向该词典添加其他的对象 · 一套固定的环境变量,大约有200个环境变量,其值是由AutoCAD设置的. AcGi 类
AcGi类提供了用于绘制AutoCAD实体的图形界面,AcdbEntity成员函数worldDraw()、viewportDraw()和saveAs(),及所有标准实体协议都使用AcGi库;worldDraw()函数必须由所有自定义实体类定义.AcGiWorldDraw对象提供一个API,通过该APIAcDbEntity::worldDraw()可以在所有视区同时生成其图形表示;同样AcGiViewportDraw对象也提供一个API,通过该APIAcDbEntity::viewportDraw()函数可以在每个视区生成不同的图形表示. AcGe 类
AcDb库使用了AcGe库,AcGe类库提供了应用类,如向量和矩阵,用来完成二维和三维几何操作,它还提供基本的几何对象,如点、曲线和表面. AcGe库包含两个主要的子集:二维和三维几何类,主要抽象基类分别为AcGeEntity2d和AcGeEntity3d.包括 AcGePoint2d, AcGeVector2d, 和 AcGeMatrix2d在内的一些基类. 它们不是从任何其他类派生来的;这些基类可以用于完成多种一般性操作,如在一个点上添加一个矢量、计算两个向量的点乘或积,计算两个矩阵的积.该类库的高级类是通过这些基类来实现的. AcGe库提供几个不同的坐标系统,如需详细了解, 参见 使用几何类库. 我们可以从中了解AcGe类的一般用途. |