明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2146|回复: 3

[提问] 分线型统计线段长度

[复制链接]
发表于 2014-7-30 11:10 | 显示全部楼层 |阅读模式
  1. ;;;-----------------------------------------------------
  2. ;;;计算线加总长度
  3. ;;;-----------------------------------------------------
  4. (defun C:zz (/ CURVE TLEN SS N SUMLEN)
  5. (vl-load-com)
  6. (setq SUMLEN 0)
  7. (setq SS (ssget '((0 . "CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC"))))
  8. (setq N 0)
  9. (repeat (sslength SS)
  10. (setq CURVE (vlax-ename->vla-object (ssname SS N)))
  11. (setq TLEN (vlax-curve-getdistatparam
  12. CURVE
  13. (vlax-curve-getendparam CURVE)
  14. )
  15. )
  16. (setq SUMLEN (+ SUMLEN TLEN))
  17. (setq N (1+ N))
  18. )
  19. (print (strcat "总长度: " (rtos SUMLEN 2 5)))
  20. (princ)
  21. )
我在论坛搜到一个统计线段长度的程序,我想能不能再里面增加限制条件,就是把某几种线型(例如1PVC_LINE 、 2PVC_LINE)分别统计出来,现附上原程序:
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-7-30 13:07 | 显示全部楼层
有更简单方法,可以在选择时打入 'fi 过滤即可
 楼主| 发表于 2014-7-30 13:59 | 显示全部楼层
本帖最后由 sxz4494 于 2014-7-30 14:00 编辑
fan_zh 发表于 2014-7-30 13:07
有更简单方法,可以在选择时打入 'fi 过滤即可

我是需要分别统计某种线型,即在选择的图形中,所有上网线型都要分别统计(但是我也只有5~6种线型)
发表于 2014-7-30 22:54 | 显示全部楼层
本帖最后由 llsheng_73 于 2014-7-30 23:33 编辑

可以考虑先把每条线的线型名和它的长度组成表((线型 长度)(线型 长度)(线型 长度)(线型 长度)...)
然后进行分类统计
可以参考嵌套表分类统计
http://bbs.mjtd.com/forum.php?mo ... &fromuid=202795
选用合适的函数来完成,最后进行输出

当然,事实上也可以一边获取数据一边进行分类统计

(setq totals'()i 0)
(repeat(sslength ss)
  (setq CURVE (vlax-ename->vla-object(ssname ss i))
          i(1+ i)
         typevla-get-Linetype CURVE )
         type(if(="ByLayer"type)(cdr(assoc 6(TBLSEARCH"layer"(vla-get-layer CURVE ))))type)
         len(vlax-curve-getdistatparam CURVE(vlax-curve-getendparam CURVE)))
        curve(assoc type totals)
        totals(if curve(subst(list type(+(last curve) len)) curve totals)
                      (cons (list type len)totals)))
)

(foreach x totals
  (princ (strcat"\n"(car x)(rtos(last x)))
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-24 19:56 , Processed in 0.345314 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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