图块统计
本帖最后由 leeli 于 2015-10-20 21:58 编辑请帮我统计用pl线连接的各种图块的名称及个数,要求 选择一段pl线后 统计连在一起的图块,pl线被打断(断开距离500),分支的情况下 后面的也能统计进去 谢谢
;统计PL线上的指定块 明经 ZZXXQQ 2015.10.23
(defun c:tt ()
(setvar "CMDECHO" 0)
(setq ss1 (ssadd))
(if (setq ss (ssget ":E:S" '((0 . "INSERT")))) (progn
(setq bnm (assoc 2 (entget(ssname ss 0))))
(if (and (princ "选择线条: ") (setq ss (ssget '((0 . "LINE,LWPOLYLINE"))))) (progn
(repeat (setq i (sslength ss))
(setq ent (entget(ssname ss (setq i (1- i)))))
(setq ptlst (list))
(if (= (cdr(assoc 0 ent)) "LINE")
(setq ptlst (list (cdr(assoc 10 ent)) (cdr(assoc 11 ent))))
(foreach x ent (if (= (car x) 10) (setq ptlst (cons (cdr x) ptlst))))
)
(setq ss2 (ssget "F" ptlst (list '(0 . "INSERT") bnm)))
(command "SELECT" ss1 ss2 "")
(setq ss1 (ssget "P"))
)
(princ (strcat "块 " (cdr bnm) " 数量为 " (itoa (sslength ss1))))
))
))
(setvar "CMDECHO" 1)
(princ)
)
;统计PL线上的块 明经 ZZXXQQ 2015.9.23
(defun c:tt ()
(setvar "CMDECHO" 0)
(setq ss1 (ssadd))
(if (setq ss (ssget '((0 . "LWPOLYLINE")))) (progn
(repeat (setq i (sslength ss))
(setq ent (entget(ssname ss (setq i (1- i)))))
(setq ptlst (list))
(foreach x ent (if (= (car x) 10) (setq ptlst (cons (cdr x) ptlst))))
(setq ss2 (ssget "F" ptlst '((0 . "INSERT"))))
(command "SELECT" ss1 ss2 "")
(setq ss1 (ssget "P"))
)
(setq blst (list))
(repeat (setq i (sslength ss1))
(setq ent (entget(ssname ss1 (setq i (1- i)))))
(setq bn (cdr(assoc 2 ent)))
(if (assoc bn blst)
(setq blst (subst (cons bn (1+ (cdr(assoc bn blst)))) (assoc bn blst) blst))
(setq blst (cons (cons bn 1) blst))
)
)
(foreach x blst (princ (strcat "\n" (car x) " 数量为 " (itoa (cdr x)))))
))
(setvar "CMDECHO" 1)
(princ)
)
ZZXXQQ 发表于 2015-9-23 14:07 static/image/common/back.gif
大侠你的好像只能计算到一根pl线的后面的就不行了 本帖最后由 leeli 于 2015-10-15 23:57 编辑
ZZXXQQ 发表于 2015-9-23 14:07 static/image/common/back.gif
选择最左边多段线后 标a的就要统计进去 标b和c的不要统计进去
麻烦大侠了
没人回答是不是币少了啊?
下面回答的我也加币!可以提价格! 顶一下 永远在等 线都被打断了,目测无法实现你的要求 伪书虫86 发表于 2015-10-16 08:26 static/image/common/back.gif
线都被打断了,目测无法实现你的要求
假设可以保证断开距离为500呢? leeli 发表于 2015-10-16 17:19 static/image/common/back.gif
假设可以保证断开距离为500呢?
额,目测不是一般的复杂,坐等大师来解决
页:
[1]
2