| cc2008 |
2009-03-07 19:28 |
AutoCAD中扩展实体数据的组织结构及存取方法
AutoCAD作为国际上最流行的CAD绘图软件在国内的应用日益广泛。自11.0版本以后,Autodesk公司在AutoCAD引入了扩展实体数据的概念,为广大用户提供了更强的二次开发功能。借助扩展实体数据,用户可以很方便地在图形实体中按不同的需求分门别类地存取不同的非图形数据,如设计人员关心产品的材料、重量,而财务人员则关心产品的成本、价格等。
3D<P
[.bS !vImmhI!I 众所周知,利用"块"属性可以存取非图形数据,而且这也是在AutoCAD 11.0版本以前用户能够在图形中存取非图形数据的唯一方法,但现在通过扩展实体数据,非图形数据的存取将变得更加灵活、方便。事实上 ,AutoCAD 12.0 ASE正是利用图形中位于"ACADASE"图层的POLYLINE扩展实体数据来保存图形实体与外部数据库之间的连接关系。 lV]l`$XI
diTzolY7 本文拟对AutoCAD 12.0版扩展实体数据的结构作详细的分析,并结合实际应用介绍有关的程序代码,与各位同仁切磋。 `awk@ K<s\:$VVh 1、扩展实体数据的结构 vja^O
x!I7vs~~zW AutoCAD扩展实体数据是在常规的图形数据基础上增加的按一系列分类代码组合而成的数据块,它与常规实体数据一起构成内容更加广泛的实体数据。由于不同的应用场合要求存取不同的数据,因此扩展实体数据按应用类型分组,形式如下: :FxZdE $#t&W& (-3 ("AppName" (代码.数据) (…) ) ("AppName"(代码.数据) (…)) (…))) D;Az>]>q )}paQmy# 其中,-3表示扩展数据开始; /8Vh G|Wb <~:
g AppName是最大长度为31字节的字符串,为已经登记的应用类型名; uX.Aq@j g@nE7H1V 代码及对应的数据类型见下表: W9eR3q &mY<e4 举例如下: M.|hnGXN #wC4$y<> ((-1.) (0."TEXT") (5."2F") (67.0) (8."0") (10 172.586 246.388 0.0) (40.32.729) (1."5") (50.0.0) (41.1.0) (51.0.0) (7."STANDARD") (71.0) (72.0) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0) (73.0) (-3 ("DESIGN" (1000."16Mn") (1040.32.45)) ("PRICE" (1040.123.45) (1040.321.54)))) |W#^L`!G \;P Bx & 这是一个"TEXT"类型的图形实体,它包含"DESIGN"和"PRICE"两个应用类型的扩展数据。其中,(-1.)…(73.0)是常规实体数据,(-3 (…))就是扩展实体数据,而扩展数据中("DESIGN" (1000."16Mn") (1040.32.45))是属于"DESIGN"应用类型的数据块,("PRICE"(1040.123.45) (1040.321.54))则是属于"PRICE"应用类型的数据块。更具体地说,属于"DESIGN"应用类型的数据有两个,分别是字符串"16Mn"和实数"32.45";属于"PRICE"应用类型的数据是两个实数,分别是"123.45"和"321.54"。 iT.hXzPzr* oO= 6Kd+T 由此可见,应用类型名是存取扩展实体数据的主要依据。在使用前应先行登记。应用类型名可由用户任意定义,其最大长度为31个字符。登记应用类型名的AutoLISP程序代码如下: 2H]&3kM3X C}+(L3Z (regapp "AppName") ={z YcVI 4AP<mo 如果登记成功,该应用类型名就被增加到APPID符号表,并保存在图形文件中。AutoCAD自动登记的应用类型名为"ACAD"。 }]g>PY Kx< | |