引 言
3Y8
V?* 1| AutoCAD作為國(guó)際上最流行的
CAD繪圖
軟件在國(guó)內(nèi)的應(yīng)用日益廣泛。自11.0版本以后,Autodesk公司在AutoCAD引入了擴(kuò)展實(shí)體數(shù)據(jù)的概念,為廣大用戶提供了更強(qiáng)的二次開(kāi)發(fā)功能。借助擴(kuò)展實(shí)體數(shù)據(jù),用戶可以很方便地在圖形實(shí)體中按不同的需求分門別類地存取不同的非圖形數(shù)據(jù),如設(shè)計(jì)人員關(guān)心產(chǎn)品的
材料、重量,而財(cái)務(wù)人員則關(guān)心產(chǎn)品的成本、價(jià)格等。眾所周知,利用"塊"屬性可以存取非圖形數(shù)據(jù),而且這也是在AutoCAD 11.0版本以前用戶能夠在圖形中存取非圖形數(shù)據(jù)的唯一方法,但現(xiàn)在通過(guò)擴(kuò)展實(shí)體數(shù)據(jù),非圖形數(shù)據(jù)的存取將變得更加靈活、方便。事實(shí)上 ,AutoCAD 12.0 ASE正是利用圖形中位于"ACADASE"圖層的POLYLINE擴(kuò)展實(shí)體數(shù)據(jù)來(lái)保存圖形實(shí)體與外部數(shù)據(jù)庫(kù)之間的連接關(guān)系。本文擬對(duì)AutoCAD 12.0版擴(kuò)展實(shí)體數(shù)據(jù)的
結(jié)構(gòu)作詳細(xì)的分析,并結(jié)合實(shí)際應(yīng)用介紹有關(guān)的
程序代碼,與各位同仁切磋。
w=$_',5#Z 1、擴(kuò)展實(shí)體數(shù)據(jù)的結(jié)構(gòu)
1rC'sfz AutoCAD擴(kuò)展實(shí)體數(shù)據(jù)是在常規(guī)的圖形數(shù)據(jù)基礎(chǔ)上增加的按一系列分類代碼組合而成的數(shù)據(jù)塊,它與常規(guī)實(shí)體數(shù)據(jù)一起構(gòu)成內(nèi)容更加廣泛的實(shí)體數(shù)據(jù)。由于不同的應(yīng)用場(chǎng)合要求存取不同的數(shù)據(jù),因此擴(kuò)展實(shí)體數(shù)據(jù)按應(yīng)用類型分組,形式如下:
[tN/}_] (-3 ("AppName" (代碼.數(shù)據(jù)) (…) ) ("AppName"(代碼.數(shù)據(jù)) (…)) (…)))
FCPbp!q6 其中,-3表示擴(kuò)展數(shù)據(jù)開(kāi)始;
-j,o:ng0 AppName是最大長(zhǎng)度為31字節(jié)的字符串,為已經(jīng)登記的應(yīng)用類型名;
f
WXzK< 代碼及對(duì)應(yīng)的數(shù)據(jù)類型見(jiàn)下表:
y6oDbwke 舉例如下:
_?"J.i ((-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))))
{ex]_V> 這是一個(gè)"TEXT"類型的圖形實(shí)體,它包含“DESIGN”和“PRICE”兩個(gè)應(yīng)用類型的擴(kuò)展數(shù)據(jù)。其中,(-1.)…(73.0)是常規(guī)實(shí)體數(shù)據(jù),(-3 (…))就是擴(kuò)展實(shí)體數(shù)據(jù),而擴(kuò)展數(shù)據(jù)中("DESIGN" (1000."16Mn") (1040.32.45))是屬于"DESIGN"應(yīng)用類型的數(shù)據(jù)塊,("PRICE"(1040.123.45) (1040.321.54))則是屬于"PRICE"應(yīng)用類型的數(shù)據(jù)塊。更具體地說(shuō),屬于"DESIGN"應(yīng)用類型的數(shù)據(jù)有兩個(gè),分別是字符串"16Mn"和實(shí)數(shù)"32.45";屬于"PRICE"應(yīng)用類型的數(shù)據(jù)是兩個(gè)實(shí)數(shù),分別是"123.45"和"321.54"。
{PKER$C 由此可見(jiàn),應(yīng)用類型名是存取擴(kuò)展實(shí)體數(shù)據(jù)的主要依據(jù)。在使用前應(yīng)先行登記。應(yīng)用類型名可由用戶任意定義,其最大長(zhǎng)度為31個(gè)字符。登記應(yīng)用類型名的AutoLISP程序代碼如下:
T5h[{J^ (regapp "AppName")
&AVi4zV 如果登記成功,該應(yīng)用類型名就被增加到APPID符號(hào)表,并保存在圖形
文件中。AutoCAD自動(dòng)登記的應(yīng)用類型名為"ACAD"。
p:jrqjLp 從上面的例子還可以看到,擴(kuò)展實(shí)體數(shù)據(jù)與常規(guī)實(shí)體數(shù)據(jù)有所不同,在擴(kuò)展實(shí)體數(shù)據(jù)塊中,同樣代碼的數(shù)據(jù)可以出現(xiàn)多次,每組數(shù)據(jù)的次序和含義則由應(yīng)用程序自行約定。
^8iy(