网站大量收购独家精品文档,联系QQ:2885784924

AutoCAD图块实体几何信息提取.docVIP

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AutoCAD图块实体几何信息提取.doc

AutoCAD图块实体几何信息的提取 ???????????????????????????????????????????刘贤喜 ??????????????????????????????????? 中国农业大学(100083) ?????????????????????????????????????????????  ?????摘?要 本文介绍了在不“炸开(EXPLODE)”AutoCAD图块的前提下,利用ADS和C语言 ???? 直接访问AutoCAD图形数据库的结果缓冲器,提取或处理图块内部所含全部子实体几何信息 ?????的方法。 ?????关键词?AutoCAD图块?几何信息提取?ADS接口?DXF码 ?????1?问题的提出 ???? AutoCAD是优秀的计算机辅助设计软件,不但具有友好的交互绘图功能,而且提供了强大的二次开发工具,如ADS、ARX等。但在AutoCAD交互绘图环境中,对插入其中的图形块只作为一个整体来处理,仅直接提供其插入点的坐标值、比例因子和旋转角度等有限的几何信息,而不能直接提供图形块内部所有子实体的几何信息;若要对图块进行编辑修改,首先要用“EXPLODE”命令将图块分解为若干相互独立的几何实体。我们在开发“饲料加工工艺设计专家系统(FPES)”时,用图块来表示饲料加工设备图形符号,为了让计算机能够在AutoCAD环境下自动生成饲料加工工艺流程图,不仅要识别图块所表示的加工设备,还要处理图块的外轮廓,以便于自动确定设备位置。如果用“EXPLODE”命令将设备图块炸开,则就不再具有设备图形符号的含义了,计算机也就无法对设备进行智能处理。为此我们利用ADS开发了一个智能模块,能够在不炸开图块的前提下,自动获取图块内部所含全部子实体几何信息的,提高?AutoCAD对图块的智能处理能力。 ?????2?实现原理 ?????DXF(Drawing?Exchang File)码是CAD领域的工业标准之一,在计算机内存中,可以把DXF看成是AutoCAD将当前图形数据库的ASCII码映像。在AutoCAD图形数据库中实体类型(Entity)是预先定义的图形元素,如点(POINT)、直线(LINE)、圆(CIRCLE)、插入的块(INSERT)等。实体?名(Entity Name)用一个长整数表示,实际上是指向AutoCAD当前图形数据库的指针,通过这个指针,可以找到该实体在当前图形数据库中的记录。结果缓冲器是ADS支撑环境的核心概念之一。一个结果缓冲器被用来代表AutoCAD的实体和各种表(BLOCK、LTYPE、VIEW、LAYER、 ???? STYLE等)的数据信息,这些数据信息在结果缓冲器中都被映象为DXF组码与组值。结果缓冲器 ?????在ADS中是这样定义的: ?????union?ads_u_val?{?//不同数据类型的联合 ?????ads_real?rreal; ?????ads_real?rpoint[3]; ?????short?rint; ?????char?*rstring; ?????long?rlname[2]; ?????long?rlong; ?????struct?ads_binary?rbinary; ?????}; ?????struct?rebuf?{?//结果缓冲器的结构 ?????struct?rebuf?*rbnext; ?????short?restype; ?????union?ads_u_val?resval; ?????}; ?????  ???? 在AutoCAD当前数据库中,首先获取一个实体,并该得到实体的结果缓冲器,当DXF组码为0 ???? 时,其组值为实体类型,即:LINE、CIRCLE、ARC、PLINE、INSERT等;当DXF组码为2时,其组 ???? 值为图块名称;当DXF组码为10时,其组值根据实体类型的不同而表示不同的含义,可以是 ?????LINE的起点坐标,或是CIRCLE或ARC的中心坐标等。 ???? 当不同内容的结果缓冲器链接成一个链表时,它们就可以用来表示AutoCAD的图形实体和表记 ???? 录了。如:一个锤片粉碎机图形符号的块名为“CF”,其插入块的结果缓冲器表的结构如图1 ?????所示: ???? 由于所有图块的定义信息(包括几何信息)都以DXF组码与组值的形式存放在一个“BLOCK”符 ???? 号表中,所以在AutoCAD的“BLOCK”符号表中检索指定的图块名,就可得到该图块全部定义信 ???? 息的存储首地址,并将其作为一个结果缓冲器链表。在循环遍历该结果缓冲器链表的过程中, ???? 通过DXF组码与组值,来判别块内子实体的类型,

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档