highflybir 发表于 2007-2-8 17:46:00

【飞鸟集】轻轻松松统计块!

<P>针对目前有很多人还在用R14,而且没有装express tools工具,对过滤器的用法又不熟悉,编写了一个lisp程序,<BR>能用来统计块的数量。<BR>附件中包含了lisp程序和演示文件.<BR>用法:加载程序,运行BC ,先选择要统计的块,然后选择要统计的区域,结束后按F2显示出统计数量。</P>
<P><BR>附件中包含了lisp程序和演示文件。</P>
<P></P>
<P></P>

highflybir 发表于 2007-2-9 09:51:00

<p>另外针对很多人用天正,所以改了一下,能适合天正图块。</p><p>&nbsp;</p>

honxj 发表于 2007-3-31 22:47:00

支持楼主

howls 发表于 2007-4-1 11:27:00

<p>谢谢LZ共享代码。 </p><p>顺便向LZ请教一下: </p><p>1、如何才能得到当前图层的所有块数目</p><p>2、如何从当前图层得到 已知块名的块</p><p>我是个lisp的初学者,为这两个问题困扰了2个星期,查资料、翻书、摸索代码、在论坛上找相关解决方案都没有成功。 还请版主不吝赐教。 万分感谢!</p>

Andyhon 发表于 2007-4-1 11:56:00

&nbsp; (if (setq ss1 (ssget '((0 . "INSERT"))))<br/>&nbsp;&nbsp; ;; 指定图层&nbsp; <br/>&nbsp;&nbsp; ;; (setq ss1 (ssget "X" (list '(0 . "INSERT") (cons 8 "YourLayerName"))))<br/>&nbsp;&nbsp; ;; ie: (setq ss1 (ssget "X" (list '(0 . "INSERT") (cons 8 "Dim"))))<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; ;; 当前图层 = (getvar "Clayer") + 已知块名 (BlockName需改成真实块名)<br/>&nbsp;&nbsp; ;; (setq ss1 (ssget "X" (list '(0 . "INSERT") (cons 8 (getvar "Clayer")) (cons 2 "BlockName"))))<br/>&nbsp; <br/>&nbsp;&nbsp; ;; (ssget "X" (list... ==&gt; 全图滤取<br/>&nbsp;&nbsp; ;; (ssget (list... ==&gt; User 选取

howls 发表于 2007-4-1 13:35:00

<p>谢谢楼上的大侠,受益菲浅。 </p><p>谢谢!</p>

无痕 发表于 2007-4-2 20:49:00

本帖最后由 作者 于 2007-4-2 20:52:53 编辑 <br /><br /> <p>&nbsp;</p>

无痕 发表于 2007-4-2 22:01:00

本帖最后由 作者 于 2007-4-2 22:04:52 编辑

;| Bss = 统计块数量(支持天正块,斯维尔门窗块) ---ok!--by lxx.2007.3|;
(defun c:Bss (/ ss n nam nams end ent)
(princ " 回车全选!")
(or (setq ss (ssget '((0 . "*INSERT,*OPENING"))))
      (setq ss (ssget "x" '((0 . "*INSERT,*OPENING"))))
)
(mapcar 'princ (list "共选中"(sslength ss)"个实体"))
(setq n (sslength ss))
(repeat n
    (setq n (1- n)
   ent (entget(ssname ss n))
          nam (read (strcat (cdr(assoc 0 ent)) ":" (cdr(assoc 2 ent)))))
    (if (eval nam)
      (set nam (1+ (eval nam)))
      (progn (set nam 1)
      (setq nams (cons nam nams))
      )
    )
)
(setq end (mapcar 'cons nams (mapcar 'eval nams)))
(mapcar (function (lambda (x) (set x nil))) nams)
(MAPCAR 'PRINT end)
(PRINC)
)
测试效果:命令: bss
回车全选!
选择对象:
共选中35个实体
(INSERT:$建筑平面$00000477 . 5)
(INSERT:$建筑平面$00000435 . 3)
(SWR_BLOCK_INSERT:$TOILET$00000016 . 9)
(SWR_OPENING:$ARCHSYS$DOOR3D . 4)
(SWR_OPENING:$ARCHSYS$WIN3D . 4)
(INSERT:AVE_GLOBAL . 1)
(INSERT:AVE_RENDER . 8)
(INSERT:AR3_INFO . 1)

weidesign669 发表于 2008-5-26 16:52:00

<p>能不能统计在表格里麻烦编一下,太谢谢</p><p></p>

weidesign669 发表于 2008-5-27 13:03:00

<p>能不能统计在表格里麻烦编一下,太谢谢</p>
页: [1] 2
查看完整版本: 【飞鸟集】轻轻松松统计块!