找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 173|回复: 0

第二章 ObjectARX类库简介

[复制链接]

主题

0

回帖

0

积分

管理员

积分
0
发表于 2024-3-9 13:32:21 | 显示全部楼层 |阅读模式
ObjectARX环境包含下列几组类和函数:

AcRx             用于绑定应用程序及运行时类的注册和标识的类。AutoCAD Registration Extension;

AcEd             注册本地AutoCAD命令和AutoACD事件通知的类。AutoCAD Envent Directory;

AcDb             AutoCAD数据库类。AutoCAD DataBase ;

AcGi              显示AutoACD实体的图形类。 AutoCAD Graph Interface;

AcGe             公用线性数学和几何学对象应用类。 AutoCAD Geometry Entity;



AcRx库提供了一些系统级类,用于DLL的初始化和链接及运行时类的注册和标识。该库的基类是AcRxObject,它提供如下功能:对象运行时 类标识和继承分析、运行时向既有类添加新协议、对象比较测试、对象复制。运行时类型标识是AcRxObject的每个子类都有一个相关的类描述者对象 (AcRxClass类型),用于运行时类型的标识。最常用函数:

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

该库也可以对应用程序进行加锁或解锁。使用函数::acrxUnlockApplication()可以使应用程序不可卸载。



AcEd库提供定义和注册新的AutoCAD命令的类,新命令的操作性能与AutoCAD内部命令是完全一样的。我们定义的新命令被当作本地命令是 因为它们与AutoACD内部命令具有相同的内部结构(AcEdCommandStack)。AcEd库还提供编辑器反应器和一套与AutoCAD通信的全局函数。注:该库中一个重要的类是 AcEditorReactor,它监视AutoCAD编辑器的状态,并当指定事件发生时(如形开始、终止和删除命令)通知应用程序。



AcDb库提供了组成AutoCAD数据库的类。AutoCAD数据库用于存储所有的图形对象和非对象;图形对象称为实体,组成AutoCAD图; 非图形对象(如层、线型和字型)也是图形的一部分。同时我们可以使用AcDb库查询和管理AutoCAD实体的实体对象,也可以创建新的数据库对象实例。 AutoCAD数据库包含如下主要元素:九个符号表,每个表都拥有唯一的命令符号表条目对象,这些对象表示各种常用的AcDbDatabase对象和数据 成员;命名的对象词典(类AcDbDictionary),提供AutoCAD图的目录表。对于新图来说,该目录表包含四个AutoCAD使用的其他词典 ID,同时我们的应用程序可以任意向该词典添加其他的对象;一套固定的环境变量,大约200个环境变量,其值上由AutoCAD设置的。



AcGi库提供了用于绘制AutoCAD实体的图形界面,AcDbEntity成员函数worldDraw()、viewportDraw()和saveAs(),及所有标准实体协议部件都使用AcGi库。



AcGe库提供了应用类,如向量和矩阵,用来完成二维和三维几何操作,它还提供基本的几何对象,如点、曲线和表面。AcGe还包含两个主要子集:二维和三维几何类,主要抽象基类分别为AcGeEntity2d和AcGeEntity3d。它提供了几何计算和数学计算函数,如矢量、点、矩阵的的运算等。在cad中每一个实体都有一个相对应的等价几何形状,他有助于在创建对应的真实感实体时进行数学计算。该库提供用于2D和3D计算的几何函数。例如,如果一条直线通过一个圆的附近,且需要求出直线到圆上的最近点,那么用库中的几何函数就可以求出所需要的点。



ObjectARX目录结构

├─arxlabs           目录存放AutoCAD ARX使用指南。

├─classmap        目录存放AutoCAD图形形式的ObjectARX类层次结构图。

├─docs              目录存放ObjectARX开发者的在线帮助文件,

├─inc                 ObjectARX头文件。

├─lib                  ObjectARX库文件。

├─redistrib         ObjectARX应用程序运行所需要的DLL文件。

├─samples          ObjectARX例子目录。

└─utils               ObjectARX的扩展和开发小工具。如用于边界表达的brep和ObjectARX向导ObjARXWiz。



AcRx: acad.lib, rxapi.lib, acdb16.lib
AcEd: acad.lib, rxapi.lib, acedapi.lib, acdb16.lib
AcDb: acad.lib, rxapi.lib, acdb16.lib
AcGi: acad.lib, rxapi.lib, acdb16.lib
AcGe: acad.lib, rxapi.lib, acgeapi.lib, acdb16.lib
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-28 13:38 , Processed in 1.248045 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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