 - ;;;-----------------------------------------------------
- ;;;計算線加總長度
- ;;;BY LUCAS(龍龍仔)
- ;;;2002/8/14 AM 9:00
- ;;;初版
- ;;;2002/8/21 PM 9:20
- ;;;修正LWPOLYLINE & POLYLINE & SPLINE沒有CLOSED
- ;;;但首尾點相連,長度不能計算題
- ;;;2002/9/3 PM 8:20
- ;;;更改計算程式
- ;;;-----------------------------------------------------
- (defun C:LENOF (/ CURVE TLEN SS N SUMLEN)
- (vl-load-com)
- (setq SUMLEN 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))
- )
- (setq SUMLEN (+ SUMLEN TLEN))
- (setq N (1+ N))
- )
- (print (strcat "總長度: " (rtos SUMLEN 2 5)))
- (princ)
- )
|