明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: ninja37

[提问] 求求各位高手帮忙改一下程序。删除黄色图元

[复制链接]
发表于 2020-5-11 23:53:21 | 显示全部楼层
随层的,层的颜色是黄色的咋
发表于 2025-2-25 05:21:49 | 显示全部楼层
谢谢大师分享
回复 支持 反对

使用道具 举报

发表于 2025-2-25 08:46:00 | 显示全部楼层
这样不能删除黄色图层上随层的对象。
(defun c:de2 (/ ss_direct ss_bylayer all_ents ent layer_name layer_color)
  ;; 删除直接颜色为黄色的对象
  (if (setq ss_direct (ssget "X" '((62 . 2))))
    (command "erase" ss_direct "")
  )

  ;; 获取所有颜色随层的对象
  (setq ss_bylayer (ssget "X" '((62 . 256))))
  (if ss_bylayer
    (progn
      (setq all_ents (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss_bylayer))))
      (foreach ent all_ents
        (setq layer_name (cdr (assoc 8 (entget ent)))) ; 获取对象所在图层名
        (setq layer_color (get_layer_color layer_name)) ; 获取图层颜色
        ;; 检查图层颜色是否为黄色(索引2或真彩色16776960)
        (if (or (= layer_color 2) (= layer_color 16776960))
          (ssadd ent ss_bylayer) ; 符合条件则保留在选择集
          (ssdel ent ss_bylayer) ; 不符合则移除
        )
      )
      ;; 删除最终筛选出的对象
      (if (> (sslength ss_bylayer) 0)
        (command "erase" ss_bylayer "")
      )
    )
  )
  (princ)
)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-4 03:33 , Processed in 0.145976 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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