[討論]請問各位都如何使用"延伸資料"這個功能
+2
judyyai
awi
6 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論]請問各位都如何使用"延伸資料"這個功能
我在書上看到這項功能,但是他也只有教寫入跟讀取延伸資料。
延伸資料也無法用(ssget "x" ...)過濾出來,
那他的使用時機是何時,又如何使用呢?
延伸資料也無法用(ssget "x" ...)過濾出來,
那他的使用時機是何時,又如何使用呢?
awi- 一般會員
- 文章總數 : 74
年齡 : 41
來自 : 新北市
職業 : 電機技師事務所
愛好 : 新奇有趣的事物
個性 : 固執
使用年資 : 6
使用版本 : 2012
經驗值 : 4597
威望值 : 42
注冊日期 : 2013-05-03
回復: [討論]請問各位都如何使用"延伸資料"這個功能
幫頂一個~都沉這麼多天~
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30397
威望值 : 3610
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: [討論]請問各位都如何使用"延伸資料"這個功能
SSGET 是個超好用的選集建立指令!!
尤其是他能夠配合群碼做篩選,絕對是程式設計的一大利器!!
但是想使用 ssget 是有些門道需要去了解的,
就如同剛才所提到的"群碼"
簡單舉幾個群碼的例子,
圖層的群碼是8,而你希望要找在"DIM"圖層下的物件,則群碼的表是方式就是 (8 . "DIM")
物件類別的群碼是0,而你希望要找"circle"類別的物件,則群碼的表是方式就是 (0 . "CIRCLE")
建立選集的方式就如下:
(setq SelWorks1 (ssget "X" '(0 . "CIRCLE"))) ;這是將變數SelWorks1設為圖面上所有的"圓"物件的選集
(setq SelWorks2 (ssget "X" '(8 . "DIM"))) ;這是將變數SelWorks2設為圖面上所有"圖層為DIM"的物件的選集
(setq SelWorks3 (ssget "X" '((8 . "DIM")(0 . "CIRCLE")))) ;這是將變數SelWorks3設為圖面上所有"圖層為DIM的圓物件"的選集
這樣舉例不知道有沒有幫道您呢?
PS:之前有看到此討論....只是留言到一半被打斷去趕工到後來忘記了.....還好有被頂出來XD...哈哈
尤其是他能夠配合群碼做篩選,絕對是程式設計的一大利器!!
但是想使用 ssget 是有些門道需要去了解的,
就如同剛才所提到的"群碼"
簡單舉幾個群碼的例子,
圖層的群碼是8,而你希望要找在"DIM"圖層下的物件,則群碼的表是方式就是 (8 . "DIM")
物件類別的群碼是0,而你希望要找"circle"類別的物件,則群碼的表是方式就是 (0 . "CIRCLE")
建立選集的方式就如下:
(setq SelWorks1 (ssget "X" '(0 . "CIRCLE"))) ;這是將變數SelWorks1設為圖面上所有的"圓"物件的選集
(setq SelWorks2 (ssget "X" '(8 . "DIM"))) ;這是將變數SelWorks2設為圖面上所有"圖層為DIM"的物件的選集
(setq SelWorks3 (ssget "X" '((8 . "DIM")(0 . "CIRCLE")))) ;這是將變數SelWorks3設為圖面上所有"圖層為DIM的圓物件"的選集
這樣舉例不知道有沒有幫道您呢?
PS:之前有看到此討論....只是留言到一半被打斷去趕工到後來忘記了.....還好有被頂出來XD...哈哈
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9152
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [討論]請問各位都如何使用"延伸資料"這個功能
延伸資料基本的概念就是.在圖元中添加資料.以群組碼1000-1071範圍.定義使用者添加的資料內容.
VLIDE 編輯器內HELP
DXF參考->進階DXF問題->延伸資料.有群組碼詳細說明.~!!
這是我的O-形環圖塊BLOCK 延伸資料範例.~!!
基本上.就看你要添加什麼資料. 自己定義資料內容.
因為我的O-RING 有公制和英制規格.上視圖種類也有8種.水孔大小配合的水管牙尺寸也不同..因為我不想用圖塊屬性記錄這些資料.就用延伸資料了.!!
大原則就是要尊照 群組碼的資料型態.
(1000 . "FxP15-3/8_1") 記錄O-RING 規格.F為公制 P15-PT3/8 ,圖型類別為1
(1000 . "clf") ;記錄O-RING 資料庫名稱為CLF.TXT
(1000 . "0") ;0-RING 水隔板旋轉角度為0
(1041 . 12.0) ;水孔直徑.
(1000 . "16.662") ;PT-3/8 外徑
(1000 . "14.950") ;PT-3/8 內徑
程式範例
選取圖面上的O-RING !! SSGET方法. 加 "X" 就是全圖選取了.~
(SETQ b_ens (SSGET (LIST (LIST -3 (LIST "AMD_CLF")))))
看這則帖子.幾天了.一直在想不知道怎樣說明比較好.怕詞不達義.~!! 有問題歡迎再討論了.
VLIDE 編輯器內HELP
DXF參考->進階DXF問題->延伸資料.有群組碼詳細說明.~!!
這是我的O-形環圖塊BLOCK 延伸資料範例.~!!
基本上.就看你要添加什麼資料. 自己定義資料內容.
因為我的O-RING 有公制和英制規格.上視圖種類也有8種.水孔大小配合的水管牙尺寸也不同..因為我不想用圖塊屬性記錄這些資料.就用延伸資料了.!!
大原則就是要尊照 群組碼的資料型態.
(1000 . "FxP15-3/8_1") 記錄O-RING 規格.F為公制 P15-PT3/8 ,圖型類別為1
(1000 . "clf") ;記錄O-RING 資料庫名稱為CLF.TXT
(1000 . "0") ;0-RING 水隔板旋轉角度為0
(1041 . 12.0) ;水孔直徑.
(1000 . "16.662") ;PT-3/8 外徑
(1000 . "14.950") ;PT-3/8 內徑
程式範例
- 代碼:
(defun clf-#make_insert(bname clf-pt lay $cl_sz / xdet_str1 xdet_str2 xdset_clf)
(if (= catlog_name "dme") (setq clf:ptn "D") (setq clf:ptn "F"))
(setq xdet_str1 (cons 1000 (strcat clf:ptn "x" $cl_sz "_" (rtos clf_cmd 2 0))))
(setq xdet_str2 (cons 1000 data_type))
(setq xdet_ang (cons 1000 co:ang))
(if (= clf:trans "Y")
(setq xdet_dia (cons 1041 (atof $co:d))) ;轉換的水孔徑
(setq xdet_dia (cons 1041 (atof co:d)))
)
(if (or (/= clf:tap_size nil)(= clf:trans "Y")) ;攻牙
(progn
(setq xdet_tap-outdia (cons 1000 tap:outdia))
(setq xdet_tap-india (cons 1000 tap:india))
)
(progn ;無攻牙
(setq xdet_tap-outdia (cons 1000 "0"))
(setq xdet_tap-india (cons 1000 "0"))
)
)
(regapp "AMD_CLF")
(setq xdset_clf (list -3 (list "AMD_CLF" '(1002 . "{") xdet_str1 xdet_str2 xdet_ang XDET_DIA xdet_tap-outdia xdet_tap-india '(1002 . "}"))))
(entmake (list (cons 0 "INSERT")
(cons 2 bname)
(cons 8 lay)
(cons 10 clf-pt)
xdset_clf
)
)
(ENTMAKE '((0 . "SEQEND")))
)
選取圖面上的O-RING !! SSGET方法. 加 "X" 就是全圖選取了.~
(SETQ b_ens (SSGET (LIST (LIST -3 (LIST "AMD_CLF")))))
看這則帖子.幾天了.一直在想不知道怎樣說明比較好.怕詞不達義.~!! 有問題歡迎再討論了.
Tiger&蘋果爸 寫到: 謝謝熱心圖文回覆~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8024
威望值 : 1185
注冊日期 : 2009-06-03
回復: [討論]請問各位都如何使用"延伸資料"這個功能
太厲害了!我看到一個龐大的圖塊資料庫範例!大大願意分享這樣的心血結晶一定要推!受教了!又在這臥虎藏龍的地方學了一招!
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9152
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [討論]請問各位都如何使用"延伸資料"這個功能
雖然有個概念知道是什麼東西,只是連測式過都沒有
前輩分享了很好的例子,我來吸收了,謝謝分享
前輩分享了很好的例子,我來吸收了,謝謝分享
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7163
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
回復: [討論]請問各位都如何使用"延伸資料"這個功能
shenhung 寫到:延伸資料基本的概念就是.在圖元中添加資料.以群組碼1000-1071範圍.定義使用者添加的資料內容.
VLIDE 編輯器內HELP ...................
acad的help>延伸資料我有看過,只是看了扔然不知道延伸資料的用途,看完shenhung大的解說後有了更深一層的認識了,多試一下應該會有新的發現。
shenhung大的解說解決了我多日來不管是acad help、翻書、google都找不到答案的疑惑,真是太強了啦~~~
awi- 一般會員
- 文章總數 : 74
年齡 : 41
來自 : 新北市
職業 : 電機技師事務所
愛好 : 新奇有趣的事物
個性 : 固執
使用年資 : 6
使用版本 : 2012
經驗值 : 4597
威望值 : 42
注冊日期 : 2013-05-03
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章