Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Variablen zurück setzen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Variablen zurück setzen (2275 mal gelesen)
Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 11. Feb. 2007 11:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

Variablen beim Benutzer Abbruch zurücksetzen.
1. In einem Lispprogramm frage ich die eingestellten Sytem-Variablen
  ab und setze sie mit setq auf z.B. "Fang_Einst".
2. Danach setze ich meine eigene Einstellung.
3. Und am Schluss setze ich die vorhergehenden Systemvariablem wieder,
  den Wert, den der Anwender ursprünglich hatte.
Dann danach ist alles wieder wie am Anfang und der Benutzer hat noch nicht einmal gemerkt, dass zwischendurch etwas umgestellt war.

Wenn aber danach der Anwender den "Zurück-Befehl" verwendet und zufällig bis Punkt 2. zurück geht, ist meine Einstellung aktiv und er wundert sich, dass er jetzt seine Einstellung verändert ist, sein ACAD ist "verstellt".

Je nach dem wie ein Lisp-Programm abgebrochen wird oder durch einen Fehler abstürzt, kann es auch vorkommen, dass die Systemvariablen von ACAD nicht zurück gesetzt werden.

Wie könnte man das Problem lösen?

Gruß
Theodor Schönwald

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 11. Feb. 2007 12:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Hallo Theodor,
da verweise ich doch noch mal auf diesen Beitrag, der das Thema Errorhandling im Allgeinen behandelt und einen leicht einsetzbaren Errorhandler beisteuert. http://ww3.cad.de/foren/ubb/Forum145/HTML/000435.shtml

Außerdem lese ich die Schreibe von Axel einfach zu gern.

------------------
Mit freundlichem Gruß

Udo Hübner

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 12. Feb. 2007 11:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Udo,

- Schreibe von Axel -, da geht es mir genau so wie Dir.

Beim durchlesen habe ich gesehen, dass
a) das Thema nicht einfach ist und
b) das Problem mit - Variablen durch "Zurück-Befehl" verstellen - nicht behandelt wurde. Ich selbst verwende "Z" kaum, aber ein Freund von mir oft.
Nun bin ich einen anderen Weg gegangen, ich lese die Variablen-Werte aus und schreibe sie in eine Script-Datei. Wenn dann der liebe Siegfried genug verbogen hat, kann er die Werte wieder auf "seine"
Grundeinstellung zurücksetzen.
Wenn jemand Interesse hat, kann ich meine "Hilfskonstruktion" listen.

Gruß
Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

archtools
Mitglied



Sehen Sie sich das Profil von archtools an!   Senden Sie eine Private Message an archtools  Schreiben Sie einen Gästebucheintrag für archtools

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 12. Feb. 2007 14:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Theodor Schoenwald:
Hallo Udo,

- Schreibe von Axel -, da geht es mir genau so wie Dir.

Beim durchlesen habe ich gesehen, dass
a) das Thema nicht einfach ist und
b) das Problem mit - Variablen durch "Zurück-Befehl" verstellen - nicht behandelt wurde. Ich selbst verwende "Z" kaum, aber ein Freund von mir oft.


Das lässt sich einfach lösen: schreibe die zu sichernden Werte in ein Dictionary. Auch das Dictionary wird bei einem "Z" mit zurück gesetzt, so dass auch darin nach dem "Z" wieder die passende Variablenkonfiguration steht. Außerdem steht in jeder DWG dann auch immer der für diese geltende Zustand, und Du musst Dir keine Gedanken um mehrere offene Dateien machen.

Tom

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 12. Feb. 2007 15:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Tom,

so könnte es gehen, wenn Siegfried mit "Z" - weit genug zurück - geht.
Ein "Z" mehr wäre gut und ein "Z" weniger auch, aber er trifft.
Wenn er aber gerade da aufhört, wo die Variablen mit dem Lisp-Tool verändert wurden?

Gruß
Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

archtools
Mitglied



Sehen Sie sich das Profil von archtools an!   Senden Sie eine Private Message an archtools  Schreiben Sie einen Gästebucheintrag für archtools

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 12. Feb. 2007 22:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Theodor Schoenwald:
Hallo Tom,

so könnte es gehen, wenn Siegfried mit "Z" - weit genug zurück - geht.
Ein "Z" mehr wäre gut und ein "Z" weniger auch, aber er trifft.
Wenn er aber gerade da aufhört, wo die Variablen mit dem Lisp-Tool verändert wurden?


Man muss natürlich eine UNDO-Gruppe auch abschließen, und das muss auch die Error-Routine machen, die beim Programmabbruch mit ESC einspringt. Dann springt jedes einzelne "Z" auch ganz korrekt zu seiner gespeicherten Variablengruppe zurück und das System ist an jedem Punkt konsistent.

Tom

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 12. Feb. 2007 23:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke Tom,
für den Hinweis. Kannst Du ein kleines Beispiel listen, denn bei dem Beitrag auf den Udo hingewiesen hat, waren eine Menge Programmcode.

Bei eine Abbruch mit ESC macht das Sinn, aber was ist, wenn nichts abgebrochen wurde und Siegfried einfach so zurück geht, weil Ihm gerade etwas an seinem Werk nicht gefällt.
Beispiel:
a) CMDECHO ist auf 1
b) Mein oder ein anderes Tool setzt CMDECHO auf 0
c) und am Tool-Ende wird CMDECHO wieder auf 1 gesetzt.
d) Arbeit ist erledigt er zeichnet eine Linie.
Wenn er danach
ein Schritt zurück geht ist die Linie weg. CMDECHO ist 1.
Noch einen zurück ist er bei c), CMDECHO ist immer noch 1.
Einen weiteres "Z" und er ist bei b) CMDECHO ist 0.
Ginge er noch eins zurück, dann wäre er bei a) CMDECHO ist 1.

Aber er hat eine glückliche Hand und landet bei b)


Gruß
Theodor

[Diese Nachricht wurde von Theodor Schoenwald am 13. Feb. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Geos
Mitglied
Vermessungstechniker i.R.


Sehen Sie sich das Profil von Geos an!   Senden Sie eine Private Message an Geos  Schreiben Sie einen Gästebucheintrag für Geos

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 13. Feb. 2007 07:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Hi Theodor

Ich mach das so:


Beispiel:
a) CMDECHO ist auf 1

(command "_UNDO" "_END")
(command "_UNDO" "_GROUP")

b) Mein oder ein anderes Tool setzt CMDECHO auf 0
c) und am Tool-Ende wird CMDECHO wieder auf 1 gesetzt.
d) Arbeit ist erledigt er zeichnet eine Linie.

(command "_UNDO" "_END")

Wenn er danach ein Schritt zurück geht, tut er das bis zum "Gruppenanfang".

------------------
Schöne Grüße
Ernst

Meine Homepage

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 13. Feb. 2007 07:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Hallo Theodor,
Ergänzung zu Ernst's Beispiel:
in der Error-Routine könnte dann stehen:
(command "_.undo" "_e")
(command "_.undo" "1")
Dann wird im Falle eines alles wieder auf den Beginn zurückgesetzt. 

------------------
viele Grüße

Jörn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 13. Feb. 2007 12:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Ernst,

zu "...Ich mach das so: ..."

... ich jetzt auch.

Danke.

Gruß
Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

archtools
Mitglied



Sehen Sie sich das Profil von archtools an!   Senden Sie eine Private Message an archtools  Schreiben Sie einen Gästebucheintrag für archtools

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 14. Feb. 2007 01:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von joern bosse:
Hallo Theodor,
Ergänzung zu Ernst's Beispiel:
in der Error-Routine könnte dann stehen:
(command "_.undo" "_e")
(command "_.undo" "1")
Dann wird im Falle eines alles wieder auf den Beginn zurückgesetzt. 

Ja, genau so meinte ich das.

Und als Grundprinzip: Eine UNDO Gruppe wird ausnahmslos in Lisp-Funktionen geöffnet, die als Befehl definiert sind (also mit (defun c:MeinBefehl ...) und nur in dieser Funktion auch wieder geschlossen. AutoCAD kennt leider keine Hierarchien bei UNDO Gruppen, so dass immer nur der letzte Gruppenbeginn relevant ist. Für UNDOs innerhalb der Gruppe kann man sich UNDO Markierungen setzen.

Theodor, sind damit auch Deine Fragen beantwortet?

Tom

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Techniker Maschinenbau (m/w/d)

Die norelem Normelemente GmbH & Co. KG mit Sitz in Markgröningen bei Stuttgart ist mit über 70.000 Artikeln einer der renommiertesten Anbieter von flexiblen Normteilen sowie Systemen und Komponenten für den Maschinen- und Anlagenbau.

Zur Verstärkung unseres Teams suchen wir für die technische Kundenberatung einen

Techniker Maschinenbau (m/w/d) in ...

Anzeige ansehenMaschinenbau
Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 14. Feb. 2007 02:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Tom,

ich habe die Vorschläge bei zwei Tools durchprobiert.
Das was es, womit ich die Unarten beim "Z" Befehl abfangen kann.
Zusätzlich benötigt man weniger Zs um den Zustand vor einer Tool Ausführung wieder her zu stellen.
Beim einem Abbruch hatte ich in den Tools schon vorher alle Variablen zurück gesetzt.
Deshalb gab es damit nie Probleme.
Ich habe auch nicht gleich gemerkt, dass die Problem nur auftauchen wenn "Z" verwendet wird.
Nun ist das bereinigt.
Dank an Dich, Udo, Ernst und Joern.

Gruß

Theodor Schönwald


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz