求一键炸开图中所有动态块
求一键炸开图中所有动态块,并提示炸开了多少个动态块,如果没有动态块则提示没有动态块,谢谢!本帖最后由 鱼与熊掌 于 2015-11-18 21:46 编辑
(defun c:tt(/ *acad* *doc* *docs* *ms* cx-isdynamic i)
(defun cx-Isdynamic ( obj)
(and (vlax-property-available-p obj 'isdynamicblock)
(= :vlax-true (vla-get-isdynamicblock obj))
)
)
(vl-load-com)
(setq
*ACAD*(vlax-get-acad-object)
*DOC* (vla-get-ActiveDocument *ACAD*)
*DOCS*(vla-get-Documents *ACAD*)
*MS* (vla-get-modelSpace *DOC*)
)
(setq i 0)
(vlax-for x *MS*
(if (cx-Isdynamic x)
(progn
(vla-Explode x)
(vla-Delete x)
(setq i(1+ i))
)
)
)
(if(> i 0)
(alert(strcat "一共炸开" (itoa i) "个动态块."))
(alert"无动态块.")
)
(princ)
) 鱼与熊掌 发表于 2015-11-18 21:30 static/image/common/back.gif
非常好!能把提示改成命令行形式的吗?不想去点那个提示框,还有图纸比较大(有几百个动态块)的时候运行等待时间稍长 theisland 发表于 2015-11-18 22:04 static/image/common/back.gif
非常好!能把提示改成命令行形式的吗?不想去点那个提示框,还有图纸比较大(有几百个动态块)的时候运行 ...
Alert改成prompt 鱼与熊掌 发表于 2015-11-19 11:59 static/image/common/back.gif
Alert改成prompt
搞定,谢谢! 鱼与熊掌 发表于 2015-11-19 11:59 static/image/common/back.gif
Alert改成prompt
朋友,如果我有部分动态块不想炸开怎么办呢?比如图中有名为“动态块1”、“动态块2”、“动态块3”的动态块(这3个动态块里面都有可见性参数)不需要炸开,其他大部分都是要炸开的该怎么改?
页:
[1]