如何复制源图,并只对复制图进行炸开等操作
(defun c:tz (/ ss sl i el pr dn lyr addlyr layers)(vl-load-com)
(defun addlyr (lyr)
(vla-add layers lyr)
)
(if (and (setq ss0 (ssget '((0 . "TCH_PIPE,TCH_EQUIPMENT"))))
(setq ss (ssget "p" '((0 . "TCH_PIPE")))))
(progn
(setq sl (sslength ss)
i sl
layers (vla-get-layers
(vla-get-activedocument (vlax-get-acad-object))
)
)
(repeat sl
(setq e (ssname ss (setq i (1- i)))
el(entget e)
pr(cdr (assoc 301 el))
dn(cdr (assoc 140 el))
lyr (strcat pr (rtos dn 2 0))
)
(if (tblsearch "layer" lyr)
nil
(addlyr lyr)
)
(entmod (subst (cons 8 lyr) (assoc 8 el) el))
)
)
)
(setvar "QAFLAGS" 1)
(command "_explode" ss0 "")
(command "_explode" (ssget "p" '((0 . "*Polyline")))"" )
(setvar "QAFLAGS" 0)
(princ)
)
--------------------------------------------------------------------------------------------------------------
怎么先复制“TCH_PIPE”源管线 ,并只对复制管线进行炸开等处理 ,不动TCH_PIPE源管线?
现有思路如下,抛砖引玉吧
(setq a (car (entsel)))
(entmake (entget a))
(command "_explode" (entlast))
哪位高手帮改改,谢谢!!
你把复制出来的图块保留在原地,然后把原图移动出来炸掉,这样你就可以炸
(setq ss(ssget))
.....
(command "_.copy" ss)
.....
(command "_.move" ss)
.....
(command "_explode" ss)
页:
[1]