Files
dxfmakros/tests/testdata/linienzug_tests.json
T
y.wang e76e24e1f3 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>
2026-09-11 09:59:27 +02:00

179 lines
4.1 KiB
JSON

[
{
"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,
"erwartung_hinweis": "dY~637 = seitlicher Fussabdruck ES_Element_90 (Bauform, kein Baufehler)"
},
{
"typ": "point_abs",
"wert": [0, 0, 0],
"kommentar": "getpoint Startpunkt der Kette"
},
{
"typ": "real",
"wert": 4500.0,
"kommentar": "getreal Hoehe (Z) Startpunkt"
},
{
"typ": "string",
"wert": "1",
"kommentar": "getstring AS-Element setzen? (Ja) - neue Frage aus 3e23003, fehlte bisher in den Testdaten"
},
{
"typ": "string",
"wert": "1",
"kommentar": "getstring AS-Element Winkel (90 Grad)"
},
{
"typ": "string",
"wert": "2",
"kommentar": "getstring AS-Seite (rechts)"
},
{
"typ": "string",
"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",
"dL": 5500,
"hz": 0,
"kommentar": "getpoint Endpunkt Linie (frei, +X, dL=5500)"
},
{
"typ": "real",
"wert": 1800.0,
"kommentar": "getreal Hoehe (Z) Linienendpunkt"
},
{
"typ": "int",
"wert": 1,
"kommentar": "getint Winkelwahl (45 Grad)"
},
{
"typ": "string",
"wert": "2",
"kommentar": "getstring GF-Verteilung (alles am Einlauf)"
},
{
"typ": "string",
"wert": "2",
"kommentar": "getstring Ist Endpunkt? (Nein)"
},
{
"typ": "string",
"wert": "1",
"kommentar": "getstring Naechstes im VF (Horizontal)"
},
{
"typ": "point_rel",
"dL": 900,
"hz": 0,
"kommentar": "getpoint Horizontal-Endpunkt (dL=900, hz=0)"
},
{
"typ": "string",
"wert": "2",
"kommentar": "getstring Ist Endpunkt? (Nein) - kein Separator mehr innerhalb der VF-Einheit (5-Punkte-Umbau)"
},
{
"typ": "string",
"wert": "2",
"kommentar": "getstring Naechstes (Vario-Kurve)"
},
{
"typ": "int",
"wert": 1,
"kommentar": "getint Kurve-Winkel (90)"
},
{
"typ": "string",
"wert": "1",
"kommentar": "getstring Kurve-Seite (links)"
},
{
"typ": "string",
"wert": "1",
"kommentar": "getstring Kurve-Variante (aussen)"
},
{
"typ": "string",
"wert": "2",
"kommentar": "getstring Ist Endpunkt? (Nein)"
},
{
"typ": "string",
"wert": "1",
"kommentar": "getstring Naechstes (Horizontal)"
},
{
"typ": "point_rel",
"dL": 250,
"hz": 90,
"kommentar": "getpoint Horizontal-Endpunkt (dL=250, hz=90)"
},
{
"typ": "string",
"wert": "2",
"kommentar": "getstring Ist Endpunkt? (Nein)"
},
{
"typ": "string",
"wert": "2",
"kommentar": "getstring Naechstes (Vario-Kurve)"
},
{
"typ": "int",
"wert": 1,
"kommentar": "getint Kurve-Winkel (90)"
},
{
"typ": "string",
"wert": "1",
"kommentar": "getstring Kurve-Seite (links)"
},
{
"typ": "string",
"wert": "1",
"kommentar": "getstring Kurve-Variante (aussen)"
},
{
"typ": "string",
"wert": "3",
"kommentar": "getstring Ist Endpunkt? (Option 3 - Kettenende)"
},
{
"typ": "string",
"wert": "1",
"kommentar": "getstring ES-Element setzen? (Ja) - neue Frage aus 3e23003, fehlte bisher in den Testdaten"
},
{
"typ": "point_rel",
"dL": 6215,
"hz": 180,
"kommentar": "getpoint Option-3-Endpunkt (dL=6215, hz=180)"
},
{
"typ": "real",
"wert": 4500.0,
"kommentar": "getreal Hoehe (Z) Kettenende (ES)"
},
{
"typ": "int",
"wert": 2,
"kommentar": "getint Option-3-Winkelwahl (45 Grad)"
},
{
"typ": "string",
"wert": "1",
"kommentar": "getstring ES-Element Winkel (90 Grad)"
},
{
"typ": "string",
"wert": "2",
"kommentar": "getstring ES-Seite (rechts)"
}
]