马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
- (defun C:GetLength ( / CurEnt CurLgt CurObj CurSet FltLst ObjCnt TmpLgt)
- (if (< (atof (getvar "ACADVER")) 15.0)
- (alert "GetLength requires AutoCAD 2000 or higher. ")
- (progn
- (vl-load-com)
- (setq FltLst '(
- (0 . "ARC,CIRCLE,ELLIPSE,LINE,LWPOLYLINE,POLYLINE,SPLINE")
- (-4 . "<NOT")
- (-4 . "<OR")
- (-4 . "&=") (70 . 16) ;3DMesh
- (-4 . "&=") (70 . 64) ;PolyFace
- (-4 . "OR>")
- (-4 . "NOT>")
- )
- CurLgt 0.0
- )
- (if (setq CurSet (cond ((ssget "I" FltLst)) ((ssget FltLst))))
- (progn
- (setq ObjCnt (sslength CurSet))
- (while (setq CurEnt (ssname CurSet 0))
- (setq CurObj (vlax-ename->vla-object CurEnt)
- TmpLgt (vlax-curve-getDistAtParam CurObj
- (vlax-curve-getEndParam CurObj)
- )
- CurLgt (+ CurLgt TmpLgt)
- )
- (ssdel CurEnt CurSet)
- )
- (alert
- (strcat
- "Total length of "
- (itoa ObjCnt) " object(s): "
- (rtos CurLgt) " units. "
- )
- )
- )
- )
- )
- )
- (princ)
- )
|