- vfl-konvertiere-ent laeuft unter *vfl-headless* (Wizard/GUI aus): reicht ein Journal nicht, Abbruch mit Fundstelle statt Live-Rueckfrage im Batch - alter VF_n-Block wird erst nach erfolgreichem Neubau geloescht; bei Fehlschlag raeumt vfl-konvert-aufraeumen die Teil-Geometrie weg - SSG_DIM_ALL_2D/_3D listet fehlgeschlagene Bloecke am Ende auf und konvertiert jetzt auch Modus-3-Bloecke (linienzug3 wurde uebersprungen) - statischer Headless-Test: vfl-menu-strwert/vflw-radio-wahl-impl erlaubt - TODO: Stufe 2 und Spec-Uebersetzer Modus 2/3 in eigene Dateien ausgelagert Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4.0 KiB
TODO: Spec-Uebersetzer fuer VF-Linienzug Modus 2 und 3
Stand: 2026-10-26 · Prioritaet: mittel - einzige fehlende FUNKTION im Daten-Pfad (Modus-2/3-Ketten sind nur interaktiv baubar).
Herausgeloester Rest von Stufe 1 aus plan-vf-interactive.md (dort Abschnitt 4.4, der hiermit ersetzt ist). Schwester-Auftrag: linienzug-ohne-gui.md (Stufe 2).
Ausgangslage
Der Daten-Pfad VF_SPEC_BAU (vf_spec.lsp) kann nur
Modus 1:
vsp-journal(vf_spec.lsp:568) kennt nur den Fragenfluss/die Menue-Codes vonvf-linienzug-modus(z.B.*vsp-tab-gf-laenge-modus*, :56).vsp-bau-journal(:939) ruft festvf-linienzug-modusauf (:978).
Modus 2 (vf-linienzug-modus2, Pfad + Zielhoehe, Marker "linienzug2") und
Modus 3 (vf-linienzug-modus3, Vorwaerts-Nachbau, Marker "linienzug3")
fragen grundlegend anders: erst Pfad-Auswahl (vfl-in-segmente), dann je
Segment ein Klassifizierungs-Dialog (vflw_seg_linie_m2/_m3,
vflw_seg_bogen). Dafuer gibt es weder Uebersetzer noch Bau-Aufruf.
Doppelklick-Edit/Neuaufbau funktioniert fuer beide Modi bereits
(vfl-edit-ent-voll) - es fehlt nur der Bau aus einer Spec-Datei.
Korrektur des alten Entwurfs (Plan 4.4, Stand 2026-09-02)
| alter Entwurf | heute (seit 2026-09-18) |
|---|---|
Modus-2-Spec traegt pfad-handles (Entity-Handles, Journal-Art OBJS), vor dem Bau gegen die reale Zeichnung geprueft |
Modus 2 UND 3 journalisieren die Segment-Essenz als Journal-Art SEGS: je Segment 9 Felder typ hz laenge bwinkel bseite spx spy epx epy (vfl-segs->string/vfl-string->segs, vf_linienzug.lsp). Die Kette ist selbst-enthalten, die Original-LINE/ARC werden nicht mehr gebraucht |
| Modus 3 ohne Journal-XDATA, kein Doppelklick-Edit, keine 2D/3D-Konvertierung; Nachruestung zurueckgestellt | Modus 3 schreibt Marker "linienzug3" und ist per Doppelklick editierbar |
| "Eine Gerade direkt nach einer Vario-Kurve wird nicht gefragt - der Uebersetzer leitet das ab" | gilt vermutlich weiter, am echten Journal pruefen |
Folge fuer den Entwurf: Die Spec fuer Modus 2/3 traegt eine Segmentliste statt Objekt-Handles plus die Klassifizierung je Segment (Typ, GF-Neigung bzw. Wert, Bogen-Variante) und die Praeambel (Startpunkt, Starthoehe, AS/ES). Sie ist damit wie Modus 1 ohne Zeichnung pruefbar.
Schritte
| Schritt | Inhalt | Stand |
|---|---|---|
| 1 | Referenz-Journale erzeugen: in BricsCAD 2-3 typische Ketten je Modus (2 und 3) bauen, Zeichnung unter tests/testdata/ ablegen. Abdecken: GF- und VF-Segmente, Bogen, AS/ES ja/nein, bei Modus 3 altes und neues AS/ES-Format |
offen |
| 2 | Python-Lesepfad: lib/vf_journal_export.py (+ vf_linienzug_grammatik.py) lernen linienzug2/linienzug3 mit SEGS (heute: "unbekannter Code") |
offen |
| 3 | Spec-Form fuer Modus 2/3 festlegen (flaches JSON, lesbar von ssg-load-json, Segmente als Einzeiler) |
offen |
| 4 | Python-Rundlauf spec_aus_journal/journal_aus_spec fuer Modus 2/3 in lib/vf_spec_export.py, Test in tests/test_vf_spec.py: Journal -> Spec -> Journal tokengleich |
offen |
| 5 | LISP: vsp-journal je Modus (Dispatch ueber Spec-Feld modus), vsp-pruefen um Modus-2/3-Regeln erweitern |
offen |
| 6 | vsp-bau-journal: Bau-Funktion nach Modus waehlen (vf-linienzug-modus2/-modus3), Ergebnis-Record wie Modus 1 (prompts = 0, journal_diff leer) |
offen |
| 7 | CAD-Test analog TEST_HUNDM05 + Eintrag in tests/alltests.json; file-freie Teile als tu-* in tests/test_unit.lsp |
offen |
Hinweise
- Korrektheitskriterium Modus 3 ist "gleiches rein, gleiches raus", NICHT "trifft den Zielpunkt" - der Ist/Soll-Ende-Report weicht schon im interaktiven Bau ab.
- Alte
"linienzug2"-Bloecke mitOBJS-Journal (vor 2026-09-18) sind nicht mehr editierbar und taugen NICHT als Referenz. - Neue
vfl-in-*-Wrapper mitssget/get*im statischen Waechtertests/test_vf_headless_statisch.pyeintragen. - Werte selbstbeschreibend in der Spec (Winkel 30/60/90, nicht Index) - siehe CLAUDE.md, Konventionen.