找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3576|回复: 5

[老徐讲堂] 第一讲 ObjectARX类库简介

[复制链接]

已领礼包: 12个

财富等级: 恭喜发财

发表于 2013-9-25 08:48:26 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 小龙龙 于 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类的实例.应用程序可以向全局对象词典添加对象,所以其他应用程序可以访问这些实体。
如果你想了解更为详细的AcRx类, 参见 ObjectARX 应用程序基础, 派生自定义ObjectARX类, 和 扩展协议.

AcEd 类

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


AcDb类提供了组成AutoCAD数据库的类.AutoCAD数据库用于存储所有图形对象和非图形对象;图形对象称为实体,组成AutoCAD图形;非图形对象(如图层、线型和字体样式)也属于图形的一部分.我们可以使用AcDb类查询和管理既有的AutoCAD实体的实例和对象,并且可以创建新的数据库对象实例.
AutoCAD数据库包含如下主要元素:
·        一套九个符号表,每个表都拥有唯一的命名符号表条目对象,这些对象表示各种常用的AcDbDatabase对象和数据成员.
·        一套命名的对象词典(AcDbDictionary类),提供AutoCAD图的目录表.对于新图来说,该目录表包含四个AutoCAD使用的其他词典ID;我们开发的应用程序可以任意的向该词典添加其他的对象
·        一套固定的环境变量,大约有200个环境变量,其值是由AutoCAD设置的.
如需详细了解AcDb类, 参见 数据库入门, 数据库操作, 数据库对象, 实体, 和 容器对象 .有关从AcDbObject和AcDbEntity派生新类的内容, 参见 从AcDbObject类中派生新类从AcDbEntity类中派生新类.
AcGi 类

AcGi类提供了用于绘制AutoCAD实体的图形界面,AcdbEntity成员函数worldDraw()、viewportDraw()和saveAs(),及所有标准实体协议都使用AcGi库;worldDraw()函数必须由所有自定义实体类定义.AcGiWorldDraw对象提供一个API,通过该APIAcDbEntity::worldDraw()可以在所有视区同时生成其图形表示;同样AcGiViewportDraw对象也提供一个API,通过该APIAcDbEntity::viewportDraw()函数可以在每个视区生成不同的图形表示.
如需详细了解AcGi类, 参见 从AcDbEntity类中派生新类图形接口库.
AcGe 类


AcDb库使用了AcGe库,AcGe类库提供了应用类,如向量和矩阵,用来完成二维和三维几何操作,它还提供基本的几何对象,如点、曲线和表面.
AcGe库包含两个主要的子集:二维和三维几何类,主要抽象基类分别为AcGeEntity2d和AcGeEntity3d.包括 AcGePoint2d, AcGeVector2d, 和 AcGeMatrix2d在内的一些基类. 它们不是从任何其他类派生来的;这些基类可以用于完成多种一般性操作,如在一个点上添加一个矢量、计算两个向量的点乘或积,计算两个矩阵的积.该类库的高级类是通过这些基类来实现的.
AcGe库提供几个不同的坐标系统,如需详细了解, 参见 使用几何类库. 我们可以从中了解AcGe类的一般用途.

ObjectARX 类库简介.rar

13.44 KB, 下载次数: 101, 下载积分: D豆 -1 , 活跃度 1

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

使用道具 举报

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 10个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-8 09:17 , Processed in 0.182506 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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