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>
This commit is contained in:
+5
-2
@@ -265,6 +265,7 @@
|
||||
"vfl-m2-segwert-unbekannt": "Segment %1 cannot be read: chain %2 contains an unknown classification value. Build aborted - guessing a segment type would rebuild the chain incorrectly.",
|
||||
"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-kletter-ende-fussabdruck": "\n Climbing end: %1 mm deducted from segment %2 (motor station + separator + ES sit on the climber, not on a filler).",
|
||||
"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.",
|
||||
@@ -728,8 +729,8 @@
|
||||
"plq-nichts-zu-loeschen": "\n[DELETE_PLANQUADRATE] No Planquadrat grid found in the drawing.",
|
||||
"exp-check-ids": "\n[%1] Checking and assigning IDs...",
|
||||
"exp-hoehencheck-frage": "\nRun the height check (mounting height/platforms) before the export?",
|
||||
"exp-hoehencheck-fehlt": "\nNote: HOEHEN_CHECK not available - export runs without height check.",
|
||||
"exp-bereinigen": "\nPurging drawing (unused blocks, layers, linetypes) ...",
|
||||
"exp-hoehencheck-fehlt": "\nNote: HOEHEN_CHECK not available - export runs without height check.",
|
||||
"exp-hoehen-aktualisiert": "\nHeight attributes of %1 moved blocks reset from their Z coordinate.",
|
||||
"exp-sep-proxy-fehler": "\n[EXPORT] WARNING: copying '%1' out of block '%2' failed (%3) - this element is missing from the export.",
|
||||
"exp-sep-zuordnung": "\n[%1] packed separator copy/copies: ZUORDNUNG set from the wrapper block ID.",
|
||||
@@ -1236,6 +1237,8 @@
|
||||
"kf-edit-waehlen": "\nSelect chain conveyor (KF_n) to edit: ",
|
||||
"kf-edit-kein-kf": "The selected block is not a chain conveyor (KF_n).",
|
||||
"kf-edit-fertig": "\n>>> %1 rebuilt as %2.",
|
||||
"cmd-kettenfoerderer-bearbeiten": "\n>>> Editing chain conveyor %1 ..."
|
||||
"cmd-kettenfoerderer-bearbeiten": "\n>>> Editing chain conveyor %1 ...",
|
||||
"vfl-m2-nachrechnen": "\n Folded run: lengths redistributed at the same angle - GF %1 -> %2 mm, climbing section %3 mm (GF1 sits in the entry leg and does not consume the climber span).",
|
||||
"vfl-m2-nachrechnen-fehl": "The chosen angle of %1 degrees no longer works with the corrected length balance. The chain is built with the original distribution and may therefore end too early - please check the actual/target comparison or pick a different angle."
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user