fix: Fussabdruecke aller Festbauteile im Segmentbudget (Modus 2)

Leitsatz, aus dem alle Einzelaenderungen folgen (neu als Abschnitt 0 in
doc/VarioFoerderer_Linienzug_Prinzipien.md): die gezeichneten GERADEN
besitzen den Pfad, ein gezeichneter Bogen ist Hilfsgeometrie und nennt nur
Ort und Drehsinn. Jedes fest gebaute Teil zieht seine Laenge von dem
Segment ab, auf dem es steht - und zwar in LAENGEN- UND HOEHENbilanz mit
demselben, GEMESSENEN Wert.

Behoben:
- AS-Element: Fussabdruck wurde bei vf-start = 0 gar nicht abgezogen
  (die Trimmung lief nur im Front-Lauf, der dort leer ist). Jetzt gemessen
  aus dem gebauten KS_AUS - ein aus dem Block-dx gerechneter Wert lag
  184 mm daneben.
- Abschlussbogen + Motorstation: standen auf dem letzten Segment des
  VF-Laufs, fehlten aber im Budget (feste-vf traegt den Motor nur im Zweig
  OHNE flache Zone).
- ES-Element: die letzte Gerade reservierte nur den Laengsanteil. Jetzt die
  Strecke, die auch den Querversatz aufhebt (vfl-es-achs-reserve) - Vorgabe:
  quer zur KS_AUS-Achse MUSS 0 sein, laengs darf abweichen, dZ MUSS 0 sein.
- ES-Abzug griff auch, wenn ein Back-Lauf zwischen VF-Lauf und ES liegt,
  und verkuerzte dann das falsche Segment um die volle ES-Laenge (878 mm).
  Jetzt nur noch bei direktem Anschluss (vf-ende = n-1).
- Eck-Bauteile: Vario-Kurve/Gefaellebogen ersetzen den gezeichneten Bogen
  mit eigenem Fussabdruck. Die Differenz der Tangentenabstaende geht als
  Zuschlag an beide angrenzenden Geraden (vfl-eck-korrekturen/-zerlegen),
  damit die Mittellinie beide beruehrt. Der gezeichnete Radius kuerzt sich
  dabei heraus. GF-Boegen werden geneigt eingebaut - ihr Grundriss-
  Fussabdruck wird mit vfl-projiziere-neigung projiziert.
- Kletterlaenge wurde anteilig mit der Planlaenge im Zaehler und dem
  korrigierten climber-span im Nenner verteilt; die Anteile summierten sich
  dadurch auf weniger als 1.
- Absturz bei fehlendem Uebergangsbogen: get-bogen-mass wurde zweimal fuer
  dieselbe Suche aufgerufen und sein nil ungeprueft an
  vfl-projiziere-neigung gereicht.

Messreihe ueber die Sitzung (gleicher Pfad, Abweichung quer):
695.7 -> 270 -> 139.5 -> 98.5 -> 45.7 -> 2.4 -> 0.2 mm, dZ durchgehend 0.
Beide Pfad-Varianten (Ecke als Vario-Kurve bzw. als GF-Bogen) landen auf
demselben Wert - 0.2 mm ist die Messaufloesung, kein Restfehler.

21 neue file-freie Unit-Tests mit den echten Messwerten; TEST_UNIT 866/866.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 14:29:43 +01:00
parent aabac03d7c
commit ce4ad0f328
5 changed files with 1231 additions and 31 deletions
+4
View File
@@ -261,6 +261,10 @@
"vfl-m3-lauf-anfang-opt-offen": "\n 3 - No reversing station (open start, continue/merge later)",
"vfl-m3-lauf-anfang-opt-umlenk": "\n 2 - Reversing station directly (no GF1/separator)",
"vfl-m3-lauf-anfang-opt-umlenk-gf1": "\n 1 - Reversing station with GF1 + separator",
"vfl-m2-uebergang-bogen-fehlt": "Transition bend %1 is missing from the bend table - the block cannot be loaded or has no measurable KS. The run is built without its length share and therefore comes out too long by that amount.",
"vfl-m2-eck-korrektur": "\n Corner correction %1 mm on segment %2 (drawn arc versus footprint of the corner component).",
"vfl-m2-abschluss-fussabdruck": "\n Closing footprint %1 mm deducted from segment %2 (closing bend + motor station sit on it).",
"vfl-m2-as-fussabdruck": "\n AS footprint %1 mm deducted from segment %2 (the AS element sits on it).",
"vfl-m2-anfang-wert-unbekannt": "Cannot read run start: chain %1 contains the unknown value %2. Build aborted - guessing a start variant would rebuild the chain incorrectly.",
"vfl-m3-lauf-anfang-offen-hinweis": "\n Start deliberately left open - no reversing station/GF1/separator built; continue later or join with Vario_Kette_Merge.",
"vfl-m2-anfang-offen-gesperrt-zeile": "\n (not selectable - with an AS element the run needs a reversing station)",