完全炸开图块
codebegin@
(progn
(defun SINGLE_SEL(enttype message loop / *error* ent inf)
(defun *error* (msg) (princ))
(while (if (setq ent (car (entsel (strcat "\n请选择" message ":"))))
(progn
(setq inf (strcat "\n所选对象不是" message ",请重新选择。"))
(not (wcmatch (cdr (assoc 0 (entget ent))) enttype))
)
(if loop (progn (setq inf "\n未选择对象,请重新选择。") loop) loop)
)
(princ inf)
)
(if ent ent)
)
(defun c:xx( / AcadObject AcadDocument blocks ent obj blk_name loop1)
(VL-LOAD-COM)
(setq AcadObject (vlax-get-acad-object)
AcadDocument (vla-get-ActiveDocument AcadObject)
blocks (vla-get-blocks Acaddocument)
)
(while (setq ent (SINGLE_SEL "INSERT" "图块" nil))
(setq obj (vlax-ename->vla-object ent))
(setq blk_name (vla-get-effectivename obj))
(while
(progn
(setq loop1 nil)
(vlax-for item (vlax-invoke-method blocks 'Item blk_name)
(if (= (vla-get-objectname item) "AcDbBlockReference")
(progn
(setq sss item)
(if (vlax-invoke-method item 'Explode)
(progn
(vla-explode item)
(vla-delete item)
(setq loop1 t)
)
)
)
)
)
(vla-update obj)
(if loop1 t nil)
)
)
(princ "\n已分解图块内所有块对象")
)
(princ)
))
@codeend

浙公网安备 33010602011771号