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
为何复制下来   加载显示   "          ; 错误: 输入的列表有缺陷   "

不知道。因为上面这么多人都没有出现你的问题。你是特例。
页: 1 [2] 3
查看完整版本: 图层颜色修改