更改选定外部参照的颜色
大家好,我正在寻找一个代码,允许我选择外部参照的对象,并要求我更改图层颜色。
现在我找到了下面的代码。。。
(defun c:ChangeLayerColor (/ Sel EntList DataList cnt Num ClrNum EntData)
(if (setq Sel (nentsel "\n Select object to change layers color: "))
(progn
(if (> (length Sel) 2)
(setq EntList (cons (car Sel) (last Sel)))
(setq EntList (cons (car Sel) EntList))
)
(setq DataList
(mapcar
'(lambda (x / EntData)
(setq EntData (entget x))
(cons (cdr (assoc 0 EntData)) (cdr (assoc 8 EntData)))
)
EntList
)
)
(setq cnt 0)
(textscr)
(prompt "\n Select number of layer to change color: ")
(foreach lst DataList
(prompt (strcat "\n " (itoa cnt) " - " (cdr lst) " - Object [ " (car lst) " ]"))
(setq cnt (1+ cnt))
)
(while
(and
(not (setq Num (getint (strcat "\n Select number between 0 - " (itoa (1- cnt)) ": "))))
(not (< 0 Num (1- cnt)))
)
)
(graphscr)
(if (and Num (setq ClrNum (acad_colordlg 253)))
(progn
(setq EntData (entget (tblobjname "Layer" (cdr (nth Num DataList)))))
(entmod
(subst
(cons 62 ClrNum)
(assoc 62 EntData)
EntData
)
)
(command "_.Regen")
)
)
)
)
(princ)
)
但这会获取选定对象的所有对象。。。因此,如果我选择一个块,它会得到“XREF”层、块层、块层中的图案填充等。。我需要给一个我想换的号码。
该代码是否可以精简,以便立即更改选定对象层的颜色。因此,当我选择外部参照的块时,它会更改块所在的图层。
而且此代码仅允许索引颜色。。。如何添加真彩色?
提前感谢:-) 我无法帮助您使用lisp,但您可能对系统变量VISRETAIN感兴趣。
嘿,爸爸,
Visretain与我的“问题”完全无关
也许我错了。
我的印象是,通过将VISRETAIN设置更改为0,基本上可以覆盖原始外部图形的图层表中定义的图层颜色,并且新图层颜色将保存在新图形的图层表中。
如果不是这样的话,我很抱歉。
你好很抱歉将你的帖子坏死。但我刚加入论坛。
我找到了这些,它们适合我的需要。
我不记得我是否修改了它们。
我有几个其他的和我自己的几个,但这些应该做你想要的。
我不能帮你使用真彩色,因为我做的事情通常不允许使用真彩色。
使用颜色输入选择多个
(defun c:CHCOL (/ ncol ent lst)
(while (setq ent (car (nentsel "\nSelect enity on layer: ")))
(princ (setq ent (cdr (assoc 8 (entget ent)))))
(setq lst (cons ent lst)))
(setq ncol (getint "\nEnter index color number: "))
(and lst
(mapcar '(lambda (x)
(setq ent (entget (tblobjname "layer" x)))
(entmod (subst (cons 62 ncol) (assoc 62 ent) ent)))
lst))
(vla-regen (vla-get-activedocument (vlax-get-acad-object)) 1))
(vl-load-com)
选择一个,然后使用菜单选择颜色
(defun C:CHCOLPICK (/ lay col)
(setq
lay (cdr (assoc 8 (entget (car (nentsel "\nObject on Layer to assign color to: ")))))
col (acad_colordlg (cdr (assoc 62 (tblsearch "layer" lay))) nil)
)
(command "_.layer" "_color" col lay "")
(princ)
)
干杯
木瓜
VISRETAIN与计算器上的“重置”按钮非常相似,但适用于外部参照图层。
将所有图层替代设置回外部参照中存储的内容。
干杯
木瓜
页:
[1]