Hallo,
ich habe mir folgendes kleines Lisp geschrieben um in Zukunft Objekte schneller drehen bzw. ausrichten zu können. Beim normalen Bezugdrehen muss ich erst Objekte wählen, dann einen Drehpunkt, dann muss ich "B" eintippen und dann will er nochmal 2 punkte für den Bezugswinkel und einen Punkt bzw. Winkel für den neuen Drehwinkel.
Da ich aber mein Bezugswinkel zu 99% durch den Drehpunkt geht will ich mir diesen Punkt als auch das "B" sparen.
Meine Lisp schaut wie folgt aus:
(defun c:bezugdrehen ()
(command "drehen" (ssget)"" PAUSE "b" (setq drehpunkt(getvar "lastpoint")) (getpoint drehpunkt "\nneuer Winkel oder Punkt <0>:"))
);end defun
Das programm funktioniert soweit auch ganz gut aber beim letzten Punkt der abgefragt wird (also der neue Winkel des Objektes) speichert autocad als Vorgabewinkel meinen letzten Drehwinkel. Ich will aber IMMER als Vorgabe (sprich wenn ich keinen Punkt angebe sondern nur EINGABE drücke) Null Grad dort stehen haben. Dieser Winkelwert muss doch in irgendeiner Variable stecken welche man in der Lisp auf Null setzten kann oder? kennt jemand die Variable bzw. hat jemand ne andere Lösung.
Möglich wäre es anstatt den letzten Punkt über die normale drehenfunktion anzugeben z.b. ein (getpoint) mit ner IF-Anweisung wenn die Eingabe gleich Null (also Return) ist wird an die drehenfunktion eben eine null weitergegeben. Dies hat aber den nachteil, dass mann im falle einer punkteingabe am Bildschirm das drehende objekt nicht mehr in der Vorschau sieht (also eher schlecht!).
Fällt sonst noch jemanden etwas ein?
Achja, ich arbeite mit Mechanical 2007
vielen Dank voarb
Gruß
Stefan
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP