- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8 章 自定义对象
本章简介
8
自定义对象的概念。
从AcDbObj ect 派生对象。
从AcDbEntity 派生自定义实体。
学习要点
了解 定义对象的概念及其的应用。
掌握从AcDbObj ect 派生对象。
掌握 定义实体的创建方法。
我们在前面介绍了通过扩充数据方式来存储扩充数据,虽然能满足一定的工程需求,但
是由于最终的扩展数据通过结果缓冲链表的方式存储,缺少面向对象特性,在处理的时候比
较繁琐,我们完成可以定义自己的类来封装数据,此种情况下我们需要通AcDbObj ect 派生数
据库对象;另外,AutoCAD 是一个通用的CAD 平台,提供如点、线等通用的对象类型,我
们可以针对行业特征派生自己的实体,如定义螺栓类 管道类等,这些派生的实体除了具有
自己的几何形体外,还包含自己所有的一些数据,如管道的管径、材质等属性。本章我们介
绍一下自定义数据库对象的概念和方法,用户可以根据自己的实际需求派生一套面向行业的
对象类型。
8. 1 自定义对象
在介绍 定义对象之前,我们需要对AutoCAD 中数据库对象的层次关系有所了解了
解,这有助于我们理解后面的实际应操作,AutoCAD 中数据库对象的层次关系如图8-1
所示。
1
PDF 文件使用 pdfFactory Pro 试用版本创建
图 8 -1AutoCAD 中数据库对象的层次关系
从图 8-1 我们看出所有的数据库对象类都派生 AcRxObj ect,该类是所有数据库对
象的基类,它主要实现对象运行时类型识别机制,提供一些用于类型识别的重要函数,它
提供的函数主要有一下几个:
ndesc() : 静态成员函数,返回指定类的类描述符对象。
ncast(): 返回指定类型的对象。
nisKindOf(): 用于判断对象是否属于指定类或者派生类。
nisA() :返回未知类对象的类描述符对象。
我们在介绍实体操作的时候讲过如何使用这些函数,这里我们需要在这里介绍这些函
数的实现机制,从AcRxObj ect 派生的类都包含一个 应的类描述符对象,用AcRxClass
类表示,它包含了运行使类型的识别信息,AcRxObj ect 的派生类包含一个指向AcRxClass
对象的指针 (gpDesc ),可以通过 AcRxObj ect::desc()获取这个 AcRxClass 对象指针,而
AcRxClass 对象包含一个指向其父对象AcRxClass 的指针,这样构成了类的运行时类层次
表,如图8-2,我们可以调用AcRxObj ect::isKindOf ()来判断对象是否是从某个类派生
出来。
图 8 -2 行时类层次表
在派生自定义类中要实现运行类的识别信息,也就是要重载上面提到的desc() isKindOf()
2
P
文档评论(0)