乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 88|回复: 4

[综合讨论] 将选定对象的颜色设置为

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-7 12:50:11 | 显示全部楼层 |阅读模式
你好
 
关于分配颜色的快速问题。
有没有一种简单的方法来选择多个对象(我指的是直线、多段线、块……)它们位于不同的图层上,颜色设置为“ByLayer”,并为它们指定当前所在图层的索引颜色,这样我最终可以将它们全部放在同一图层上,但使用原始配色方案。
 
基本上,我在a层(蓝色)上有一条线,在B层(红色)上有另一条线,这两条线都有它们所在层的颜色(颜色设置为“ByLayer”),我想将这两条线都设置在C层(绿色),但要使它们保持其原始颜色,蓝色和红色。
 
这背后的原因是我经常需要在我的图形中导入参考工作,最终我从这些其他图形中获得数百个不必要的层,因此我想将所有这些外部参考设置为一个层,但保留颜色方案。
 
也许我处理这个问题的方式不对,所以我愿意接受一些建议,保持我的绘图和图层干净,便于使用。
 
谢谢
回复

使用道具 举报

2

主题

266

帖子

265

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-7 13:18:26 | 显示全部楼层
我的另一个建议是,由于(我假设)您可以更改外部参照图形,因此可以更改它们的名称,使它们都以字母z开头。这样,所有这些图层名称都会下降到列表的末尾,因此您感兴趣的图层名称会分组在顶部。
 
不确定如何在多个图层中将“ByLayer”更改为实际颜色(除非涉及代码),但在一个图层上就足够容易了。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-7 13:31:28 | 显示全部楼层
试试这个
 
  1. ; https://www.cadtutor.net/forum/topic/73977-set-selected-objects-color-to-their-current-index-color/
  2. ; MAKE 1 LAYER BUT SAVE COLOR
  3. ; By Alanh NOV 2021
  4. (defun c:make1lay ( / laynew layers layn ss x obj col)
  5. (setq laynew (getstring "\nEnter new layer name "))
  6. (command "-la" "M" laynew "")
  7. (command "UNDO" "M")
  8. (vlax-for layers (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
  9.   (setq col (vla-get-color layers))
  10.   (setq layn (vla-get-name layers))
  11.   (if (= layn laynew)
  12.   (princ)
  13.   (progn
  14.   (setq ss (ssget "X" (list (cons 8 layn))))
  15.     (if (= ss nil)
  16.     (princ (strcat "\nskip " layn))
  17.     (repeat (setq x (sslength ss))
  18.       (setq obj (vlax-ename->vla-object (ssname ss (setq x (- x 1)))))
  19.       (if (vlax-property-available-p obj 'layer)
  20.         (vlax-put-property obj 'Layer laynew)
  21.       )
  22.           (if (vlax-property-available-p obj 'color)
  23.         (vlax-put-property obj 'color col)
  24.           )
  25.     )
  26.     )
  27.   )
  28.   )
  29. )
  30. )
  31. (c:make1lay)
回复

使用道具 举报

17

主题

1274

帖子

25

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2022-7-7 13:35:16 | 显示全部楼层
与其修改图形,为什么不使用图层过滤器控制图层特性管理器中显示的图层?
查看此链接:https://cadtips.cadalyst.com/layer-tools/create-filter-all-layers-except-xref-layer?q=layer-工具/创建过滤除外部参照图层外的所有图层
我们的Civil 3D模板本身有大约200个层,因此我使用lisp加载了一组层过滤器,以控制我当时使用的任何工作流的可见层。
快速、简单且易于管理。
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-7 13:56:01 | 显示全部楼层
谢谢大家的帮助!
 
这给了我一个很好的起点来获得我想要的。
我将花时间学习AutoLISP的基础知识,看看是否可以进行必要的更改,使其仅在选择对象的情况下工作。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-9 09:02 , Processed in 0.506949 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表