Linienzug: Abbruch wickelt Teil-Geometrie statt sie zu loeschen; Editieren per DCL-Dialog
Abbruch (ESC) im Linienzug-Baumodus loescht die bereits eingefuegte Geometrie nicht mehr, sondern wickelt sie wie ein fertiger Bau zu einem VF_n-Block und schreibt das volle Eingabe-Journal als XDATA drauf (vfl-modus-abbruch-sichern, ersetzt das bisherige Loesch-Rollback). Die Teil-Kette bleibt damit stehen und ist sofort per Doppelklick weiter editierbar/fortsetzbar - unabhaengig davon, ob der Abbruch beim frischen Bauen oder mitten in einem Editier-Neuaufbau passiert. Der bisherige Menuepunkt "Letzten Abbruch fortsetzen" (Session-Variable) entfaellt dadurch ersatzlos. vfl-edit-ent (Doppelklick-Editieren) fragt die Sektion, auf die zurueckgesetzt werden soll, jetzt per neuem DCL-Dialog ab (dcl/vfl_edit.dcl, vfl-dlg-position: Combobox 1..N + OK/Abbrechen) statt per Text-Prompt. Vorbelegung auf die letzte Sektion, damit Doppelklick + sofort OK einen abgebrochenen Bau nahtlos fortsetzt. Die *error*-Handler-Installation wandert vor den allerersten Prompt (vorher: nach Startpunkt/AS-Frage), damit ein ESC in diesem Fenster nicht mehr auf den ungeschuetzten vorherigen Handler faellt. Das Wickeln im Abbruch-Pfad ist per vl-catch-all-apply abgesichert, da vfl-block-erstellen intern einen BKS-Wechsel per (command "_.UCS" ...) macht. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+4
-7
@@ -1273,18 +1273,15 @@
|
||||
(princ "\n 1 - Manuelle Eingabe (Punkte klicken)")
|
||||
(princ "\n 2 - 3D-Objekte + Ziel-Hoehe (Randwert-Solver, fertig)")
|
||||
(princ "\n 3 - 3D-Objekte stueckweise (Vorwaerts-Nachbau, in Arbeit)")
|
||||
;; Option 4 nur anbieten, wenn ein abgebrochener Linienzug fortsetzbar ist.
|
||||
(if (and (boundp '*vfl-journal-letzter-abbruch*) *vfl-journal-letzter-abbruch*)
|
||||
(princ (ssg-text "vfc-linienzug-modus-fortsetzen")))
|
||||
(setq wahl (getint "\nIhre Wahl (1/2/3/4) [1]: "))
|
||||
(setq wahl (getint "\nIhre Wahl (1/2/3) [1]: "))
|
||||
;; Konsolen-Nummer -> interne Funktion:
|
||||
;; 2 = fertiger Ziel-Hoehe-Modus (intern vf-linienzug-modus2)
|
||||
;; 3 = alter Vorwaerts-Nachbau (intern vf-linienzug-modus3, wird umgebaut)
|
||||
;; 4 = zuletzt abgebrochene Kette fortsetzen (Replay + interaktiv weiter)
|
||||
;; 1/Default = frische manuelle Eingabe (Journal vorher zuruecksetzen)
|
||||
;; 1/Default = frische manuelle Eingabe (Journal vorher zuruecksetzen). Ein
|
||||
;; abgebrochener Bau bleibt als VF_n-Block stehen und wird per Doppelklick
|
||||
;; fortgesetzt/editiert (vfl-edit-ent), kein separater Menuepunkt noetig.
|
||||
(cond ((= wahl 2) (vf-linienzug-modus2))
|
||||
((= wahl 3) (vf-linienzug-modus3))
|
||||
((= wahl 4) (vfl-modus-fortsetzen))
|
||||
(t (vfl-journal-reset) (vf-linienzug-modus)))
|
||||
(exit)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user