Files
dxfmakros/doc/todo.md
T
y.wang 35ebee1e88 fix: Laengenbilanz des gefalteten Modus-2-Laufs (U-Form)
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>
2026-10-29 12:14:13 +01:00

3.8 KiB

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)