; modiho.lsp ; Ändern des Wertes von Höhenangaben, Differenz nach Wahl ; erstellt 09/03 (c) Th.Jakob ; ; (defun c:modiho() ; ; (princ "MODIHO - Modifizierung von Höhenangaben") (print ) (initget 1) ; keine Leereingaben (setq differenz (getreal "Differenzbetrag: ")) (setq tl (ssget)) (setq anz (sslength tl)) (setq x 0) (while (< x anz) (setq ct (ssname tl x)) (setq ctl (entget ct)) ; ; alten wert holen (setq altwert_txt (cdr (assoc 1 ctl))) ; umwandeln in Zahl, neuen wert berechnen und zurück wandeln (setq dezitrenn "P") (setq wertlen (strlen altwert_txt)) (setq spos 1) (while (< spos wertlen) (if (= (substr altwert_txt spos 1) ",") (setq altwert_txt (strcat (substr altwert_txt 1 (- spos 1)) "." (substr altwert_txt (+ spos 1))) dezitrenn "K") ) (setq spos (1+ spos)) ) (setq altwert (atof altwert_txt)) (setq neuwert (+ altwert differenz)) (setq neuwert_txt (rtos neuwert 2 2)) (if (= dezitrenn "K") (progn (setq wertlen (strlen neuwert_txt)) (setq spos 1) (while (< spos wertlen) (if (= (substr neuwert_txt spos 1) ".") (setq neuwert_txt (strcat (substr neuwert_txt 1 (- spos 1)) "," (substr neuwert_txt (+ spos 1)))) ) (setq spos (1+ spos)) ) ) ) ; ; textinhalt setzen auf neuwert_txt (setq ctl (subst (cons 1 neuwert_txt) (assoc 1 ctl) ctl)) (entmod ctl) (entupd ct) (setq x (1+ x)) ) )