通过se更改ByLayer的颜色
是否有人拥有lisp,允许我在图形中选择实体,并且该层的bylayer颜色将更改为253。我有很多灰显的事情要做,而不是通过层列表,我认为这可能更容易。 (defun c:test ( / el i la ls ss )(if (setq ss (ssget))
(repeat (setq i (sslength ss))
(if (not (member (setq la (cdr (assoc 8 (entget (ssname ss (setq i (1- i))))))) ls))
(progn
(setq el (entget (tblobjname "LAYER" la))
ls (cons la ls)
)
(entmod (subst (cons 62 253) (assoc 62 el) el))
)
)
)
)
(princ)
)
或单个:
(defun c:test ( / e )
(and
(setq e (car (entsel)))
(setq e (entget (tblobjname "LAYER" (cdr (assoc 8 (entget e))))))
(entmod (subst (cons 62 253) (assoc 62 e) e))
)
(princ)
) 我两个都试过了,但似乎都不管用。 你在使用它们后重新生成了吗? 是的,试过了,但没有乐趣。
这是一个简单的代码,不会有太多的问题-你的图层颜色没有被改变吗? 不。它让我可以选择一些东西,但什么也没有发生。颜色保持不变,项目设置为“bylayer”。
对象是否嵌套在块中? 不,等等。我选择了hatch,它不适用于那个,但它适用于线条。我的错。 奇怪的它在我的2011年完美地工作(甚至使用图案填充)。
编辑:轻微修改李的代码
(setq *SetLayerColor* 253)
(defun c:SetLayerColor (/ e c)
(if (setq c (acad_colordlg *SetLayerColor* nil))
(setq *SetLayerColor* c)
)
(while (and
c
(setq e (car (entsel "\nPick entity on layer (Enter to stop): ")))
(setq e (entget (tblobjname "LAYER" (cdr (assoc 8 (entget e))))))
)
(entmod (subst (cons 62 c) (assoc 62 e) e))
)
(princ)
)允许选择不同的颜色,并且与LayFrz“类似”。如果希望它在嵌套实体上工作,请将entsel更改为entsel。
页:
[1]
2