 - (defun listblockent (name / l blkdef atts)
- (if (not
- (VL-CATCH-ALL-ERROR-P
- (setq
- blkdef (VL-CATCH-ALL-APPLY
- 'vla-item
- (list
- (vla-get-blocks
- (vla-get-ActiveDocument (vlax-get-acad-object))
- )
- name
- )
- )
- )
- )
- )
- (vlax-for o blkdef
- (cond
- ((or (= "AcDbBlockReference" (vla-get-objectname o))
- (= "AcDbMInsertBlock" (vla-get-objectname o))
- )
- ;(setq l (cons (vlax-vla-object->ename o) l)) ;_ 嵌套块对象
- (setq atts (vlax-invoke o 'GetAttributes))
- (foreach a atts
- (setq l (cons (vlax-vla-object->ename a) l))
- )
- (setq l (append (listblockent (vla-get-name o)) l))
- )
- (t
- (setq l (cons (vlax-vla-object->ename o) l))
- )
- )
- )
- )
- l
- )
|