明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: KO你

[提问] 图层颜色修改

[复制链接]
发表于 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)
)
 楼主| 发表于 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
 楼主| 发表于 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") ...

请教一下,如果图层替代颜色修改后,怎样才能改回来原有的随层颜色呢
回复 支持 1 反对 0

使用道具 举报

发表于 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)
)
发表于 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

你这个是模型空间的吧?不是图纸空间改颜色?
发表于 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") ...

顶一个,这个真棒,如果是对话框模式就更好了,一个点颜色可修改颜色,一个按钮可以修改线型这样就更完美了
 楼主| 发表于 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

你这份是改图层的颜色,不是当前视口的图层替代颜色。
发表于 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") ...

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

为何复制下来   加载显示     "          ; 错误: 输入的列表有缺陷     "
发表于 2020-6-18 00:24:24 | 显示全部楼层
bing00 发表于 2020-6-10 13:31
为何复制下来   加载显示     "          ; 错误: 输入的列表有缺陷     "

不知道。因为上面这么多人都没有出现你的问题。你是特例。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-23 03:06 , Processed in 0.177551 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表