;;;--- Written by Bubendorf Fabian (2021) ---;;; ;;;-----------------------------------------------------------------------------------------------------------------------------------;;; ;;;-----------------------------------------------------------------------------------------------------------------------------------;;; ;;; --<>-- ;;; ;;;-----------------------------------------------------------------------------------------------------------------------------------;;; ;;;-----------------------------------------------------------------------------------------------------------------------------------;;; ;;;-----------------------------------------------------------------------------------------------------------------------------------;;; ;;; Höhen einfügen ;;;-----------------------------------------------------------------------------------------------------------------------------------;;; ;;; Befehl: HPA ;;; Zweck: Einfügen belibig vieler Höhen mit Beschriftung für ElTheo ;;; Funktionen: Runden von Zahlen auf die zweite Kommastelle ;;; Einfügen von Blöcken (Höhen) und Beschriften ;;; Ändern des Layers auf den Höhenlayer ;;; Fehler: Fehlermeldung bei Abbruch (ohne auswirkung, fehlender Errorhandler) ;;; Autor: Fabian Bubendorf / Archäologische Bodenforschung Basel-Stadt ;;; Datum: 2021/Mai ;;; Argumente: Eingabe ohne Argumente ;;; Variablen: Number --> Unterargument für die zu rundende Nummer ;;; Multiple --> Unterargument für den zu rundenden Wert ;;; Block --> Name des eingefügten Blocks ;;; ActiveLayer --> Automatische abfrage des aktiven Layer ;;; BlockLayer --> Name des gewünsten End-Layers ;;; Point --> Einfügepunkt ;;; Heigth --> Wert des Attributes ;;; Code: (defun c:HPA ( / ) (defun Round (Number Multiple) (* Multiple (fix ((if (minusp Number) - +) (/ Number (float Multiple)) 0.5))) );end defun (setq Block "HP_OHNE_SYMBOL" ActiveLayer (getvar "CLAYER") BlockLayer "_TVN-_D---" );end setq (while (setq Point (getpoint "\nPunkt für Absolute Höhe messen:")) (setvar "CMDECHO" 0) (setq Heigth (rtos (Round (caddr Point) 0.01) 2 2)) (if (/= (strlen Heigth) 6) (strcat Heigth "0") );end if (command "_.-INSERT" Block Point 1 1 0 Heigth );end command (setq LastInsert (ssget "_X" (list '(0 . "INSERT")(cons 2 Block)(cons 8 ActiveLayer)))) (command "_.CHPROP" LastInsert "" "_LAYER" BlockLayer "" );end command (setvar "CMDECHO" 1) );end while (princ) );end defun ;;;-----------------------------------------------------------------------------------------------------------------------------------;;;