AutoCAD LISP 獲取圖塊中物件列表

主要程式碼:
(defun ax:GetBlockSubEnts  (blkref / blkdef lst c)
    (setq blkref (vlax-ename->vla-object blkref))
    (if (= (vla-get-objectname blkref) "AcDbBlockReference")
 (progn
     (setq blkdef (vla-item
        (vla-get-blocks
     (vla-get-activedocument
         (vlax-get-acad-object))
     )
        (vla-get-name blkref)
        )
    c  0
    )
     (repeat (vla-get-count blkdef)
  (setq lst (cons (vlax-vla-object->ename
        (vla-item blkdef c))
    lst)
        c   (1+ c)
        )
  )
     )
 )
    (reverse lst)
    )

如何使用:
(AX:GETBLOCKSUBENTS (car(entsel)))

回傳:
(<圖元名稱: 7ff6b27c4ef0> <圖元名稱: 7ff6b27c4f00> <圖元名稱: 7ff6b27c4f10>)

程式碼來源網址


留言

這個網誌中的熱門文章

AutoCAD 填充線(剖面線)樣式簡易製作產生器

AutoCAD 如何自訂線型教學

AutoCAD 動態圖塊-如何在所有可見性顯示或隱藏