feat: VF-Linienzug Modus 1 - steigende Gefaellestrecke (Sonderfall, bis 3 Grad) mit automatischen Uebergangsboegen
Neue dritte Option "Steigend" im Dialog "Wie soll die Laenge dieser Gefaellestrecke bestimmt werden?": erlaubt eine GF, die statt zu fallen bis zu 3 Grad steigt (Neigungswinkel 0..3 statt bisher nur 0..3 fallend). Neuer Helfer vfl-bogen-uebergang erkennt anhand der tatsaechlichen Frame-Neigung, ob 0/1/2 Uebergangsboegen (Vario_Bogen_auf_3/ab_3) noetig sind, und baut sie automatisch - fuer den Normalfall (fallend->fallend) bleibt das ein No-Op. Ausserdem in dieser Sitzung: - Modus 2: Separator VOR/NACH bei GF-Segmenten, Wahlfreiheit am Lauf-Anfang/-Ende (Umlenkstation/Motorstation optional), Stufe-1/2- Vereinheitlichung wie in Modus 1. - Stufe-1/Stufe-2-Entscheidungslogik (vfl-winkel-stufe-entscheidung): fehlenden Stufe-2-Fallback fuer "Auf" und "Ab, steiler als 3 Grad" ergaenzt; ungenauen "~3 Grad reine GF"-Kurzschluss in zwei Funktionen durch praezise Berechnung ersetzt (behebt reale Hoehenfehler). - Wizard-Dialoge: DCL-Text-Umbruch fuer lange Hinweise (vflw-umbruch-zeilen, 3 Groessenvarianten statt fester Zeilenzahl), Konsolen-Echo der Wizard-Antworten fuer Debug-Logs. - Neuer Regressionstest TEST_LINIENZUG_STUFE2 (linienzug_tests_stufe2.json) reproduziert den behobenen Stufe-2-Kettenende-Bug; bestehender LZ_Standard-Test an aktuelle Menue-Nummerierung angepasst (Kettenanfang- Menue ist inzwischen 6 statt 4 Optionen gross). - Neue Anleitung doc/vf_linienzug_modus1_anleitung.md: Modus 1 anhand des obigen Testfalls erklaert (Fragen-Bedeutung, Stufe-1/2-Logik, typische Stolperfallen: GF laengenhungrig bei 3 Grad, fester Motor+Separator+ES- Fussabdruck, 90-Grad-Element-Versatz). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Vendored
+4
-24
@@ -1,6 +1,6 @@
|
||||
[
|
||||
{
|
||||
"beschreibung": "Standard-Linienzug (Modus 1): Start Z4500 AS rechts -> Neue Linie Ab Z1800 45deg (GF am Einlauf) -> Horizontal 900 mit Separator VOR+NACH -> Vario-Kurve 90 links aussen -> Horizontal 250 -> Vario-Kurve 90 links aussen -> Kettenende (Option 3) Z4500 45deg ES rechts",
|
||||
"beschreibung": "Standard-Linienzug (Modus 1): Start Z4500 AS rechts -> Neue Linie Ab Z1800 45deg (GF am Einlauf) -> Horizontal 900 -> Vario-Kurve 90 links aussen -> Horizontal 250 -> Vario-Kurve 90 links aussen -> Kettenende (Option 3) Z4500 45deg ES rechts",
|
||||
"erwartung_dx_mm": 0,
|
||||
"erwartung_dy_mm": 637,
|
||||
"erwartung_dz_mm": 0,
|
||||
@@ -33,8 +33,8 @@
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Naechstes Element (2 = Neue Linie: Ab/Auf VF - Gefaelle hier 26 Grad > GF-Maximalwinkel, daher NICHT Option 1/GF)"
|
||||
"wert": "4",
|
||||
"kommentar": "getstring Naechstes Element (4 = Neue Linie: Ab/Auf VF - Kettenanfang-Menue hat seit GF-Bogen/Vario-Kurve-Erweiterung 6 statt 4 Optionen, Linie-VF ist jetzt Option 4 statt 2; Gefaelle hier 26 Grad > GF-Maximalwinkel, daher NICHT Option 3/GF)"
|
||||
},
|
||||
{
|
||||
"typ": "point_rel",
|
||||
@@ -73,20 +73,10 @@
|
||||
"hz": 0,
|
||||
"kommentar": "getpoint Horizontal-Endpunkt (dL=900, hz=0)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring Separator VOR? (Ja)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring Separator NACH? (Ja)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Ist Endpunkt? (Nein)"
|
||||
"kommentar": "getstring Ist Endpunkt? (Nein) - kein Separator mehr innerhalb der VF-Einheit (5-Punkte-Umbau)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
@@ -124,16 +114,6 @@
|
||||
"hz": 90,
|
||||
"kommentar": "getpoint Horizontal-Endpunkt (dL=250, hz=90)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Separator VOR? (Nein)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Separator NACH? (Nein)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
|
||||
Reference in New Issue
Block a user