明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1023|回复: 5

如何点选获取多种颜色进行筛选

[复制链接]
发表于 2024-1-12 20:24:50 | 显示全部楼层 |阅读模式
5明经币
本帖最后由 xudongchu 于 2024-1-15 12:49 编辑

此程序只能点选一种颜色进行筛选,请问如何连续点选获取多种颜色进行筛选?

;按颜色选择
(defun c:tt ()
  (defun GetCo (s0 / a la co en)
    (setq en (entget s0))
    (if (setq a (assoc 62 en)) (cdr a) (cdr (assoc 62 (tblsearch "layer" (cdr (assoc 8 en))))) )
  )
  (if
                (progn (setq s0 (car (entsel "\n请选过滤颜色对象: "))) (redraw s0 3) (setq ss1 (ssget)) )
    (progn
                        (setq co (GetCo s0) ss (ssadd) i  -1)
      (while (setq s1 (ssname ss1 (setq i (1+ i)))) (if (= (GetCo s1) co) (ssadd s1 ss)) )
      (sssetfirst nil ss)
      (princ (strcat "\n已选择" (itoa (sslength ss)) "个对象"))
    )
  )
  (princ)
)

发表于 2024-1-16 09:56:33 | 显示全部楼层
本帖最后由 ssyfeng 于 2024-1-16 10:32 编辑


应该是这个效果:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2024-2-23 00:16:12 | 显示全部楼层
ssyfeng 发表于 2024-1-16 09:56
应该是这个效果:

谢谢分享!
这个满实用的…
回复

使用道具 举报

发表于 2024-2-23 14:26:36 | 显示全部楼层
特殊使用条件,收藏!
回复

使用道具 举报

发表于 2024-3-20 17:27:41 | 显示全部楼层
ssyfeng 发表于 2024-1-16 09:56
应该是这个效果:

很不错的程序   谢谢ssyfeng共享
回复

使用道具 举报

发表于 2024-8-11 16:19:40 | 显示全部楼层
(defun c:tt6 (/ a b en len s0 ss ss1 tucys x ys yslst)
        (defun tucys (en)
                (setq tuc (vla-get-Layer (vlax-ename->vla-object en)));图层               
                (setq ys (vla-get-Color (vlax-ename->vla-object en)));颜色               
        )
        (setq yslst nil ss1 (ssadd))
        (while (setq s0 (car (entsel "\n请选过滤颜色对象: ")))
                (redraw s0 3)
                (tucys s0)       
                (setq yslst (cons(list tuc ys) yslst))
        )       
        (setq ss (ssget))
        (repeat (setq len (sslength ss))      
                (setq s0 (ssname ss (setq len (1- len))))
                (tucys s0)
                (foreach x yslst
                        (setq a (nth 0 x) b (nth 1 x))                                               
                        (if(and(= a tuc)(= b ys))(ssadd s0 ss1))
                )
        )                       
        (sssetfirst nil ss1)
        (princ (strcat "\n已选择" (itoa (sslength ss1)) "个对象"))
        (princ)       
)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 01:04 , Processed in 0.176474 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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