明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1690|回复: 7

[基础] 求助:LISP高手,希望能得到你的帮助?

  [复制链接]
发表于 2010-4-24 13:46:00 | 显示全部楼层 |阅读模式
假如CAD图纸里有1000条长度不等的直线(其中也有长度相等的),想把它统计出来,我需要的统计结果是,各种长度的线分别有多少根。
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2010-4-24 15:30:00 | 显示全部楼层

(defun c:tjl()    ;分类统计线长度
 (setq lss (ssget '((0 . "line"))))
 (setq i 0)
 (setq biao '())
 (repeat (sslength lss)
  (setq a (ssname lss i))
  (setq a10 (cdr (assoc 10 (entget a))))
  (setq a11 (cdr (assoc 11 (entget a))))
  (setq dist (distance a10 a11))
  (if (assoc dist biao)
   (progn
    (setq bbb (assoc dist biao))
    (setq bbbb (list dist (1+ (cadr bbb))))
    (setq biao (subst bbbb (assoc dist biao) biao))
   )
   (setq biao (append biao (list (list dist 1))))
  )
  (setq i (1+ i))
 )
 (foreach x biao
  (princ "\n")(princ x)
 )
(princ)
)

 楼主| 发表于 2010-4-24 17:41:00 | 显示全部楼层
谢谢楼上帅哥,能不能把结果输出到EXCEL呢?
发表于 2010-4-24 18:18:00 | 显示全部楼层

输出到文件里

自己copy吧

(defun c:tjl()    ;分类统计线长度
 (setq lss (ssget '((0 . "line"))))
 (setq i 0)
 (setq biao '())
 (repeat (sslength lss)
  (setq a (ssname lss i))
  (setq a10 (cdr (assoc 10 (entget a))))
  (setq a11 (cdr (assoc 11 (entget a))))
  (setq dist (distance a10 a11))
  (if (assoc dist biao)
   (progn
    (setq bbb (assoc dist biao))
    (setq bbbb (list dist (1+ (cadr bbb))))
    (setq biao (subst bbbb (assoc dist biao) biao))
   )
   (setq biao (append biao (list (list dist 1))))
  )
  (setq i (1+ i))
 )
 (setq file (open "c:\\temp.txt" "w"))
 (foreach x biao
  (princ (car x) file)(princ "\t" file)(princ (cadr x) file)(princ "\n" file)
 )
 (close file)
(princ)
)

 楼主| 发表于 2010-4-24 18:49:00 | 显示全部楼层

太感谢你了,

 楼主| 发表于 2010-4-24 20:43:00 | 显示全部楼层

有一个小问题,数量太多的时候,会导致同样长的线,出现几次。

1375.0 108
650.0 2462
1400.0 3768
445.0 1512
1475.0 56
400.0 56
445.0 28
1400.0 138
646.71 2
445.0 28
1400.0 18

发表于 2010-4-24 21:29:00 | 显示全部楼层

試試,改一下

 (setq dist (rtos (distance a10 a11) 2 1))

 (setq dist (atof (rtos (distance a10 a11) 2 1)))

 楼主| 发表于 2010-4-25 09:18:00 | 显示全部楼层

改成(setq dist (rtos (distance a10 a11) 2 1))就可以了,谢谢!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-10-2 01:35 , Processed in 0.190202 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表