empire4794 发表于 2009-6-5 12:52:00

[求助]统计所选多线段封闭区域内块的数量

<p>明经里关于统计一张CAD图里面相同块(或全部块)的数量的程序已经有不少,但程序功能不是够强大。</p><p>统计块的范围不是整张图纸就是某个范围内(该范围一般只能用鼠标框选),但是,如果是大型的公建的地下室或裙楼</p><p>部分,一层有多个防火分区,而每个防火分区形状各异。如果要统计每个防火分区内某个块或全部块的数量,则相当烦琐。哪位大虾能做个统计图块数量的程序:先用多线段绘出各防火分区范围,再用统计图块的程序命令,选取统计范围时点击所选的某个多选段,就可以统计出该多线段封闭区域内图块的数量。</p><p></p>

孙海波 发表于 2020-8-19 12:32:08

sweetsea 发表于 2015-7-14 14:22
;统计封闭复线内的块。明经 ZZXXQQ 2009.6.8
(DEFUN C:TT ()
(IF (AND (SETQ S1 (ENTSEL "\nSelect a ...

(defun c:tt( )
(if(setq ss(ssget":E:S"'((0 . "INSERT"))))
(progn(setq bnm(cdr(assoc 2(entget(ssname ss 0)))))(if(and(setq s1(entsel"\n选择封闭多段线: "))(setq EN(entget(car s1)))(=(cdr(assoc 0 EN))"LWPOLYLINE")(=(cdr(assoc 70 EN))1))(progn(setq ptn'())
(foreach N EN(if(=(car N)10)(setq ptn (cons(cdr N)ptn))))(setq ss(ssget"WP"ptn(list'(0 . "INSERT") (cons 2 bnm))))))))(if ss(progn(setq nn(sslength ss))
(alert(strcat "共找到了图块""【" bnm "】"""(itoa nn)" 个"))))
(princ)
)

孙海波 发表于 2020-8-19 00:22:36

sweetsea 发表于 2015-7-14 14:22
;统计封闭复线内的块。明经 ZZXXQQ 2009.6.8
(DEFUN C:TT ()
(IF (AND (SETQ S1 (ENTSEL "\nSelect a ...

你说的对。我也需要这样的插件。最好是可以同时选择多个块,然后一起统计。

fengche1915@ 发表于 2018-9-6 15:29:29

命令: TT
选择对象:
参数类型错误: lselsetp nil

empire4794 发表于 2009-6-7 21:28:00

各位编程好手们帮帮忙啊,我顶~~~

sailorcwx 发表于 2009-6-7 23:05:00

在选择的时候输入wp或者cp就能满足你的要求了

ZZXXQQ 发表于 2009-6-8 12:57:00

本帖最后由 作者 于 2009-6-9 12:42:24 编辑


;统计封闭复线内的块。明经 ZZXXQQ 2009.6.8
(DEFUN C:TT ()
(IF (AND (SETQ S1 (ENTSEL "\nSelect a Polyline 选择多段线 :"))
          (SETQ ENT(ENTGET(CAR S1)))
          (= (CDR(ASSOC 0 ENT)) "LWPOLYLINE")
          (= (CDR(ASSOC 70 ENT)) 1)) (PROGN
(SETQ PLST (LIST))
(FOREACH N ENT (IF (= (CAR N) 10) (SETQ PLST (CONS (CDR N) PLST))))
(SETQ PLST (REVERSE PLST))
(SETQ SS (SSGET "WP" PLST '((0 . "INSERT"))))
))
(IF SS (SSLENGTH SS) 0)
)

empire4794 发表于 2009-6-8 13:22:00

<strong><font face="Verdana" color="#da2549">ZZXXQQ<font color="#000000">版主的程序有问题,加载后无任何反应哟</font></font></strong>

ZZXXQQ 发表于 2009-6-8 13:30:00

四楼改了,再试试。

ericjiang 发表于 2009-6-8 14:34:00

<p>如题,等待高手~~~</p>

yucpp 发表于 2009-6-8 20:29:00

ZZXXQQ发表于2009-6-8 12:57:00static/image/common/back.gif

<p>程序加载后如下:</p><p>[检查文字 &lt;未命名-1&gt; 正在加载...]<br/>.<br/>; 错误: 参数太少: (IF (AND ( ... ) ( ... ) ( ... ) ... ))<br/>.<br/>; 错误: 输入中含有多余的闭括号<br/>; 检查完成.<br/>&nbsp;程序还有错误</p>

jaminth 发表于 2009-6-8 20:58:00

;统计封闭复线内的块。明经 ZZXXQQ 2009.6.8
(DEFUN C:TT ()
(IF (AND (SETQ S1 (ENTSEL "\nSelect a Polyline 选择多段线 :"))
         (SETQ ENT(ENTGET(CAR S1)))
         (= (CDR(ASSOC 0 ENT)) "LWPOLYLINE")
         (= (CDR(ASSOC 70 ENT)) 1))(PROGN
   (SETQ PLST (LIST))
   (FOREACH N ENT (IF (= (CAR N) 10) (SETQ PLST (CONS (CDR N) PLST))))
   (SETQ PLST (REVERSE PLST))
   (SETQ SS (SSGET "WP" PLST '((0 . "INSERT"))))
))
(IF SS (SSLENGTH SS) 0)
)

empire4794 发表于 2009-6-8 21:42:00

程序加载后提示选择多段线,选择多段线后又无任何反应了。程序还有问题。
页: [1] 2 3 4
查看完整版本: [求助]统计所选多线段封闭区域内块的数量