亚洲AV日韩AV无码污污网站_亚洲欧美国产精品久久久久久久_欧美日韩一区二区视频不卡_丰满无码人妻束缚无码区_久爱WWW成人网免费视频

切換到寬版
  • 廣告投放
  • 稿件投遞
  • 繁體中文
    • 2534閱讀
    • 0回復

    [轉載]AutoCAD擴展實體數(shù)據(jù)的分析與應用 [復制鏈接]

    上一主題 下一主題
    離線HAHA^_^
     
    發(fā)帖
    1379
    光幣
    1254
    光券
    0
    只看樓主 倒序閱讀 樓主  發(fā)表于: 2015-08-26
    引 言 < V?CM(1C  
      AutoCAD作為國際上最流行的CAD繪圖軟件在國內(nèi)的應用日益廣泛。自11.0版本以后,Autodesk公司在AutoCAD引入了擴展實體數(shù)據(jù)的概念,為廣大用戶提供了更強的二次開發(fā)功能。借助擴展實體數(shù)據(jù),用戶可以很方便地在圖形實體中按不同的需求分門別類地存取不同的非圖形數(shù)據(jù),如設計人員關心產(chǎn)品的材料、重量,而財務人員則關心產(chǎn)品的成本、價格等。眾所周知,利用"塊"屬性可以存取非圖形數(shù)據(jù),而且這也是在AutoCAD 11.0版本以前用戶能夠在圖形中存取非圖形數(shù)據(jù)的唯一方法,但現(xiàn)在通過擴展實體數(shù)據(jù),非圖形數(shù)據(jù)的存取將變得更加靈活、方便。事實上 ,AutoCAD 12.0 ASE正是利用圖形中位于"ACADASE"圖層的POLYLINE擴展實體數(shù)據(jù)來保存圖形實體與外部數(shù)據(jù)庫之間的連接關系。本文擬對AutoCAD 12.0版擴展實體數(shù)據(jù)的結構作詳細的分析,并結合實際應用介紹有關的程序代碼,與各位同仁切磋。 Qm| Q0u   
      1、擴展實體數(shù)據(jù)的結構 #A8d@]Ps  
      AutoCAD擴展實體數(shù)據(jù)是在常規(guī)的圖形數(shù)據(jù)基礎上增加的按一系列分類代碼組合而成的數(shù)據(jù)塊,它與常規(guī)實體數(shù)據(jù)一起構成內(nèi)容更加廣泛的實體數(shù)據(jù)。由于不同的應用場合要求存取不同的數(shù)據(jù),因此擴展實體數(shù)據(jù)按應用類型分組,形式如下: f%LzWXA  
      (-3 ("AppName" (代碼.數(shù)據(jù)) (…) ) ("AppName"(代碼.數(shù)據(jù)) (…)) (…))) b8V]/  
      其中,-3表示擴展數(shù)據(jù)開始; >Z#=<  
      AppName是最大長度為31字節(jié)的字符串,為已經(jīng)登記的應用類型名; ,2F4S5F~rC  
      代碼及對應的數(shù)據(jù)類型見下表: njk.$]M|nf  
      舉例如下: Kt WG2  
      ((-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))))  } z4=3 '  
      這是一個"TEXT"類型的圖形實體,它包含“DESIGN”和“PRICE”兩個應用類型的擴展數(shù)據(jù)。其中,(-1.)…(73.0)是常規(guī)實體數(shù)據(jù),(-3 (…))就是擴展實體數(shù)據(jù),而擴展數(shù)據(jù)中("DESIGN" (1000."16Mn") (1040.32.45))是屬于"DESIGN"應用類型的數(shù)據(jù)塊,("PRICE"(1040.123.45) (1040.321.54))則是屬于"PRICE"應用類型的數(shù)據(jù)塊。更具體地說,屬于"DESIGN"應用類型的數(shù)據(jù)有兩個,分別是字符串"16Mn"和實數(shù)"32.45";屬于"PRICE"應用類型的數(shù)據(jù)是兩個實數(shù),分別是"123.45"和"321.54"。 !Jo3>!,j  
      由此可見,應用類型名是存取擴展實體數(shù)據(jù)的主要依據(jù)。在使用前應先行登記。應用類型名可由用戶任意定義,其最大長度為31個字符。登記應用類型名的AutoLISP程序代碼如下: lO/<xSjNd  
      (regapp "AppName") q&IO9/[dk  
      如果登記成功,該應用類型名就被增加到APPID符號表,并保存在圖形文件中。AutoCAD自動登記的應用類型名為"ACAD"。 [\o+I:,}wi  
      從上面的例子還可以看到,擴展實體數(shù)據(jù)與常規(guī)實體數(shù)據(jù)有所不同,在擴展實體數(shù)據(jù)塊中,同樣代碼的數(shù)據(jù)可以出現(xiàn)多次,每組數(shù)據(jù)的次序和含義則由應用程序自行約定。 1'5I]D ec  
      需要注意的是,AutoCAD分配給每個圖形實體的擴展數(shù)據(jù)空間最大為16K字節(jié)。下面的函數(shù)可查詢指定圖形實體的擴展數(shù)據(jù)自由空間大小(以字節(jié)為單位): ICNS+KsI  
      (xdroom entname) |Rr^K5hmD  
      下面的函數(shù)可計算出指定擴展數(shù)據(jù)塊的大小(以字節(jié)為單位): o.tCw\M$g  
      (xdsize xdata) Rd5ni2-nve  
      2、存取擴展實體數(shù)據(jù)的程序設計 /K mzi9j+  
      在AutoCAD命令中,除AME(高級造型)、ASE(數(shù)據(jù)庫管理)命令對擴展實體數(shù)據(jù)進行操作外,其它繪圖命令一般不生成擴展實體數(shù)據(jù)。更多的情況是用戶的AutoLISP或ADS應用程序生成、修改和檢索擴展實體數(shù)據(jù)。 1sFTXl  
      下面列出三段AutoLISP程序代碼,分別對擴展實體數(shù)據(jù)進行檢索、存儲和刪除操作: _=c>>X  
      ;檢索指定的擴展實體數(shù)據(jù) xCH,d:n=  
      ;entname為有效的圖形實體名,appname為已登記的應用類型名 h+mM  
      ;若檢索成功則以LIST表的形式返回指定的擴展數(shù)據(jù),否則返回nil Sd;/yC