wudechao
发表于 2019-5-25 12:39:40
本帖最后由 wudechao 于 2019-5-25 13:11 编辑
(defun c:vc (/ ss index lay ent ffg colour)
(setvar "cmdecho" 0)
(setq ffg (getvar "TILEMODE"))
(if (= ffg 0)
(progn
(command "_.MSPACE")
(prompt "\n请选择改变颜色物体所在的图层<退出>:")
(setq ss (ssget))
(if (/= ss nil)
(progn
(setq index 0)
(setq colour (getint "请输入要变成的颜色号<1-255>比如:/1-红/2-黄/3-绿/4-青/5-蓝/6-粉/7-白/ <7>:"))
(if (= colour nil)
(setq colour 7)
) ;_ 结束if
(repeat (sslength ss)
(setq ent (ssname ss index))
(setq lay (cdr (assoc 8 (entget ent))))
(command "_.vplayer" "C" colour lay "" "")
(setq index (+ index 1))
);_ 结束repeat
);_ 结束progn
(progn
(princ "\n未选到物体。")
);_ 结束progn
);_ 结束if
);_ 结束progn
(progn
(princ "\n请转到图纸空间再使用本命令。")
);_ 结束progn
);_ 结束if
(command "_.PSPACE")
(setvar "cmdecho" 1)
(princ)
)
KO你
发表于 2019-5-25 16:11:03
本帖最后由 KO你 于 2021-3-16 17:52 编辑
wudechao 发表于 2019-5-25 12:39
(defun c:vc (/ ss index lay ent ffg colour)
(setvar "cmdecho" 0)
(setq ffg (getvar "TILEMODE") ...
万分感谢,太完美了,这正是我想要的替代图层颜色修改
https://user.qzone.qq.com/905494034?ADUIN=905494034&ADSESSION=1615887645&ADTAG=CLIENT.QQ.5797_MyTip.0&ADPUBNO=27118&source=namecardhoverstar
KO你
发表于 2019-5-25 16:17:54
wudechao 发表于 2019-5-25 12:39
(defun c:vc (/ ss index lay ent ffg colour)
(setvar "cmdecho" 0)
(setq ffg (getvar "TILEMODE") ...
请教一下,如果图层替代颜色修改后,怎样才能改回来原有的随层颜色呢
alexmai
发表于 2019-5-25 21:20:10
(defun c:tcc (/ ent layer ent1 n)
(setvar "cmdecho" 0)
(setq ent (vlax-ename->vla-object
(car (entsel "选取要修改颜色的图层对象:"))
)
)
(while ent
(setq ent1 (vla-get-layer ent))
(setq n (acad_colordlg 8))
(setq layer (tblobjname "layer" ent1))
(setq layer (vlax-ename->vla-object layer))
(vla-put-color layer n)
(setq ent (vlax-ename->vla-object
(car (entsel "选取要继续修改颜色的图层对象:"))
)
)
)
(prin1)
)
wudechao
发表于 2019-5-25 21:23:31
alexmai 发表于 2019-5-25 21:20
(defun c:tcc (/ ent layer ent1 n)
(setvar "cmdecho" 0)
(setq ent (vlax-ename->vla-object
你这个是模型空间的吧?不是图纸空间改颜色?
lingduwx
发表于 2019-5-26 11:05:06
wudechao 发表于 2019-5-25 12:39
(defun c:vc (/ ss index lay ent ffg colour)
(setvar "cmdecho" 0)
(setq ffg (getvar "TILEMODE") ...
顶一个,这个真棒,如果是对话框模式就更好了,一个点颜色可修改颜色,一个按钮可以修改线型这样就更完美了
KO你
发表于 2019-5-26 14:32:10
本帖最后由 KO你 于 2019-5-26 14:35 编辑
alexmai 发表于 2019-5-25 21:20
(defun c:tcc (/ ent layer ent1 n)
(setvar "cmdecho" 0)
(setq ent (vlax-ename->vla-object
你这份是改图层的颜色,不是当前视口的图层替代颜色。
bing00
发表于 2020-6-10 13:30:50
wudechao 发表于 2019-5-25 12:39
(defun c:vc (/ ss index lay ent ffg colour)
(setvar "cmdecho" 0)
(setq ffg (getvar "TILEMODE") ...
为何复制下来 加载显示 " ; 错误: 输入的列表有缺陷 "
bing00
发表于 2020-6-10 13:31:06
wudechao 发表于 2019-5-25 12:39
(defun c:vc (/ ss index lay ent ffg colour)
(setvar "cmdecho" 0)
(setq ffg (getvar "TILEMODE") ...
为何复制下来 加载显示 " ; 错误: 输入的列表有缺陷 "
wudechao
发表于 2020-6-18 00:24:24
bing00 发表于 2020-6-10 13:31
为何复制下来 加载显示 " ; 错误: 输入的列表有缺陷 "
不知道。因为上面这么多人都没有出现你的问题。你是特例。