可以
拼凑在一起的一堆代码
- (defun c:DoAll (/ ln aDoc blknme bSetss i e)
- (vl-load-com)
- (setq ln "YourLayer")
- (setq aDoc (vla-get-activedocument (vlax-get-acad-object)))
- (while
- (setq a (tblnext "BLOCK" (null a)))
- (setq blknme (vla-item
- (vla-get-blocks aDoc)
- (cdr (assoc 2 a))))
- (vla-put-Explodable blknme :vlax-true)
- (vlax-for
- itm
- blknme
- (vla-put-color itm acByLayer)
- (vla-put-linetype itm "ByLayer")
- (vla-put-lineweight itm -1)))
- (while
- (setq bSet (ssget "_X" '((0 . "INSERT") (410 . "MODEL"))))
- (command "_.explode" bSet)
- )
- (if (setq ss (ssget "_X" '((8 . "0"))))
- (repeat (setq i (sslength ss))
- (entmod (subst (cons 8 ln)
- (assoc 8
- (setq e (entget
- (ssname
- ss
- (setq i (1- i))))))
- e))
- )
- )
- (repeat 4
- (vla-purgeall aDoc)
- )
- (princ)
- )
编辑:修改为考虑不可变形块图元 |