xudongchu 发表于 2024-1-12 20:24:50

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

本帖最后由 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)
)

ssyfeng 发表于 2024-1-16 09:56:33

本帖最后由 ssyfeng 于 2024-1-16 10:32 编辑


应该是这个效果:



p-3-ianlcc 发表于 2024-2-23 00:16:12

ssyfeng 发表于 2024-1-16 09:56
应该是这个效果:

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

jkop 发表于 2024-2-23 14:26:36

特殊使用条件,收藏!

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

season_88 发表于 2025-3-20 02:05:03

谢谢大师分享
页: [1]
查看完整版本: 如何点选获取多种颜色进行筛选