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:
2026-08-25 22:06:17 +02:00
parent 236808f4dc
commit 82ce795b53
6 changed files with 164 additions and 108 deletions
+7 -8
View File
@@ -54,14 +54,7 @@
"vfl-glied-offen": "(open)",
"vfl-edit-kein-journal": "This chain block carries no input journal (legacy) and cannot be edited step by step.",
"vfl-edit-kette-header": "\n\nChain with %1 segment(s):",
"vfl-edit-wieviele": "\n\nHow many segments to undo from the end? (0..%1) [0]: ",
"vfl-edit-abgespielt": "\n>>> %1 segment(s) replayed, %2 undone - then continue interactively.",
"vfl-abbruch-edit": "\n>>> Edit cancelled: %1 new partial object(s) removed, original chain restored.",
"vfl-abbruch-resume": "\n>>> Chain cancelled: %1 partial object(s) removed (rollback). Menu item 'Resume last cancellation' replays the previous input.",
"vfl-abbruch-simpel": "\n>>> Chain cancelled: %1 partial object(s) removed.",
"vfl-fortsetzen-start": "\n>>> Resuming last cancelled chain (replaying input)...",
"vfl-fortsetzen-keiner": "\nNo cancelled chain available to resume.",
"vfc-linienzug-modus-fortsetzen": "\n 4 - Resume last cancellation (replay previous input)",
"omni-alle-winkel": "all angles",
"omni-grad": " deg",
"omni-bogen-keine-gefunden": "No arcs found for %1%2.",
@@ -760,6 +753,12 @@
"tro-insert-hinweis": "The block shape must already exist in the drawing (from an earlier tro_annotate.py run).",
"tro-insert-kein-block": "No symbol for this type in the drawing (%1) - run tro_annotate.py with this type first.",
"tro-insert-prompt-punkt": "\nInsertion point: ",
"tro-insert-eingefuegt": "\nTRO inserted: ID = %1, TYPE = %2"
"tro-insert-eingefuegt": "\nTRO inserted: ID = %1, TYPE = %2",
"vfl-abbruch-gesichert": "\n>>> Chain cancelled: %1 object(s) saved as a block (editable/resumable via double-click).",
"vfl-abbruch-nichts-gebaut": "\n>>> Cancelled - no geometry was created yet.",
"vfl-abbruch-wickeln-fehler": "\n>>> ERROR saving the partial geometry as a block: %1",
"vfl-edit-dialog-fehlt": "Dialog not found: %1",
"vfl-edit-abgebrochen": "\nEdit cancelled - no change.",
"vfl-dlg-kopf-sektionen": "Sections: %1"
}
}