wayne wrote:
Alan兄,
為何興起學習Autolisp, 馬上問這樣有深度的題目, 以下步驟是否可以解決您的問題? 若是對的, 只要做個迴圈即可存取所有Group的名稱.
指令: (setq a1 (dictsearch (namedobjdict) "ACAD_GROUP"))
((-1 . <圖元名稱: 4006bc68>) (0 . "DICTIONARY") (5 . "D") (102 .
"{ACAD_REACTORS") (330 . <圖元名稱: 4006bc60>) (102 . "}") (330 . <圖元名稱: 4006bc60>) (100 . "AcDbDictionary") (280 . 0) (281 . 1) (3 . "ALAN") (350 . <圖元名稱: 4006bd70>) (3 . "ALAN1") (350 . <圖元名稱: 4006bd90>))
指令: (setq a2 (member (assoc 3 a1) a1))
((3 . "ALAN") (350 . <圖元名稱: 4006bd70>) (3 . "ALAN1") (350 . <圖元名稱: 4006bd90>))
指令: (cdr (nth 0 a2))
"ALAN"
指令: (cdr (nth 2 a2))
"ALAN1"
wayne wrote:
這支副程式我曾經寫過, 公佈步驟如下, 希望可以解決Alan兄的問題, 也希望大家討論有更好及更簡潔的方法.
指令: (setq b1 (ssget))
選取物件: 3 找到, 1 群組
選取物件:
<Selection set: 4a>
指令: (setq b2 (ssname b1 0))
<圖元名稱: 4006bd80>
指令: (setq b3 (assoc 330 (entget b2)))
(330 . <圖元名稱: 4006bd90>)
指令: (setq b4 (cons 350 (cdr b3)))
(350 . <圖元名稱: 4006bd90>)
指令: (setq a3 (reverse a2))
((350 . <圖元名稱: 4006bd90>) (3 . "ALAN1") (350 . <圖元名稱: 4006bd70>) (3 . "ALAN"))
指令: (setq b5 (member b4 a3))
((350 . <圖元名稱: 4006bd90>) (3 . "ALAN1") (350 . <圖元名稱: 4006bd70>) (3 . "ALAN"))
指令: (cdadr a3)
"ALAN1"
欢迎光临 iCAx开思网 (https://www.icax.org/) | Powered by Discuz! X3.3 |