请高手帮忙,编一个按图层拆分图形的代码
本帖最后由 jcmtxgt 于 2024-5-26 13:50 编辑工作中经常会遇到,把一个图形里面的图层移开来进行操作,图层多的比较繁复。
能不能实现一个功能,框选之后直接按图层拆分,把各个图层的实体分别移开,并且在图的右上角留下一个直线作为基准点,方便操作后再移回原位。
在明经找的一段代码,不知道对编程是否有帮助,先行谢过
根据图层名称拆分选择集SS
(defun K:SSplit4Lay (SS / EntLst en Tmp LayLst Lay LayEnts)
(defun LM:ss->ent (SS / i Lst)
(if SS
(repeat (setq i (sslength SS))
(setq Lst (cons (ssname SS (setq i (1- i))) Lst))
)
)
);б by Lee Mac
(setq EntLst (LM:ss->ent SS))
(foreach en EntLst
(setq Tmp (cdr (assoc 8 (entget en))))
(if (not (member Tmp LayLst))
(setq LayLst (cons Tmp LayLst))
)
);
(foreach Lay LayLst
(setq Tmp '())
(foreach en EntLst
(if (eq (strcase Lay) (strcase (cdr (assoc 8 (entget en)))))
(setq Tmp (cons en Tmp))
)
)
(setq LayEnts (cons (cons Lay Tmp) LayEnts))
)
(reverse LayEnts)
)
о
(K:SSplit4Lay SS) => (("Lay1" en1 en2 ... en_i) ("Lay2" en4 en5 en6 ...en_j)....)
上图档说明
页:
[1]