- ;|
- 选择图元:1 找出线长小於5MM
- 2 把线长大於5MM的元素线长相加
- 3 文字输出:小於5.0的多少个
- 大於5的线长是?
- |;
- ;;;-----------------------------------------------------
- ;;;计算线加总长度
- ;;;BY LUCAS(龙龙仔)
- (defun C:LENOF (/ CURVE TLEN SS N SUMLEN1 SUM) ;SUMLEN)
- (vl-load-com)
- (setq SUMLEN1 1 ;SUMLEN 0
- SUM 0
- )
- (setq
- SS (ssget
- '((0 . "REGION,CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC"))
- )
- )
- (setq N 0)
- (repeat (sslength SS)
- (setq CURVE (vlax-ename->vla-object (ssname SS N)))
- (if (/= (vla-get-objectname CURVE) "AcDbRegion")
- (setq TLEN (vlax-curve-getdistatparam
- CURVE
- (vlax-curve-getendparam CURVE)
- )
- )
- (setq TLEN (vla-get-perimeter CURVE))
- )
- (if (<= TLEN 5)
- (setq SUM (1+ SUM)) ;SUMLEN (+ SUMLEN TLEN)
- (setq SUMLEN1 (+ SUMLEN1 TLEN))
- )
- (setq N (1+ N))
- )
- (print (strcat (rtos SUM 2 0) "个物件<=5长度"))
- (print (strcat ">5总长度=" (rtos SUMLEN1 2 5)))
- (princ)
- )
|