
如何改变图层,好比如一条直线所在的图层为line,现在我想编写一个lisp将他的图层变成slap,我该用什么命
如何改变图层,好比如一条直线所在的图层为line,现在我想编写一个lisp将他的图层变成slap,我该用什么命令,这段代码该怎么写呢?...
如何改变图层,好比如一条直线所在的图层为line,现在我想编写一个lisp将他的图层变成slap,我该用什么命令,这段代码该怎么写呢?
展开
2个回答
展开全部
;更改对象的图层名
(defun c:gtcm()
(setq cm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(command "_undo" "be")
(while (setq ent (car (entsel "\n请选取要改图层的对象<回车结束>:")))
(setq dxf (entget ent)
tcm (cdr (assoc 8 dxf))
)
(if (/= (setq tcm1 (getstring (strcat "\n原图层名:\"" tcm "\", 请输入新图层名:"))) "")
(progn
(if (= (tblsearch "layer" tcm1) nil)
(command "_layer" "n" tcm1 "")
)
(entmod (subst (cons 8 tcm1) (assoc 8 dxf) dxf))
)
)
)
(command "_undo" "e")
(setvar "cmdecho" cm)
(princ)
)
(defun c:gtcm()
(setq cm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(command "_undo" "be")
(while (setq ent (car (entsel "\n请选取要改图层的对象<回车结束>:")))
(setq dxf (entget ent)
tcm (cdr (assoc 8 dxf))
)
(if (/= (setq tcm1 (getstring (strcat "\n原图层名:\"" tcm "\", 请输入新图层名:"))) "")
(progn
(if (= (tblsearch "layer" tcm1) nil)
(command "_layer" "n" tcm1 "")
)
(entmod (subst (cons 8 tcm1) (assoc 8 dxf) dxf))
)
)
)
(command "_undo" "e")
(setvar "cmdecho" cm)
(princ)
)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询