gwpgc 发表于 2005-10-25 13:57:00

怎样把图形分类统计出来?

<P>各位大哥:&nbsp;&nbsp;&nbsp; &nbsp;我想把图里的矩形和线条分类统计出来.</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要求:&nbsp;&nbsp;&nbsp;1,显示矩形的宽度和高度,分类统计出每种矩形数量,列表显示.</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;2,显示线条的长度,分类统计出每种线条数量,列表显示.</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3,显示结果能以文本格式输出.</P>

zxj_76 发表于 2005-10-27 15:05:00

本帖最后由 作者 于 2005-10-30 16:32:15 编辑 <br /><br /> <P>做一个简单的程序即可达到你的目的,如果需要很乐意为你效劳</P>
<P>(QQ:123300,E-mail:webmaster@hdtc.com.cn)。</P>

wjl1014 发表于 2013-2-6 11:01:36

楼主问题解决了吗?可否共享用啊。

ZZXXQQ 发表于 2013-2-7 08:23:22

程序未调试

;分类统计 明经 ZZXXQQ 2013.2.7
(defun c:tj ()
(setq nm (if (= (type nm) 'STR) nm ""))
(if (setq nm (getfiled "输出文件名" nm ".txt" 4)) (progn
(if (setq ss (ssget "X"'((0 . "LWPOLYLINE") (90 . 4)))) (progn
   (setq i -1 slst (list) plst (list))
   (repeat (sslength ss)
    (setq ent (entget(ssname ss (setq i (1+ i)))))
    (foreach x ent (if (= (car x) 10) (setq plst (cons (cdr x) plst)))
    (setq p1 (car plst) p2 (caddr plst))
    (setq slst (cons (mapcar '(lambda (a b) (abs (- a b))) p1 p2) slst))
   )
   (setq i 0 sslst (list))
   (setq sslst (cons (cons (car slst) 1) sslst))
   (repeat (length slst)
    (setq lw (nth (setq i (1+ i)) slst))
    (if (setq lww (assoc lw sslst))
   (setq sslst (subst (cons lw (1+ (cdr lww))) lww sslst))
   (setq sslst (cons (cons lw 1) sslst))
    )
   )
   (vl-sort sslst '(lambda (a b) (< (caar a) (caar b))))
))
(if (setq ss1 (ssget "X" '((0 . "LINE")))) (progn
   (setq i -1 dlst (list))
   (repeat (sslength ss1
    (setq ent (entget(ssname ss1 (setq i (1+ i))))
          dlst (cons (distance (cdr(assoc 10 en)) (cdr(assoc 11 ent))) dlst))
   )
   (setq i 0 sdlst (list))
   (setq sdlst (cons (cons (car dlst) 1) sdlst))
   (repeat (length dlst)
    (setq d1 (nth (setq i (1+ i)) dlst))
    (if (setq dw (assoc d1 sdlst))
   (setq sdlst (subst (cons d1 (1+ (cdr dw))) dw sdlst))
   (setq sdlst (cons (cons d1 1) sdlst))
    )
   )
   (vl-sort sdlst '(lambda (a b) (< (car a) (car b))))
))
(setq fp (open nm "w"))
(if (> (length sslst) 0) (progn
   (princ "矩形统计\n尺寸   数量\n" fp)
   (mapcar
    '(lambda (x) (princ (car x) fp) (princ (cdr x) fp) (princ "\n"))
    sslst
   )
))
(if (> (length sdlst) 0) (progn
   (princ "\n\n线条统计\n长度    数量\n" fp)
   (mapcar
    '(lambda (x) (princ (car x) fp) (princ (cdr x) fp) (princ "\n"))
    sdlst
   )
))
(close fp)
))
(princ)
)

bai2000 发表于 2013-3-2 13:30:17

用不了的,

品茗新秀 发表于 2013-3-25 14:42:40

不错,顶顶

bai2000 发表于 2013-4-23 00:35:43

jdzhqddzh 发表于 2020-8-5 20:36:39


楼主问题解决了吗?可否共享用啊。
页: [1]
查看完整版本: 怎样把图形分类统计出来?