
Zitat von
kaugummi
... brauche einen Quellcode ... Position ... nach zurüchgelegter Strecke in x,y-Richtung ...
Wie wärs damit ?
Code:
; :::::::x:::::::::x:::::::::x:::::::::x:::::::::x:::::::::x:::::::::x::
; **********************************************************************
; * *
; * W E G E N . L S P *
; * Gegenwaertiger ( 12. Juli 1989 ) Bestand an Modulen: *
; * defun c:wegen *
; * defun ... *
; **********************************************************************
; :::::::x:::::::::x:::::::::x:::::::::x:::::::::x:::::::::x:::::::::x::
; Winkel von Altgrad ins Bogenmass konvertieren
(defun aib (w)
(* pi (/ w 180.0))
)
; Benoetigte Informationen fuer den Weg
(defun wegbenutzer ()
(setq sp (getpoint "\nStartpunkt des Wegs: "))
(setq ep (getpoint "\nEndpunkt des Wegs: "))
;
(setq wwinkel (angle sp ep))
(setq wlaenge (distance sp ep))
(setq breite (* 2 hbreite))
(setq winp90 (+ wwinkel (aib 90))) ; Weg Winkel + 90 Grad
(setq winm90 (- wwinkel (aib 90))) ; Weg Winkel - 90 Grad
)
;
;
(defun umriss ()
(command "plinie"
(setq p (polar sp winm90 hbreite))
(setq p (polar p wwinkel wlaenge))
(setq p (polar p winp90 breite))
(polar p (+ wwinkel (aib 180)) wlaenge)
"schliessen"
)
)
;
(defun zreihe (wa versetz)
(setq perster (polar sp wwinkel wa))
(setq pcplatte (polar perster winp90 versetz))
(setq p1platte pcplatte)
(while (< (distance perster p1platte) (- hbreite prad))
(command "kreis" p1platte prad)
(setq p1platte (polar p1platte winp90 (+ pabst prad prad)))
)
(setq p1platte (polar pcplatte winm90 (+ pabst prad prad)))
(while (< (distance perster p1platte) (- hbreite prad))
(command "kreis" p1platte prad)
(setq p1platte (polar p1platte winm90 (+ pabst prad prad)))
)
)
(defun platzeich ()
(setq wstrecke (+ prad pabst))
(setq vers 0.0)
(while (<= wstrecke (- wlaenge prad))
(zreihe wstrecke vers)
(setq wstrecke (+ wstrecke (* (+ pabst prad prad) (sin (aib 60)))))
(if (= vers 0.0)
(setq vers (* (+ pabst prad prad) (cos (aib 60))))
(setq vers 0.0)
)
)
)
;
; >>> Befehl ausfuehren, Funktionen aufrufen
;
(defun C:WEG ()
(wegbenutzer)
(setq bildkp (getvar "blipmode"))
(setq bildcmde (getvar "cmdecho"))
(setvar "blipmode" 0)
(setvar "cmdecho" 0)
(umriss)
(platzeich)
(setvar "blipmode" bildkp)
(setvar "cmdecho" bildcmde)
)
; :::::::x:::::::::x:::::::::x:::::::::x:::::::::x:::::::::x:::::::::x::
Lesezeichen