54256 发表于 2022-5-14 10:33:49

怎样统计选择集内块的数量

我通过ssget生成一个选择集,这个选择集不一定是通过框选获得的,现在要在这个选择集里不断统计各种指定的块的数量,貌似不能用sslength来获得,有什么好的思路吗?


wharan 发表于 2022-5-14 10:41:25

(setq ss (ssget ":N"
                      (list (cons 0 "insert")
                          (cons 2 块名)
                      )
             )
      )
其中,块名,字符串

54256 发表于 2022-5-14 11:04:05

wharan 发表于 2022-5-14 10:41
(setq ss (ssget ":N"
                      (list (cons 0 "insert")
                          (cons 2 块名)


ssget我只做一次,ss生成后,要分别统计20种块在ss里的数量,上面的方法貌似不行

自贡黄明儒 发表于 2022-5-14 11:04:32

(vl-cmdf "_.select" ss "")
(ssget "p" '((0 . "insert"));得到块选择集

54256 发表于 2022-5-14 11:05:22

wharan 发表于 2022-5-14 10:41
(setq ss (ssget ":N"
                      (list (cons 0 "insert")
                          (cons 2 块名)


ssget我只做一次,ss生成后,要分别统计20种块在ss里的数量,上面的方法貌似不行

start4444 发表于 2022-5-14 11:20:34

(command "select" ss "")
(ssget "p" '((0 . "insert") (2 . "指定块名1"))
(command "select" ss "")
(ssget "p" '((0 . "insert") (2 . "指定块名2"))
......

54256 发表于 2022-5-14 11:24:34

自贡黄明儒 发表于 2022-5-14 11:04
(vl-cmdf "_.select" ss "")
(ssget "p" '((0 . "insert"));得到块选择集

大师,请教一下(vl-cmdf "_.select" ss "")和(setq ss (ssget))有?什么区别

xyp1964 发表于 2022-5-14 12:19:02

(foreach bk lst-name ;块名表
(command "select" ss "")
(if (setq ss1 (ssget "p" (list '(0 . "insert") (cons 2 bk))))
    (princ (strcat "\n" bk "数量=" (itoa (sslength ss1))))
)
)

qazxswk 发表于 2022-5-16 19:53:58

看大神们写了这么多,都是针对于普通块的吧,那如果是选择动态块呢?
页: [1]
查看完整版本: 怎样统计选择集内块的数量