| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: probleme mit UNDO für teilbereiche (1170 mal gelesen)
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 23. Nov. 2004 11:37 <-- editieren / zitieren --> Unities abgeben:
moin, moin ! ich möchte folgende aufgabenstellung löschen: ich habe eine funktion, die etwas zeichnet und dabei sollen teilbereiche gezeichnet werden und dann ggf. wieder gelöscht werden (Vorschau). ich wollte das über UNDO lösen - doch irgendwie klappt es nicht und mein programm steigt aus !!! ... weiter bei +++++.... folgendes UNDO-kontrukt verwende ich: -Programmstart -(COMMAND "_.UNDO" "_Begin") -Error-Funktion setzen (setq old_err *error*) .... allgemeine Funktion -(COMMAND "_.UNDO" "_Begin") Hier soll die Vorschau gezeichnet werden -(COMMAND "_.UNDO" "_End") +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Wenn der USER es wünscht wird die Vorschau wieder gelöscht ! hierfür verwende ich den Befehl (COMMAND "_.UNDO" "_BACK") => doch jetzt kommt es zum Gau - und mein Programm stürzt ab! Wo kann denn der Fehler sein ? Ich vermute start, dass es etwas mit einer fehlerhaften anwendung des UNDO-befehls zusammenhängt !!! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -(COMMAND "_.UNDO" "_End") -Error-Funktion ZURÜCK setzen (setq *error* old_err) gruß Jan :-)
------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulf Böger Mitglied
Beiträge: 281 Registriert: 18.09.2002 IBM R50p 1.7GHz 1GB RAM ATI Mobility Fire GL T2 128 MB Win2000 SP3 AutoCAD Mechanical 2004 DX Inventor 8 SP1 ADT 2004 PartSolutions 8
|
erstellt am: 23. Nov. 2004 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 23. Nov. 2004 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Nimm _UNDO _MARK und _UNDO _BACK Das setzt nur Markierung aber bildet keine Gruppen. Oder merk dir die Elemente (wie Ulf bereits ausgeführt hat) und lösche diese nach abbruich der Vorschau einfach. Ausserdem würde mich die *error* Routine interessieren. Ist da vielleicht auch ein _UNDO drin? Mit freundlichem Gruß Udo Hübner ------------------ Man kann eine Menge sehen, wenn man nur hinschaut. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 23. Nov. 2004 11:57 <-- editieren / zitieren --> Unities abgeben:
(defun bus_err (s) ;interne Fehlerroutine (if (/= s "Funktion abgebrochen") (princ (strcat "\nFehler: " s)) ) (setq *error* old_err) (bus_ucs_prev) (COMMAND "_.UNDO" "_End") (if *bus_Layer2Use* (command "_.-layer" "_lock" *bus_Layer2Use* "") );endif (command "_.regen") (bus_txt_h_restore);wiederherstellen der ursprünglichen Texthöhe (moder) (princ) ) gruß Jan :-) ------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2041 Registriert: 08.04.2002
|
erstellt am: 23. Nov. 2004 11:59 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 23. Nov. 2004 12:09 <-- editieren / zitieren --> Unities abgeben:
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 23. Nov. 2004 18:12 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Hi Jan, IMHO solltest Du Undo für diesen Zweck vergessen... Pack die Temporärobjekte in 'ne Liste und lösche dann die Elemente die in der Liste sind. Ist zuverlässiger als mit Undo rumzuhühnern, schon mal sowieso wenn Du auch noch 'n Undo im Errorhandler hast. Hör' auf Ulf! ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 24. Nov. 2004 09:04 <-- editieren / zitieren --> Unities abgeben:
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 24. Nov. 2004 12:24 <-- editieren / zitieren --> Unities abgeben:
hi ! ich muss dieses posting nochmals aufnehmen !!! wie würdet ihr denn verfahren, wenn im rahmen der vorschau elemente manipuliert und layer angelegt werden ???? gruß Jan :-) ------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2041 Registriert: 08.04.2002
|
erstellt am: 24. Nov. 2004 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
die neuen layer kannst du ja ebenfalls in ner liste behalten?... eine idee zu den manipulierten elementen: eine kopie des zu manipulerten elementes anlegen ursprüngliches element nicht löschen sondern nur unsichtbar schalten ( den gruppencode dazu weis ich jetzt leidern icht ausweindig - arbeite grade am inventor. ist aber nur ein 0 / 1 für sichtbar/unsichtbar) kopiertes element manipulieren über die listen der entity-namen das ganze wieder umkehrbar gestalten d.h. du musst die unsichtbaren elemente sammeln und die kopierten/manipulierten. aber das war jetzt nur so eine aus der brust geschossene idee - da wirds sicher noch bessere lösungsansätze geben oder? ------------------ mfg Siegfried Schachinger http://www.tbschatz.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 24. Nov. 2004 13:02 <-- editieren / zitieren --> Unities abgeben:
hallo siegfried, das klingt gut - so in die richtung hatte ich auch schon überlegt. dafür muss ich mir dann erst einmal ein konzept bauen, damit es auch allgemeingültig angewandt werden kann ! gesperrte layer abfangen etc. gruß Jan :-)
------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 24. Nov. 2004 14:35 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Man kann auch die neu erstellten Objekte in einem unbenannten Block speichern. (ENTMAKE (LIST (CONS 0 "BLOCK")(CONS 2 "*U")(CONS 70 3)(LIST 10 0.0 0.0 0.0))) ; Hier die neuen Objekte mit entmake generieren ; zuletzt Block abschließen und einfügen (SETQ blkname (ENTMAKE (LIST (CONS 0 "ENDBLK")))) (ENTMAKE (LIST (CONS 0 "INSERT") (CONS 2 blkname) (CONS 10 blockbas); Variable mit Koordinate z. 0,0 (CONS 66 0) ) ) ; Neue Layer müssen da natürlich gesondert gemerkt werden und ; bestehende Objekte zu ändern geht dabei nicht (oder wie Schachinger vorgeschlagen hat, Objekte temporär ausnblenden und Kopien für die Vorschau erzeugen). Das Ausblenden könnte man temporär einfach mit (redraw ename 2) lösen. Mit freundlichem Gruß Udo Hübner ------------------ Man kann eine Menge sehen, wenn man nur hinschaut. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 25. Nov. 2004 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|