做了一个改图层的命令,选择对象改到指定图层
感觉没啥大用处,也许图层比较多,又懒得找可以试试这个,或者自己做了工具箱这个可以方便集成进去。
(defun C:GTC()
(vl-load-com)
(print "\n请选择需要转换图层的对象:")
(setq ss (ssget))
(setq xx nil T_Nil t)
(while (eq t T_Nil)
(setq xx (getstring "\n输入图层名字:"))
(setq T_Nil (null (tblsearch "layer" xx)))
)
(setq n (sslength ss))
(setq i 0)
(while (< i n)
(setq ent (ssname ss i))
(setq obj (vlax-ename->vla-object ent))
(vla-put-Layer obj xx)
(setq ent nil)
(setq obj nil)
(setq i (+ i 1)))
(princ))
谢谢分享 。 下载试试 Thanks for sharing :* 谢谢分享 。 下载试试 (command "layer" "set" (cdr (assoc 8 (entget (car (entsel))))))直接将对象设为当前图层 还不错,如能加上先选择对象,再输入图层就更好了 k1nger 发表于 2021-3-23 17:13
(command "layer" "set" (cdr (assoc 8 (entget (car (entsel))))))直接将对象设为当前图层
这个命令要是能指定图层(不一定是当前图层)就简单明了 定义两个变量,赋下值就可以 (defun c:ccM (/ ss ent layr)
(princ "\移动到层目标层")
(setq ent (Cdr(Assoc 8 (Entget (Car(Entsel))))))
(setq ss (ssget))
(if ss
(progn
(vl-cmdf "CHANGE" ss "" "P" "LA" ent "");"WEDM"
)
)
(princ)
) 2496653555 发表于 2021-8-13 11:04
(defun c:ccM (/ ss ent layr)
(princ "\移动到层目标层")
(setq ent (Cdr(Assoc 8 (Entget (Car(Entsel) ...
(vl-cmdf "CHANGE" (ssget) "" "P" "LA" (Cdr(Assoc 8 (Entget (Car(Entsel))))))"") 这样应该也可以
页:
[1]