;; ===================================================================== ;; SumLines.lsp - suma dlugosci linii i polilinii ;; Polecenie: SUMLINES ;; AutoCAD / GstarCAD (AutoLISP). Opis i instalacja: ;; https://fixcontrol.pl/narzedzia/skrypty-autocad ;; ===================================================================== (defun c:SumLines (/ ss i ent total_len str_len) (vl-load-com) ; wymagane dla funkcji vlax-curve (setq total_len 0.0) (prompt "\nSelect lines and polylines: ") (setq ss (ssget '((0 . "LINE,LWPOLYLINE,POLYLINE")))) (if ss (progn (repeat (setq i (sslength ss)) (setq ent (ssname ss (setq i (1- i)))) (setq total_len (+ total_len (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent)))) ) ; dwa miejsca po przecinku (tryb 2 = dziesietny) (setq str_len (rtos total_len 2 2)) ; zamiana kropki na przecinek (setq str_len (vl-string-subst "," "." str_len)) ; zabezpieczenie - jesli brak czesci dziesietnej (if (not (vl-string-search "," str_len)) (setq str_len (strcat str_len ",00")) ) (alert (strcat "Total length: " str_len " units")) (princ (strcat "\nTotal length: " str_len " units")) ) (progn (alert "No objects selected!") (princ "\nNo objects selected!")) ) (princ) ) (princ "\nSUMLINES loaded. Type SUMLINES to run.") (princ)