(Hintergrund-)Informationen
Der Inventor hat eine Rückgängigfunktion (und natürlich auch eine Wiederherstellenfunktion, um das Rückgängig rückgängig zu machen ;) ). Befehlsaufruf über die Pfeiltasten oben bzw. STRG+Z für Rückgängig und STRG+Y zum Wiederherstellen. Wer mehrere Schritte auf einmal Rückwärts gehen will, kann die Dropdownliste mittels des Pfeils "neben dem Pfeil" ausklappen und gleich mehrere Schritte wählen.
Allerdings werden nicht alle Befehle in die "Rückgängigliste" (committed transaction list / festgeschriebene Transaktionsliste) aufgenommen, z.B. die Zoom und Pan Operationen und Oberflächenanpassungen landen nicht in der Rückgängigliste. Alle Befehle, die eine Datei ändert, z.B. Skizzen, Modellierfunktionen, Baugruppenbefehle und viele, viele mehr werden in die Rückgängigliste aufgenommen, wenn der "Arbeitsschritt" erfolgreich durchgeführt wurde. Bricht der Anwender den Befehl ab oder scheitert die Befehlsausführung (Modellierfehler oder andere Probleme), kommt eine Fehlermeldung und der Arbeitsschritt wird nicht in die Rückgängigliste aufgenommen.
Wird ein "Arbeitsschritt" rückgängig gemacht, wird dieser Schritt in der Datei rückgängig gemacht und der Schritt selbst wird in die Wiederherstellenliste (undone transaction list) verschoben und steht ab diesem Zeitpunkt zur Wiederherstellung bereit. Wird der Schritt wiederhergestellt, wird die Änderung wieder am Modell vorgenommen und der Schritt wandert zurück in die Rückgängigliste.
Ein Beispiel
In Inventor wurde ein eines Bauteil erstellt, darin eine Skizze, ein Kreis und zwei Linie. Über die Rückgängigfunktion kann durch einen Klick auf den Pfeil jeder Schritt nacheinander – oder mittels des Dropdownmenü auch mehrere Schritte auf einmal – rückgängig gemacht werden.
Wurden die Schritte rückgängig gemacht, werden sie in die Wiederherstellenliste verschoben.
Werden die Arbeitsschritte aus dieser Liste aufgerufen, sind die Linie wieder da und die Schritte sind wieder in der Skizze.
Soweit, so einfach ;)
Geltungsbereich der Rückgängigfunktion
Die Rückgängigliste gilt inventorweit, d.h. es hat nicht jede Datei ihre eigene Liste, sondern in der Rückgängigliste sind die Arbeitsschritte aller Dateien enthalten, die in der aktuellen Sitzung bearbeitet wurde, d.h. die Rückgängigliste (und auch die Wiederherstellungliste) gilt für alle geöffneten Dateien.
In diesem Screenshot sieht man, das das Dateifenster "Bauteil2" aktiv ist. Wird die Rückgängig--Dropdownliste ausgeklappt, sieht man, das sämtliche Arbeitsschritte seit dem Inventorstart enthalten sind. Es wurde erst 2 neue Dokumente erstellt (Bauteil1 und Bauteil2) dann wurde in Bauteil1 eine Skizze erstellt und 2 Linie, dann bin ich in Bauteil2 gewechselt und habe dort eine Skizze erstellt und anschließend ein Kreis.
Das hat Konsequenzen! Hier ein Beispiel mit zwei Bauteilen, wobei erst alle Schritte für Bauteil4 (neues Dokument bis Kreis durch Mittelpunkt…) und dann für Bauteil5 (Neues Dokument bis Rechteck durch…). Wie bereits besprochen sind die Schritte für beiden Dateien in einer Rückgängigliste!
Datei schließen – Rückgängigliste leer!
Wenn ich jetzt das Bauteil5 schließe, entziehe ich der Liste die Schritte, weil Schritte ohne zugehörige Datei verworfen werden. Das führt dazu, das alle darunterliegen Schritte verworfen werden und die Rückgängigliste leer ist.
Rückgängigbefehl in Datei1, Änderung in Datei2.
Eine weitere Konsequenz der "applikationsweiten Rückgängigliste". Ich habe im letzten Schritt in Bauteil4 eine Linie gezeichnet und bin dann in das Fenster von Bauteil6 gewechselt. Rufe ich in Bauteil6 Rückgängig auf, wird der globale letzte Arbeitsschritt in der Liste rückgängig gemacht, es wird die Linie aus Bauteil4 entfernt und nicht etwas der letzte Arbeitsschritt im aktiven Bauteil. Das kann etwas verwirrend sein!
Wiederherstellen nur, wenn nicht zwischendrin ein neuer Befehl ausgeführt wird
Hier habe ich den letzten Linienbefehl rückgängig gemacht und der Arbeitsschritt wurde in die Wiederherstellenliste verschoben.
Wird jetzt ein anderer Befehl ausgeführt, würde das Wiederherstellen der Linie "zwischen" den neue Befehl geschoben werden, was zu seltsamen Ergebnissen führen könnte. Deswegen wird der Wiederherstellenbefehl deaktiviert und die Wiederherstellenliste gelöscht, wenn ein neuer Befehl ausgeführt wird.
Auch Dateioperationen werden in die Rückgängigliste aufgenommen
Wird eine neue Datei erstellt oder geöffnet, wird auch dieser Arbeitsschritt in die Rückgängigliste aufgenommen. Wird dieser Schritt rückgängig gemacht, wird die gerade geöffnete Datei geschlossen und der Arbeitsschritt wandert in die Wiederherstellenliste.
Wird der Schritt "Dokument öffnen" über die WIederherstellenliste "zurückgeholt", wird die Datei wieder geöffnet und der Arbeitsschritt wandert wieder in die Rückgängigliste.
Das passiert aber nur, wenn die Dateioperation rückgängig gemacht wird. Wird eine Datei manuell geschlossen, wird die Rückgängigliste, wie bereits beschrieben, verworfen.
Auch der Wechsel in Umgebungen (Rohrleitung, Kabelbaum, dynamische Simulation, FEM, …) erstellt Rückgängigschritte
"Datei speichern" selbst erstellt keinen Rückgängigeintrag
Der Speichernbefehl selbst erstellt keine Rückgängigschritt, da das physikalische ändern einer Datei auf der Festplatte (vom Transaction Manager) nicht rückgängig gemacht werden kann. Die Arbeitsschritte, die während des speichern ausgeführt werden, werden in der Liste ergänzt.
In diesem Bild sind die Schritte "Eigenschaft erstellen" automatisch beim Aufruf des Speichernbefehl ergänzt, weil bei mir eine selbst programmiertes Addin direkt vor der Ausführung des Speichernbefehls drei iProperties erstellt.
Wird eine neue Datei gespeichert und dann die Aktionen rückgängig gemacht bis zum Schritt "Neues Dokument", haben wir eine etwas seltsame Situation. In dieses Rückgängigliste sind die Schritte von "Neues Dokument" bis zum Zeitpunkt des Speicherns der Datei unter dem Namen "Teil gespeichert".
Nun mache ich alle diese Schritte rückgängig inkl. "neues Dokument". Inventor bemerkt, das sich das neue Bauteil (im ungespeicherten Zustand das "Bauteil6") im Arbeitsspeicher nun nicht mehr dem Stand des gespeicherten Bauteiles entspricht.
Wenn ich jetzt die Schritte wiederherstelle…
…wird das durch die Rückgängigaktionen (bis zum Schritt "Neues Dokument") geschlossene Bauteil wieder geöffnet und die Arbeitsschritte werden in die Rückgängigliste verschoben.
Wenn ich jetzt nur die letzten 3 Schritte (ohne "Neues Dokument") rückgängig mache…
…ändert sich die Datei wieder in den Status vor dem speichern und bekommt den Browsernamen "Bauteil6".
Wenn ich jetzt allerdings "Datei speichern" ausführe, bleibt das Dokument die Datei "Teil gespeichert.ipt" und bekommt auch diesen Namen im Baum. Das liegt wohl daran, das sich Inventor intern (trotz des anderen Namens im Browser) in der Datei bereits gespeichert hat, wie der Dateipfad lautet.
Inventoreinstellungen zum Thema "Rückgängig"
Größe der Wiederherstellungsdatei
Inventor speichert die Rückgängigschritte in einer temporären Datei im %temp% Ordner. Wie groß diese Wiederherstellungsdatei maximal sein darf, wird unter Extras > Anwendungsoptionen > Allgemein eingestellt. Der Standardwert beträgt 1024MB, was ausreichend sein sollte. Minimal muss der Wert wohl 65 MB sein. Wenn ich einen kleineren Wert eingestellt habe, wurde nach einem Neustart auf 65MB eingestellt.
Stößt der Inventor an die Grenze der Dateigröße und kann keine weiteren Rückgängigschritte speichern, kommt eine Fehlermeldung und man sollte den Wert größer einstellen (am besten im 4 MB Schritten)!
Anzahl der maximal möglichen Rückgängigschritte und wie man den Wert vergrößert
Mein Inventor 2018 merkt sich im Standard 30 Rückgängigschritte. Danach fehlt der älteste Schritt aus der Liste.
Wer mehr Schritte rückgängig machen will, kann dazu in der Registry einen Schlüssel ändern. Der Schlüssel ist in der Registry zu finden.
Wichtig: Inventor erst schließen und dann den Wert in der Registry ändern, den sonst überschreibt der Inventor den Wert beim schließen wieder!
Registryschlüssel: HKEY_CURRENT_USER\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Transactions (die Zahl nach RegistryVersion ändert sich mit jeder Inventorversion. Im Zweifel einfach in der Struktur des Registryeditor bei HKEY_CURRENT_USER\Software\Autodesk\Inventor beginnen und dann durch die Struktur klicken)
UndoLevels = gewünschte Anzahl
Ich habe nicht geprüft, wo die Minimum- und Maximumwerte liegen. Aber zwischen 10 und 100 gab es kein Problem.
So ist es besser ;)
Anderer Möglichkeiten alte Dateistände wiederherzustellen
OldVersions
Neben der Möglichkeit mittels "Rückgängig" auf ältere Bearbeitungsstände zurückzugreifen, habe wir auch noch die Möglichkeit, auf die vorhergehenden Speicherzustände zuzugreifen, den sog. "OldVersions".
Weitere Infos zu diesem Thema hier:
Windows Vorgängerversionen
Siehe dazu https://blog.botfrei.de/2016/03/windows-10-dateiversionsverlauf/
Transactions in der Programmierung
' Get a reference to the active document. ' This can be an Assembly or Part document. Dim oDoc As Document Set oDoc = ThisApplication.ActiveDocument ' Get the transaction manager from the application Dim oTxnMgr as TransactionManager Set oTxnMgr = ThisApplication.TransactionManager ' Start a transaction Dim oTxn As Transaction Set oTxn = oTxnMgr.StartTransaction(oDoc, "My Txn") ' Perform an operation that you wish to transact ' If the error from the operation is not recoverable, abort the Txn If Err Then MsgBox "Unrecoverable error occurred during the operation" oTxn.Abort Exit Sub End If ' End the transaction oTxn.End
Zum Weiterlesen und vertiefen:
- Allgemeine Infos zum Thema und auch Tipps für das Programmieren: http://help.autodesk.com/view/INVNTOR/2018/ENU/?guid=GUID-991ABB26-6113-4E27-83F8-1699F259772E
- Für Programmierer: http://modthemachine.typepad.com/my_weblog/2009/03/combining-multiple-actions-into-a-single-undo.html
[Quelle bzw. Idee zu diesem Beitrag]
Keine Kommentare:
Kommentar veröffentlichen
War der Beitrag hilfreich oder hast du eine Ergänzung dazu?
Ist noch eine Frage offen?
Ich freue mich auf deine Rückmeldung!
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.