明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1072|回复: 1

统计长度和块数量的小工具。练习之作,功能简单,有待完善

[复制链接]
发表于 2022-9-9 21:28:42 | 显示全部楼层 |阅读模式
刚好学习到eval这个函数,练习用了一下。写了一个统计长度和块数量的小工具。很初级的东西。大佬们不要见笑。
  1. ;-------------------------------------------------------------------------------------------------
  2. ;长度统计,块数量统计
  3. (defun c:tjcd (/ e filter i s ss totallength)
  4.   (while (not (setq e (car (entsel)))))
  5.   (setq filter (mapcar '(lambda (x) (list 'assoc x '(entget e))) (list 0 2 8))
  6.         filter (mapcar 'eval filter)
  7.         filter (vl-remove-if 'not filter)
  8.   )
  9.   (setq ss          (ssget "X" filter)
  10.         i           -1
  11.         totalLength 0
  12.   )
  13.   (sssetfirst nil ss)
  14.   (cond
  15.     ((wcmatch (cdr (assoc 0 filter)) "*LINE")
  16.      (while (and (< (setq i (1+ i)) (sslength ss)) (setq s (ssname ss i)))
  17.        (setq totalLength (+ (vla-get-Length (vlax-ename->vla-object s)) totalLength))
  18.      )
  19.      (princ (strcat "总长度为:" (rtos (/ totalLength 1000.) 2 2) "米"))
  20.      (princ)
  21.     )
  22.     ((wcmatch (cdr (assoc 0 filter)) "INSERT")
  23.      (princ (strcat "找到:" (rtos (sslength ss) 2 0) "个"))
  24.      (princ)
  25.     )
  26.   )
  27. )




评分

参与人数 1明经币 +1 收起 理由
tigcat + 1 很给力!

查看全部评分

发表于 2022-9-9 21:41:52 | 显示全部楼层
感谢分享源码~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 07:47 , Processed in 0.172839 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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