明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1026|回复: 2

这样的LISP怎么写?

  [复制链接]
发表于 2006-11-22 14:57 | 显示全部楼层 |阅读模式

选择图元:    1   找出线长小于5.MM  

       2  把线长大于5MM的元素线长相加

                      3  文字输出:小于5.0的多少个

             大于5的线长是?

     

发表于 2006-11-22 16:21 | 显示全部楼层
  1. ;|
  2. 选择图元:1 找出线长小於5MM
  3.      2 把线长大於5MM的元素线长相加
  4.           3 文字输出:小於5.0的多少个
  5.            大於5的线长是?
  6. |;
  7. ;;;-----------------------------------------------------
  8. ;;;计算线加总长度
  9. ;;;BY LUCAS(龙龙仔)
  10. (defun C:LENOF (/ CURVE TLEN SS N SUMLEN1 SUM) ;SUMLEN)
  11.   (vl-load-com)
  12.   (setq SUMLEN1 1   ;SUMLEN 0
  13. SUM 0
  14.   )
  15.   (setq
  16.     SS (ssget
  17.   '((0 . "REGION,CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC"))
  18.        )
  19.   )
  20.   (setq N 0)
  21.   (repeat (sslength SS)
  22.     (setq CURVE (vlax-ename->vla-object (ssname SS N)))
  23.     (if (/= (vla-get-objectname CURVE) "AcDbRegion")
  24.       (setq TLEN (vlax-curve-getdistatparam
  25.      CURVE
  26.      (vlax-curve-getendparam CURVE)
  27.    )
  28.       )
  29.       (setq TLEN (vla-get-perimeter CURVE))
  30.     )
  31.     (if (<= TLEN 5)
  32.       (setq SUM (1+ SUM))  ;SUMLEN (+ SUMLEN TLEN)
  33.       (setq SUMLEN1 (+ SUMLEN1 TLEN))
  34.     )
  35.     (setq N (1+ N))
  36.   )
  37.   (print (strcat (rtos SUM 2 0) "个物件<=5长度"))
  38.   (print (strcat ">5总长度=" (rtos SUMLEN1 2 5)))
  39.   (princ)
  40. )
 楼主| 发表于 2006-11-22 21:31 | 显示全部楼层
谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 13:53 , Processed in 0.147638 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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