Hallo Udo,
mit der Funktion VL-CATCH-ALL-APPLY kannst Du eine Funktion aufrufen, im Fehlerfall (in Deinem Fall ESC) wird an den Start der Funktion zurückgesprungen und dort dann weitergemacht.
Code:
(defun c:Layer (/ LAYER)
(setq *oldlay* (getvar "CLAYER"))
(setq LAYER "Layer-Linie")
(command "_-layer" "_m" "Layerlinie" "")
(setvar "CECOLOR" "bylayer")
(setvar "celtype" "bylayer")
(command "_line" pause)
(vl-catch-all-apply 'NextLinePoints)
(setvar "CLAYER" *oldlay*)
(setq *oldlay* nil)
)(defun NextLinePoints ( / )
(while (/= 0 (getvar "cmdactive")) (command pause))
)
Edit: noch eine kleine Anmerkung, ich würde die Funktion nicht "c:layer", weil der Standard-AutoCAD-Befehl ja auch schon so heißt.
Hier gibt es noch mehr Details:<
http://www.activex.autolisp.info/catch.html
------------------
viele Grüße
Jörn
http://www.bosse-engineering.com
Liniensignaturen Youtube
[Diese Nachricht wurde von joern bosse am 30. Jan. 2018 editiert.]
[Diese Nachricht wurde von joern bosse am 30. Jan. 2018 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP