明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 767|回复: 9

[提问] 怎样统计选择集内块的数量

[复制链接]
发表于 2022-5-14 10:33 | 显示全部楼层 |阅读模式
我通过ssget生成一个选择集,这个选择集不一定是通过框选获得的,现在要在这个选择集里不断统计各种指定的块的数量,貌似不能用sslength来获得,有什么好的思路吗?


发表于 2022-5-14 10:41 | 显示全部楼层
  (setq ss (ssget ":N"
                      (list (cons 0 "insert")
                            (cons 2 块名)
                      )
               )
      )
其中,块名,字符串
 楼主| 发表于 2022-5-14 11:04 | 显示全部楼层
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 | 显示全部楼层
(vl-cmdf "_.select" ss "")
(ssget "p" '((0 . "insert"));得到块选择集
 楼主| 发表于 2022-5-14 11: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:20 | 显示全部楼层
(command "select" ss "")
(ssget "p" '((0 . "insert") (2 . "指定块名1"))
(command "select" ss "")
(ssget "p" '((0 . "insert") (2 . "指定块名2"))
......
 楼主| 发表于 2022-5-14 11:24 | 显示全部楼层
自贡黄明儒 发表于 2022-5-14 11:04
(vl-cmdf "_.select" ss "")
(ssget "p" '((0 . "insert"));得到块选择集

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

点评

先(setq ss (ssget))后(vl-cmdf "_.select" ss "")  发表于 2022-5-14 11:38
发表于 2022-5-14 12:19 | 显示全部楼层
(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))))
  )
)
发表于 2022-5-16 19:53 来自手机 | 显示全部楼层
看大神们写了这么多,都是针对于普通块的吧,那如果是选择动态块呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 18:05 , Processed in 4.036099 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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