(defun c:slope () (setq ss (ssadd)) (setq pa (getpoint "\nAnfangspunkt auswählen: ")) (setq pe (getpoint pa "\nEndpunkt auswählen: ")) (setq xa (car pa)) (setq ya (cadr pa)) (setq za (caddr pa)) (setq xe (car pe)) (setq ye (cadr pe)) (setq ze (caddr pe)) (setq dx (- xe xa)) (setq dy (- ye ya)) (setq dz (- ze za)) (setq strecke (sqrt (+ (* dx dx) (* dy dy)))) (setq slopv (/ dz strecke)) (setq slopt (strcat (rtos (abs (* slopv 100)) 2 (getvar "luprec")) "%") ) (setq WinkelEinheit (getvar "AUNITS")) (setq WinkelDrehRichtung (getvar "ANGDIR")) (setq WinkelNull (getvar "ANGBASE")) (setvar "AUNITS" 3) (setvar "ANGDIR" 0) (setvar "ANGBASE" 0) (setq Winkel (angle pa pe)) (if (and (> Winkel (* 0.5 pi)) (< Winkel (* 1.5 pi))) (setq Textwinkel (- Winkel pi)) (setq Textwinkel Winkel) ) (setq TextBasis (list (+ xa (/ dx 2)) (+ ya (/ dy 2)) (/ (+ za ze) 2)) ) (setq Abstand 2.0) ;mal Texthöhe ;Die Texthoehe des aktuellen Stils muss festgestellt werden. ;Falls ein Stil mit fester Texthoehe > 0 aktuell ist, wird im Textbefehl ;nach dieser nicht mehr gefragt. D.h., die Syntax aendert sich. ;(setq TextBasis (getpoint "Textbasis")) (setq StilName (getvar "TEXTSTYLE")) (setq StilTab (tblsearch "STYLE" StilName)) (setq StilHoehe (cdr (assoc 40 StilTab))) (if (= 0.0 StilHoehe) (setq TextHoehe (getvar "textsize")) (setq TextHoehe StilHoehe) ) (setq TextbasisNeu (polar Textbasis (- Textwinkel (/ pi 2)) (/ TextHoehe Abstand) ) ) (setq Objektfang (getvar "OSMODE")) (setvar "OSMODE" 0) (if (= 0.0 StilHoehe) (command ".TEXT" "_J" "_TC" TextBasisNeu TextHoehe TextWinkel slopt) (command ".TEXT" "_J" "_TC" TextBasisNeu TextWinkel slopt) ) (ssadd (entlast) ss) (if (/= dz 0) (progn (setq solidm (polar Textbasis (+ Textwinkel (/ pi 2)) (/ Texthoehe Abstand) ) ) (setq solidl (polar Solidm (+ Winkel pi) (* 1.5 Texthoehe))) (setq solidr (polar Solidm Winkel (* 1.5 Texthoehe))) (if (< dz 0) (setq solidh (polar solidl (+ Textwinkel (/ pi 2)) (* (abs slopv) 25 Texthoehe) ) ) (setq solidh (polar solidr (+ Textwinkel (/ pi 2)) (* (abs slopv) 25 Texthoehe) ) ) ) (command "SOLID" solidl solidr solidh "" "") (ssadd (entlast) ss) ) ) (command "_.-GROUP" "_Create" "*" "Slope" ss "") (setvar "AUNITS" WinkelEinheit) (setvar "ANGDIR" WinkelDrehRichtung) (setvar "ANGBASE" WinkelNull) ;;; (command "SCHIEBEN" "L" "" TextBasis pause) (setvar "OSMODE" Objektfang) )