(defun c:specmes()
; (setvar "osmode" 1)
(setq osave (getvar "osmode")
lpt01 (getpoint "\nAnfangspunkt der Linie zeigen: ")
lpt02 (getpoint "\nEndpunkt der Linie zeigen: ")
lpta1 (getreal "\nAbstand vom Endpunkt: ") ;wenn mal nicht "20" ...
)
(if (= lpta1 nil)(setq lpta1 20))
(setq lpwin (angle lpt01 lpt02)
lplan (distance lpt01 lpt02)
lpth1 (polar lpt01 lpwin lpta1)
lpth2 (polar lpt02 (+ pi lpwin) lpta1)
)
(setvar "osmode" 0)
(command "_line" lpth1 lpth2 "")
(setq nlin (entlast))
(command "_-insert" "ltest" lpth1 "1" "1" "0")
(command "_-insert" "ltest" lpth2 "1" "1" "0")
(initget "m M t T")
(setq dorm (getstring "\n(M)essen oder (T)eilen? <T>: "))
(cond
((= dorm nil)(command "_divide" nlin "_bl" "ltest" "" "5"))
((= dorm "")(command "_divide" nlin "_bl" "ltest" "" "5"))
((= dorm "t")(command "_divide" nlin "_bl" "ltest" "" "5")) ;hier natuerlich die Anzahl der Blöcke berichtigen ... "5"
((= dorm "m")(command "_measure" nlin "_bl" "ltest" "_y" "25")) ;für "ltest" Deinen Block einsetzen! Und ... den Abstand "25" anpassen
)
(command "_erase" nlin "")
(setvar "osmode" osave)
(prin1)
)
Jetzt sollte, wenn die Funktion nicht abgebrochen wird, der vorherige Zustand der Variable "osmode" wieder hergestellt werden ...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP