2014年7月4日 星期五

一窺 AutoCAD 群碼的鑰匙

你想過在 AutoCAD 一個個繪出的圖元,是怎樣記錄在 AutoCAD 檔案內的嗎? 如果你在 AutoCAD 中寫下一個字,就 TEST 吧,我問你如何描述這的圖元,你會說這個包含有

1.    文字的位置
2.    文字的內容 ( TEST)
3.    文字的圖層 (假設是在 0 )
4.    文字的字形 ….

    是的,AutoCAD 也是這麼記錄下來的,而且比你想像的資料還要多,那如何知道這些資訊,用 LIST 指令 !! 現在應該沒有人會用這種老古董指令,用性質  _properties指令就可以將文字性質一覽無遺,不過這是經過包裝的,在 AutoCAD LISP 內要有更嚴謹的作法

    (entget(car(entsel)))

   這是三個指令串起來的指令 (不愧為 LISP),在命令列中執行它,CAD會要求你選取一個圖元,然後將圖元的資料傾瀉而出,不廢話就取選取 "TEST" 這個文字,然後 ….

((-1 . <圖元名稱: 7ef62298>) (0 . "TEXT") (330 . <圖元名稱:
7efddcc0>) (5 . "1373") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0")
(100 . "AcDbText") (10 352.068 167.112 0.0) (40 . 90.0) (1 . "TEST") (50 . 0.0)
(41 . 0.8) (51 . 0.0) (7 . "C") (71 . 0) (72 . 0) (11 0.0 0.0 0.0) (210 0.0 0.0
1.0) (100 . "AcDbText") (73 . 0))

   是的,這是 "TEST" 的本尊,其中組成元件有圖元名稱 (編號),圖元分類 (TEXT),圖元所在圖層(8 . "0"),文字基準點 (10 352.068 167.112 0.0) …,接下來就是如何取出資料,運算,修改更新的動作了。

沒有留言:

張貼留言