How would you change this code to the opposite i.e. stop allowing blocks from being exploded
this code ALLOWS Exploding...
(defun c:Witlof_Allow_Block_Explode ()
(vl-load-com)
(vlax-for b (vla-get-Blocks
(vla-get-ActiveDocument (vlax-get-acad-object))
)
(or (wcmatch (vla-get-Name b) "`**_Space*")
(vla-put-explodable b :vlax-true)
)
)
(princ)
)
I tried changing it to the below but this didn't work...
(defun c:Witlof_Allow_Block_Explode ()
(vl-load-com)
(vlax-for b (vla-get-Blocks
(vla-get-ActiveDocument (vlax-get-acad-object))
)
(or (wcmatch (vla-get-Name b) "`**_Space*")
(vla-put-explodable b :vlax-false)
)
)
(princ)
)
Something like this - Untested 😀
Moshe
(vl-load-com)
(defun c:Witlof_Allow_Block_Explode (/ AcDbBlkRefRec bname)
(vlax-for AcDbBlkTablRec (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq bname (vla-get-name AcDbBlkTablRec))
(if (and
(not (eq (vla-get-islayout AcDbBlkTablRec) :vlax-true))
(not (eq (vla-get-isXref AcDbBlkTablRec) :vlax-true))
(not (wcmatch bname "`*Model_Space,`*Paper_Space,`*Paper_Space0"))
)
(vla-put-explodable AcDbBlkTablRec :vlax-false) ; disable explode
); if
(vlax-release-object AcDbBlkTblRec)
); vlax-for
(princ)
)