明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2522|回复: 6

[基础] [求助]统计图纸中相同对象的个数

[复制链接]
发表于 2009-10-8 20:01:00 | 显示全部楼层 |阅读模式

首先谢谢龙龙仔版主和jaminth

现在能够选择和统计块参照了,如果我想统计相同内容的文字,相同大小的圆等,又该如何改呢?因为我们在图上做预算时经常用到。先谢谢了。

(defun c:CalBlk( / ent ents blkname)
    (setq ent (car (entsel)))
    (if ent
      (progn
        (setq ents (entget ent))
        (if (= (cdr (assoc 0 ents)) "INSERT")
   (progn
     (setq blkname (cdr (assoc 2 ents)))
     (princ (strcat "\n块名:" blkname "," "数量:"))
     (princ (sslength (setq ss (ssget "x" (list '(0 . "INSERT") (cons 2 blkname))))))
   )
        )
     (sssetfirst gripset ss)
      )
    )
    (princ)
)
(prompt "Enter CALBLK to launch the program!")

发表于 2009-10-8 20:07:00 | 显示全部楼层
filter过滤器命令就可以很方便的达到要求了。
发表于 2009-10-8 20:40:00 | 显示全部楼层
2楼说得没错。如果全部依赖程序来实现,有就点本末倒置,对不起Autocad强大的过滤器了。建议楼主多了解、多用过滤器!
发表于 2009-10-8 20:57:00 | 显示全部楼层

选取相同大小的圆

(sssetfirst gripset (ssget "x" (list '(0 . "CIRCLE")'(40 . 120))));;红色为半径值

选取相同内容的文字

(sssetfirst gripset (ssget "x" (list '(0 . "*TEXT")'(1 . "文字"))));;红色为文字

 楼主| 发表于 2009-10-8 21:19:00 | 显示全部楼层

用过滤器永远没有用命令来得快哈。。。比如说哈我执行命令后,然后直接点取一个文字,就可以直接选中所有相同的文字。请问如何加到以上的程序里面。。

就跟以上块统计的一样,执行命令后,选取一个块,然后所有的块就选中了。。

用过滤器和快速选择都能够达到这个功能,但有出话框的出现,始终是慢了一些。。。

我们在做预算的时候经常遇到,比如所有的插座是一个相同的块,不同的是在不同的类型的插座上面标了一个不同的文字,我就是想要快速的统计这些文字。因为这个功能做预算经常遇到起,所以要节约很多时间哈。

 楼主| 发表于 2009-10-8 21:26:00 | 显示全部楼层
另,再请教一下, blkname是提取块的名字,那么块的属性又是什么呢?
发表于 2009-10-13 05:06:00 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 09:46 , Processed in 0.186226 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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