Zitat:
Original erstellt von dan_rather:
Hallo zusammen,das Thema Reactor wurde hier schon des öfteren Besprochen.
Aber trotz aller Themenbeiträge werde ich nicht daraus schlau.
Wäre nett wenn mir dummy mal einer erklären könnte wie ich einen Reactor anwenden muss der bei einem Rechtsklick einen Befehl abbricht und dann die Lisp Datei weiter verarbeitet.
Das dürfte mit einem Reaktor nicht funktionieren, da Du damit keinen laufenden Befehl abbrechen kannst/darfst.
Aber die gute Nachricht ist: dafür brauchst Du so, wie Du es in Deinem Codebeispiel machst, auch keinen Reaktor, denn dort kontrolliert ja Dein LISP-Programm den Befehlsaufruf selbst.
Im Prinzip brauchst Du nur mit
(command "._line")
den Befehlsablauf zu starten, und kannst dann mittels GRREAD (siehe Online-Hilfe) die Tastatur- und Mauseingaben überwachen. Wenn ein rechter Mausklick kommt, dann folgt solange ein
(command)
nach dem anderen, bis alle laufenden Befehle abgebrochen sind (dafür gibt's eine Systemvariable, deren Namen mir gerade nicht einfällt). Ansonsten folgt ein
(command input)
wobei input natürlich das ist, was das GRREAD bis zu einem <RETURN> als Befehlseingabe zusammengebastelt hat.
Beim Abbruch durch (command) in einer WHILE-Schleife musst Du darauf achten, dass Deine Lisp-Funktion nicht selbst als AutoCAD-Befehl deklariert ist, bzw. Du musst die Abbruchbedingung der Schleife entsprechend ändern.
Robert
------------------
Lisp-Seminare in Wien am 25. und 26. Sep 2005 und später in München, Frankfurt, Köln , Berlin ... -> Infos unter cad-intensiv@gmx.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP