明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 485|回复: 2

[提问] 求一个含关键词的图层改色

[复制链接]
发表于 2021-8-14 20:53 | 显示全部楼层 |阅读模式
20明经币
现在设计院的图层太多了,图层能整到几百上千个,改图层颜色太反锁了,哪位老师能否帮忙写个将带关键词的图层改色,关键词不用区分大小写,但关键词可能有前缀,或有后缀,或前后缀均有。比如将图层含有Hdrl的关键词改为11号色,
图层含windows的关键词改为4号色,
图层含Dims的关键词改为3号色,
图层含TCH的关键词改为3号色,
图层含wall的关键词改为2号色,
其余的图层均改为251号色。


最佳答案

查看完整内容

;改图层颜色 ;图层含windows的关键词改为4号色, ;图层含Dims的关键词改为3号色, ;图层含TCH的关键词改为3号色, ;图层含wall的关键词改为2号色, ;其余的图层均改为251号色。 (defun c:gtcys() (vl-load-com) (setvar "cmdecho" 0) (setq olderr *error*) (defun *error*(msg) (princ "\n发生错误了 --> ")(princ msg) (vla-EndUndoMark (vla-get-ActiveDocument (vlax-ge ...
发表于 2021-8-14 20:53 | 显示全部楼层
;改图层颜色
;图层含windows的关键词改为4号色,
;图层含Dims的关键词改为3号色,
;图层含TCH的关键词改为3号色,
;图层含wall的关键词改为2号色,
;其余的图层均改为251号色。
(defun c:gtcys()
     (vl-load-com)
     (setvar "cmdecho" 0)
     (setq olderr *error*)

     (defun *error*(msg)
         (princ "\n发生错误了 --> ")(princ msg)
         (vla-EndUndoMark (vla-get-ActiveDocument (vlax-get-acad-object)))
         (setq *error* olderr)
         (setvar "nomutt" 0)
         (setvar "cmdecho" 1)
         (princ)
     )
  
     (mapcar 'setvar xtblm '(0 0))
     (vla-StartUndoMark (vla-get-ActiveDocument (vlax-get-acad-object)))

     (setq KeyValue (list '("windows" 4)
                          '("Dims"    3)
                          '("TCH"     3)
                          '("wall"    2)
                    )
     )

     (vlax-for Layer (vla-get-layers (vla-get-ActiveDocument (vlax-get-acad-object)))
         (setq name (strcase (vlax-get-property Layer "Name") t))
         (setq pdbz nil)
         (mapcar '(lambda(sjb)
                      (mapcar 'set '(Key Value) sjb)
                      (If (wcmatch name (strcat "*" (strcase Key t) "*"))
                          (progn
                              (setq pdbz t)
                              (vlax-put-property Layer "Color" Value)
                          )
                      )
                  )
                  KeyValue
         )
         (if (= pdbz nil)
             (vlax-put-property Layer "Color" 251)
         )
     )
  
     (setq *error* olderr)
     (setvar "cmdecho" 1)
     (princ)
)
回复

使用道具 举报

 楼主| 发表于 2021-8-15 10:50 | 显示全部楼层
yshf 发表于 2021-8-14 20:53
;改图层颜色
;图层含windows的关键词改为4号色,
;图层含Dims的关键词改为3号色,

多谢!很好用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-10 05:10 , Processed in 0.150651 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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