第8节 自定义对象.pdf

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档