(command-s) in Fehlerroutine

Started by OPLisp, March 06, 2015, 02:55:40 AM

Previous topic - Next topic

OPLisp

  Hallo

  Für AutoCAD 2015/16 stelle ich gerade  meine Fehlerroutinen um.
  Dabei ersetze ich alle command Funktionen mit command-s.
  Die beiden (command-s) sollten eigentlich jeden möglichen offenen
  AutoCAD  Befehl sicher abbrechen. Mit (command) ging das einwandfrei mit
  (command-s) nicht.   

  .
  .
  (command-s)
  (command-s)
  (if (= (logand (getvar "UNDOCTL") 8) 8)
    (progn
      (command-s "_.UNDO" "_E")
      (command-s "_.U")
    )
  )
  .
  .
  Ich könnte natürlich auch mit  (*push-error-using-command*) und (command ...)
  weiter arbeiten. Das funktioniert auch , leider halt nicht
  under OpenDCL. Ich nutze OpenDCL Laufzeitumgebung [8.0.0.10]

  Grüße

Fred Tomke

Hmm, kannst Du versuchen, das Undo mit ActiveX zu lösen?
Ich setze immer am Anfang eine UndoBegin und am Ende eine UndoEnd-Marke.
Dann könnte man einen Schritt zurückgehen. Achte darauf, dass es außerhalb der OpenDCL-Ereignisse läuft.
Das Problem ist nicht OpenDCL-related: es betrifft auch die C#-Entwickler.

VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

OPLisp

Danke Fred

ich habe auch am Beginn eines Programms ein
(command "_.UNDO" "_BE")
und am Ende ein
(command "_.UNDO" "_E")

im Programm selber sind weitere command Aufrufe (auserhalb der Events)
bei Aufruf der Error routine soll diese dann die Gruppe beenden und zum
Gruppenanfang springen.

(command "_.UNDO" "_E") kann ich mit  (vla-EndUndoMark doc) ersetzen
aber wie ersetze ich  (command "_.U")

Fred Tomke

Hi, meine Frage mag dumm erscheinen, aber: Was spricht gegen (command-s "_undo" "1")?
Ich habe grad kein entspr. OpenDCL-Beispiel zum Testen.
VG, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]

OPLisp

Ja das geht natuerlich, aber ein weiteres command-s... auf einen offenen AutoCAD Befehl der die error routine aufruft,
fuehrt ja wieder zu einer Fehlermeldung.
Möglicherweise haette man dies durch AktiveX Anweisungen umgehen können.
Hat sich aber schon bei (vla-EndUndoMark doc) nicht bestaetigt.
(command) (command) wirkte halt wie ^C^C ob ein Befehl laueft oder nicht.
Dann kann man geordnet weiter programmieren.

Gruß

Fred Tomke

Hello, I've created a simple example to show how to work with undo in a model form and within exception handler.
Hope that helps anybody.
Regards, Fred
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[ landscaper - landscape developer - digital landscape and urban design]