leeli 发表于 2015-9-23 00:22:29

图块统计

本帖最后由 leeli 于 2015-10-20 21:58 编辑

请帮我统计用pl线连接的各种图块的名称及个数,要求 选择一段pl线后 统计连在一起的图块,pl线被打断(断开距离500),分支的情况下 后面的也能统计进去 谢谢

ZZXXQQ 发表于 2015-9-23 00:22:30

;统计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)
)

ZZXXQQ 发表于 2015-9-23 14:07:23

;统计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)
)

leeli 发表于 2015-9-23 18:29:44

ZZXXQQ 发表于 2015-9-23 14:07 static/image/common/back.gif


大侠你的好像只能计算到一根pl线的后面的就不行了

leeli 发表于 2015-9-23 18:33:53

本帖最后由 leeli 于 2015-10-15 23:57 编辑

ZZXXQQ 发表于 2015-9-23 14:07 static/image/common/back.gif

选择最左边多段线后 标a的就要统计进去 标b和c的不要统计进去
麻烦大侠了

leeli 发表于 2015-9-29 22:53:41

没人回答是不是币少了啊?
下面回答的我也加币!可以提价格!

leeli 发表于 2015-10-15 23:58:09

顶一下 永远在等

伪书虫86 发表于 2015-10-16 08:26:08

线都被打断了,目测无法实现你的要求

leeli 发表于 2015-10-16 17:19:45

伪书虫86 发表于 2015-10-16 08:26 static/image/common/back.gif
线都被打断了,目测无法实现你的要求

假设可以保证断开距离为500呢?

伪书虫86 发表于 2015-10-17 16:04:06

leeli 发表于 2015-10-16 17:19 static/image/common/back.gif
假设可以保证断开距离为500呢?

额,目测不是一般的复杂,坐等大师来解决
页: [1] 2
查看完整版本: 图块统计