(defun C:LinLength ( / as ele eled index ep1 ep2 len glen auswahl layname auswahlliste p1 p2 blen) ;addiert aus einer Gruppe gewählter Linien deren Länge und gibt diese aus (setq auswahl (entsel "\nObjekt auf dem Layer zeigen : ")) (setq layname (cdr (assoc 8 (entget (car auswahl))))) (princ layname) (setq auswahlliste (list (cons 0 "LINE") (cons 8 layname))) (setq as (ssget)) (setq index 0 glen 0 len 0) (repeat (sslength as) (setq ele (ssname as index)) (setq eled (entget ele)) (if (= (cdr (assoc 8 eled)) layname) (progn (cond ((= (cdr (assoc 0 eled)) "LINE") (setq ep1 (cdr (assoc 10 eled))) (setq ep2 (cdr (assoc 11 eled))) (setq len (distance ep1 ep2)) (if (/= (caddr ep1) 0.00) (princ "Ungültige Z-Koordinate in ep1")) (if (/= (caddr ep2) 0.00) (princ "Ungültige Z-Koordinate in ep2")) (setq glen (+ glen len)) ) ((= (cdr (assoc 0 eled)) "ARC") (progn (if (not bogenl) (load "lisp/BOGEN")) (setq blen (car (bogenl ele))) (setq glen (+ glen blen)) (prompt ".") )) (progn (prompt "\nObjekt nicht bearbeitet, : ") (princ (cdr (assoc 0 eled)))) ; else );end cond ));end if (setq index (1+ index)) ) (prompt "Die Gesamtlänge der gewählten ") (princ index) (prompt " Objekte beträgt ")(princ (rtos glen 2 2)) (prompt " m") (princ) )