35ebee1e88
Gefaltete VF-Laeufe wurden zu kurz gebaut, weil der Solver Posten dem falschen Schenkel zurechnete. Vier Aenderungen, alle nach demselben Leitsatz: die letzten freien Groessen folgen der GEMESSENEN Ist-Lage, nicht einer vorab verteilten Gesamtplanung. 1. vfl-zsolve-schluss-ziel (neu): endet der Lauf auf einem flachen Fueller, werden RICHTUNG und LAENGE gemeinsam gegen den Zielpunkt geloest statt nur die Laenge. Geschlossene Loesung ueber A = sqrt(|D|^2 - P^2), hz = Winkel(D) - atan2(P, A); C und P sind von hz unabhaengig, daher ohne Iteration. Bisher uebernahm der Solve die Richtung aus dem gezeichneten Pfad - ein Querversatz der realen Eck-Bauteile war damit prinzipiell unerreichbar, weil eine Laenge die Kette nur entlang ihrer Achse verschiebt. 2. Eingangs-Hardware bei gefaltetem Lauf: Umlenkstation + Separator stehen auf dem Eingangs-Schenkel und verbrauchen die Kletterspanne nicht; ihr Laengenanteil wird der Spanne wieder zugeschlagen. feste-vf bleibt unveraendert - sein sin3-Hoehenanteil ist real. 3. kletter-ende-fp: endet der Lauf auf einem KLETTERER, gibt es keinen Schluss-Fueller, der Motorstation + Separator + ES abzieht - sie standen in keinem Budget. Nur bei flacher Zone, Pfadende und vorhandenem ES, sonst sind sie bereits anderweitig verbucht. 4. Nachrechner wieder aktiv (8 statt 4 Runden): GF1 steht im Budget, aber im Eingangs-Schenkel. Die Kollision mit filler-A-len, wegen der er abgeschaltet war, ist entfallen. 3 und 4 wirken NUR gemeinsam - die Betraege heben sich teilweise auf, eine einzeln eingebaute Korrektur verschiebt den Fehler bloss in die andere Richtung (GF1 1636.9 - (Motor+Sep+ES) 1235.1 = 401.8 mm). Gemessen am selben Pfad: 9 Grad 0.56 mm, 12 Grad 0.7 mm quer (vorher 1424 bzw. 934 mm), dZ 0.1 mm. Beide Modus-2-Regressionsketten weiter OK; TEST_UNIT 904/904 mit 7 neuen file-freien Tests. doc/todo.md: Punkt "Modus-2-Solver: achsenweise Laengen-Bilanz" ist damit erledigt. Die Detaildatei bleibt liegen, weil vier Kommentare in vf_linienzug.lsp auf ihren Pfad verweisen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
84 lines
3.8 KiB
Markdown
84 lines
3.8 KiB
Markdown
# Offene TODOs
|
|
|
|
Zentrale Sammlung aller offenen Punkte. Wo ein eigener Fahrplan in `doc/todo/`
|
|
existiert, steht hier nur die Kurzfassung mit Verweis. Erledigtes wird
|
|
entfernt (Historie steht in git), nicht abgehakt stehen gelassen.
|
|
|
|
Stand: 2026-10-26. Wird woechentlich (freitags) mit der Doku geprueft, siehe
|
|
`CLAUDE.md` -> Konventionen.
|
|
|
|
---
|
|
|
|
## 1. VarioFoerderer / Linienzug
|
|
|
|
- **VF-Linienzug ohne GUI/Konsole, Stufe 2** (Funktionstrennung): eigener,
|
|
separat abzuarbeitender Auftrag mit Schritt-Tabelle. Schritte 5c, 6, 8, 9,
|
|
10 offen (u.a. `vfl-spec-ausfuehren`). Schritt 11 war zurueckgestellt, bis
|
|
echte Modus-2-Journale vorliegen - **diese Vorbedingung ist seit
|
|
2026-10-27 erfuellt** (`tests/testdata/linienzug_modus2_*.json`). Niedrige
|
|
Prioritaet - Architektur, keine neue Funktion.
|
|
-> `doc/todo/linienzug-ohne-gui.md`
|
|
- **Spec-Uebersetzer fuer Modus 2/3**: **weitgehend erledigt bzw. bewusst
|
|
gestrichen** (2026-10-27, 4a19ac0). Entscheidung: Eine Spec lohnt fuer
|
|
Modus 2/3 nicht - deren Journale tragen mit `SEGS` die komplette
|
|
Segment-Essenz und sind ohne Zeichnung abspielbar, der Mehrwert von
|
|
Domaenenwerten ist damit klein. Umgesetzt wurden die drei lohnenden Teile:
|
|
Python liest `linienzug2`/`3` (Rohtokens), `vsp-bau-journal` waehlt die
|
|
Bau-Funktion aus dem Journal, und die Segment-Antworten sind
|
|
selbstbeschreibende Werte statt Menue-Ziffern. OFFEN bleibt nur dasselbe
|
|
fuer **Modus 3** - dort fehlt ein aufgezeichnetes Journal als Netz.
|
|
-> `doc/todo/spec-modus2-3.md`
|
|
- **Stufe 3 Winkelwahl: "Ab"-Zweig** (`vf_standard.lsp`, Kommentar bei der
|
|
Fuellstueck-Berechnung): nur "Auf" implementiert, "Ab" bleibt bewusst offen,
|
|
bis ein konkreter Bedarfsfall vorliegt. Ebenso `schon-flach` in Stufe 3.
|
|
|
|
## 2. Export / Sivas
|
|
|
|
- **Separator-/Scanner-Aufteilung GF/VF** in Streckengruppen: Merkmale
|
|
4337/4339 (Gefaelle-Anteil) stehen fest auf `"0"`, 4381/4383 (Vario-Anteil)
|
|
tragen den kompletten Blockwert. Haengt an einer Ueberarbeitung der
|
|
Separator-/Scanner-Zuordnung im Zeichnungsmodell.
|
|
-> `cfg/sivas_merkmal_zuordnung.md` ("Offener Punkt")
|
|
- **TOS von Geruest-Import ins Sivas** (Entwicklungsplan Meilenstein 2).
|
|
|
|
## 3. Geruest
|
|
|
|
- **Gattertraeger**: nur Menue-Platzhalter auf `GERUEST` (zeigt einen Hinweis).
|
|
Daten sollen spaeter in `data/json/geruest_traeger.json`.
|
|
- **Edit-Pfad `GERUEST_EDIT`** fehlt: Doppelklick auf `GR_*` oeffnet nur
|
|
`EATTEDIT`, kein Neuaufbau ueber den Dialog.
|
|
|
|
## 4. Omniflo
|
|
|
|
- **Boegen fuer Weichen `OMNI_APBW_*`** (14 Befehle): Dummy, im Menue
|
|
ausgegraut.
|
|
- **TEF-Geraden aus Omniflo-Geraden** (Umwandlungsmakro): bisher nur
|
|
`TEF_FOERDERER_LINIE` (Linie mit TEF-Geraden belegen), keine Umwandlung
|
|
bestehender Omniflo-Geraden.
|
|
|
|
## 5. ILS
|
|
|
|
- **ILS-Weichen als Geometrie**: Weichenpunkte werden ermittelt und exportiert
|
|
(`KREISEL_WEICHEN`), eine eigene Weichen-Geometrie gibt es nicht.
|
|
- **Horizontal-Variobogen / Gefaellebogen als eigenstaendige Befehle**: nur
|
|
innerhalb der Streckengruppe (Vario-Kurve, GF-Bogen); die frueheren
|
|
Dummy-Befehle `ILS_K*` sind entfernt.
|
|
|
|
## 6. Tests
|
|
|
|
- **`tests/test_vf_geometrie.py`** braucht BricsCAD-erzeugte DXF-Referenzdaten,
|
|
die headless fehlen -> schlaegt ohne vorherigen CAD-Lauf fehl.
|
|
- CAD-Laeufe `TEST_VF_SPEC` und `VF_SPEC_BAU` + `tests/test_vf_spec.py`
|
|
gegen `tests/output/hundm05_results.json` (Beweis "Spec-Pfad ==
|
|
Journal-Pfad" auf Geometrie-Ebene). -> `doc/todo/plan-vf-interactive.md`
|
|
|
|
## 7. Spaetere Meilensteine (Entwicklungsplan)
|
|
|
|
Nur Ueberschriften, Details in `doc/plan/Entwicklungsplan.md`:
|
|
|
|
- Meilenstein 4: Flex (DWGs, Produktprogramm, CSV-Export, TOS)
|
|
- Meilenstein 5: 3D-Modelle (Omniflo Bogen/Weiche, Geruest-Modelle)
|
|
- Meilenstein 6: Metafunktionen (Geruest ueber Bereich, Strecke aus Polylinie,
|
|
Kreisel-Verbindung auf unterschiedlicher Hoehe, Puffer aus Flaeche,
|
|
Separator-/Scanner-Positionierung, Arbeitsplatz-Makro)
|