[FIX] VF-Linienzug: Abbruch beim Editieren brach den VF-Block auf
Die interaktiven Editier-Pfade riefen den Neuaufbau ueber vl-catch-all-apply auf. Der alte Block ist dort per entdel schon entfernt, und der Catch faengt einen Abbruch (ESC -> (exit)) VOR *error* ab - der Abbruch-Wickler vfl-modus-abbruch-sichern kam damit nie zum Zug. Ergebnis: die komplette Kette blieb als lose Einzelteile ohne VF_n-Block liegen und war nicht mehr per Doppelklick editierbar. - vfl-edit-ent (Sektions-Zweig) und vfl-edit-ent2 rufen vf-linienzug-modus/-modus2 jetzt DIREKT auf. Nur der nicht-interaktive Batch-Konverter vfl-konvertiere-ent behaelt den Catch (die Batch-Schleife muss weiterlaufen) und meldet den betroffenen Block statt still zu scheitern. - Beide Abbruch-Handler setzen *ssg-ils-dim* zurueck. Das tat bisher nur der Aufrufer, der nach einem Abbruch nicht mehr erreicht wird - der Dim-Override blieb fuer die restliche Sitzung stehen. Wiederherstellung aus der Zeichnung (Sektions-XDATA): - vfl-segment-xdata-sichern schrieb nur die Slice des LETZTEN Glieds einer Schleifen-Iteration. Eine VF-Einheit mit eingebetteten Vario-Kurven verlor dadurch ihre eigenen Eingaben. Jetzt wird der komplette Journal-Abschnitt der Iteration geschrieben, indiziert mit dem ersten Glied-Index darin (neu: vfl-journal-ab-glied, vfl-steps-zaehlen). Ein Glied ohne Geometrie verbraucht seinen Abschnitt nicht mehr - er wandert in den naechsten Record, der Entities bekommt. - Neue XDATA-App SSG_VF_EDIT_PRE haelt die Praeambel (Startpunkt, Starthoehe, AS ja/nein + Winkel/Seite) auf den Entities der ersten Iteration. Ohne sie fehlte der Kopf des Journals in jeder Sektion. - Neuer Befehl VF_SEKTION_RESTORE: Auswahl der losen Geometrie -> Sektionen lueckenlos ab Glied 1 zusammensetzen -> stummer Replay -> interaktiv weiterbauen. Die alte Geometrie wird erst NACH erfolgreichem Neuaufbau geloescht, ein Abbruch laesst sie samt XDATA stehen (Versuch wiederholbar). Altbestand ohne Praeambel-XDATA wird danach gefragt. Die .dbg-Dateien bleiben reine Ausgabe und werden von keinem Befehl gelesen - Wiederherstellungs-Daten gehoeren in die XDATA der Zeichnung. tests/testdata/vfl_journal_hm05_abbruch.json: Journal der Session vom 2026-08-31 (9 Glieder), gegen das die Slice-/Join-Logik geprueft wurde. Reine Daten, wird von keinem Befehl gelesen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -377,6 +377,44 @@ interaktive Linienzug-Ablauf weiter (Abschnitt 5).
|
||||
Einzige Eingabe — Rest laeuft automatisch (Attribute aggregiert, Luecken
|
||||
werden gemeldet).
|
||||
|
||||
**VF_SEKTION_RESTORE — lose Kette aus der Zeichnung wiederherstellen**
|
||||
|
||||
| Feld | Steuerelement | Werte |
|
||||
|---|---|---|
|
||||
| Lose Linienzug-Geometrie | Objektauswahl (`ssget`) | die Einzelteile der Kette (Bloecke, Linien, Boegen) |
|
||||
| Startpunkt / Starthoehe / AS | nur bei Altbestand ohne Praeambel-XDATA | `getpoint` / `getreal` / Ja-Nein + Winkel + Seite |
|
||||
|
||||
Wofuer: bleibt eine Kette als **lose Geometrie ohne `VF_n`-Block** liegen (der
|
||||
Block war beim Editieren schon per `entdel` weg, der Neuaufbau brach ab und
|
||||
konnte nicht gewickelt werden), ist sie nicht mehr per Doppelklick editierbar.
|
||||
Die Eingaben stecken aber weiterhin in der Zeichnung:
|
||||
|
||||
| XDATA-App | Traeger | Inhalt |
|
||||
|---|---|---|
|
||||
| `SSG_VF_EDIT` | `VF_n`-Block | volles Ketten-Journal (Marker `linienzug`/`linienzug2`) |
|
||||
| `SSG_VF_EDIT_SEG` | jedes Entity | Journal-Abschnitt **der Iteration**, in der es entstand, indiziert mit dem **ersten** Glied-Index darin |
|
||||
| `SSG_VF_EDIT_PRE` | Entities des ersten Gliedes | Praeambel (Startpunkt, Starthoehe, AS ja/nein + Winkel/Seite) |
|
||||
|
||||
`VF_SEKTION_RESTORE` liest die Sektionen der Auswahl, haengt sie
|
||||
lueckenlos ab Glied 1 aneinander (ein Sektions-Record kann **mehrere** Glieder
|
||||
enthalten — eine VF-Einheit mit eingebetteten Vario-Kurven legt pro Kurve ein
|
||||
eigenes STEP ab, der naechste erwartete Index ist daher
|
||||
`erster Index + Anzahl Glieder im Record`), spielt das Journal stumm ab und
|
||||
baut danach normal weiter. Die alte Geometrie wird **erst nach erfolgreichem**
|
||||
Neuaufbau geloescht — bricht der Bau ab, bleibt sie samt XDATA stehen und der
|
||||
Versuch ist wiederholbar.
|
||||
|
||||
Grenzen: nur Modus 1 (Modus 2 schreibt keine Sektions-XDATA); bei einer Luecke
|
||||
wird nur der lueckenlose Anfang wiederhergestellt und die fehlende Sektion
|
||||
gemeldet. Ketten, die vor der Umstellung auf Iterations-Abschnitte gebaut
|
||||
wurden, haben unvollstaendige Sektions-XDATA (eine VF-Einheit hinterliess nur
|
||||
die Slice ihrer letzten Vario-Kurve) und sind daher nur bis zur ersten Luecke
|
||||
wiederherstellbar.
|
||||
|
||||
Die `.dbg`-Dateien sind **reine Ausgabe** und werden von keinem Befehl
|
||||
gelesen — sie werden bei jedem Lauf neu angelegt (`dbgopen` oeffnet mit `"w"`).
|
||||
Wiederherstellungs-Daten gehoeren ausschliesslich in die XDATA der Zeichnung.
|
||||
|
||||
---
|
||||
|
||||
## 8. Legacy-Konsolen-Pfad
|
||||
|
||||
Reference in New Issue
Block a user