399728c7f9
- TEST_LINIENZUG: seit 1cc163d/cccd362 fragt Modus 1 nach der AS-Seite die optionale Zufuehrungsachse ab. Der Test mockt get* direkt (keine Replay-Queue), die neue Punktfrage verschluckte die naechste Antwort und der Lauf desynchronisierte (FEHLER, 21 Schritte offen). Neuer Schritt-Typ "point_none" (getpoint -> nil) und in beiden Linienzug-Testdaten nach der AS-Seite eingetragen. - test_hundm05.py: Zusatzobjekt-Ergebnisse filterten nur kind "kreisel" - Separatoren/Scanner/BTMT (kind "sensor") fehlten, test_je_objekt_ein_ ergebnis schlug faelschlich fehl. - SSG_RUN_ALL_TESTS: #VF/#GF/#Kreisel/#Eckrad_LetzteNr vor jedem Test auf 0. Der Lauf bleibt im Namensraum des Startdokuments, die Zaehler liefen sonst ueber alle Tests weiter (VF_5/Kreisel12 in frischer Zeichnung) und machten jeden Referenz-Diff von der Testreihenfolge abhaengig. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
330 lines
9.8 KiB
JSON
330 lines
9.8 KiB
JSON
[
|
|
{
|
|
"beschreibung": "VF-Linienzug Modus 1 (2026-09-12, nach ES-Nein/schon-flach-Solver-Fix + AS-Auto-Erkennung + Kettenende/ES-Vorfrage bei Linie-GF): Start Z2154 AS 90 links -> Horizontal-VF (2x Vario-Kurve 90 rechts innen, hz 90->0->-90) -> Linie-GF 3 Grad Winkel direkt, Separator VOR+NACH (Kettenende-Frage jetzt VOR der Gefaelle-Berechnung, hier 'Nein weiterbauen') -> Horizontal-VF (Vario-Kurve 30 rechts innen, hz -90->-120 -> Auf-Tabelle Index 8 = 27 Grad -> Vario-Kurve 30 links aussen, hz -120->-90) -> Kettenende ueber 'Ist der Endpunkt der Foerderer?'-Option 3 mit ES 90 links. Stufe 1 (Winkeltabelle) scheitert am Kettenende komplett (alle 12 Kandidaten negative Laenge), Stufe 2 (horizontales VF + GF2=319mm, unter Mindestlaenge 400mm, Nutzer bestaetigt 'exakt bauen') greift - deckt denselben Stufe-2-Fallback-Pfad ab wie der urspruengliche Testfall. Direkt aus einem echten, erfolgreichen BricsCAD-Lauf uebernommen (XDATA-Journal aus logs/vfl_modus1.dbg, siehe Kommentare je Schritt) - keine Handrechnung.",
|
|
"erwartung_dx_mm": 638,
|
|
"erwartung_dy_mm": 0,
|
|
"erwartung_dz_mm": 0,
|
|
"erwartung_hinweis": "dX~638 = seitlicher Fussabdruck ES_Element_90 (Bauform, kein Baufehler) - Fahrtrichtung liegt hier auf der Y-Achse (hz=-90), daher zeigt sich der Versatz in X statt wie im Standardtest in Y."
|
|
},
|
|
{
|
|
"typ": "point_abs",
|
|
"wert": [21377.904954, -10300, 2067],
|
|
"kommentar": "getpoint Startpunkt der Kette"
|
|
},
|
|
{
|
|
"typ": "real",
|
|
"wert": 2154.0,
|
|
"kommentar": "getreal Hoehe (Z) Startpunkt"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring AS-Element setzen? (Ja)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "90",
|
|
"kommentar": "getstring AS-Element Winkel (90 Grad - echter Winkelwert, kein Index, siehe vf-frage-element-winkel)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring AS-Seite (links)"
|
|
},
|
|
{
|
|
"typ": "point_none",
|
|
"kommentar": "getpoint AS-Zufuehrungsachse (2. Punkt, optional seit 2026-10-21) - Enter ohne Punkt"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "5",
|
|
"kommentar": "getstring Naechstes Element (Kettenanfang, 6 Optionen): 5 = Neue VF mit horizontalem Anfang"
|
|
},
|
|
{
|
|
"typ": "point_rel",
|
|
"dL": 5854.769733,
|
|
"hz": 90,
|
|
"kommentar": "getpoint Endpunkt der Linie (frei, hz=90 - Kettenanfang, keine Richtungsvorgabe)"
|
|
},
|
|
{
|
|
"typ": "real",
|
|
"wert": 1980.0,
|
|
"kommentar": "getreal Ziel-Hoehe fuer den horizontalen VF-Anfang"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Zusaetzlichen Separator VOR dem horizontalen Stueck? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Zusaetzlichen Separator NACH dem horizontalen Stueck? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein - im Ziel-Modus VOR dem Bau gefragt, vor-antwort wird von der Fortsetzungsschleife uebernommen)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Naechstes Element im VarioFoerderer (2 = Vario-Kurve)"
|
|
},
|
|
{
|
|
"typ": "int",
|
|
"wert": 90,
|
|
"kommentar": "getint Vario-Kurve Winkel (90 Grad, echter Wert - vfl-menu-winkel)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Vario-Kurve Seite (rechts)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Vario-Kurve Variante (innen)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring Naechstes Element im VarioFoerderer (1 = Horizontaler Foerderer)"
|
|
},
|
|
{
|
|
"typ": "point_rel",
|
|
"dL": 1340,
|
|
"hz": 0,
|
|
"kommentar": "getpoint Horizontal-Endpunkt (dL=1340, hz=0 - Richtung durch die erste Vario-Kurve auf 0 Grad gedreht)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Zusaetzlichen Separator VOR? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Zusaetzlichen Separator NACH? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Naechstes Element im VarioFoerderer (2 = Vario-Kurve)"
|
|
},
|
|
{
|
|
"typ": "int",
|
|
"wert": 90,
|
|
"kommentar": "getint Vario-Kurve Winkel (90 Grad)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Vario-Kurve Seite (rechts)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Vario-Kurve Variante (innen)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring Ist der Endpunkt der Foerderer? (1 = Ja, nur Motorstation setzen - schliesst die Horizontal-VF-Einheit)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Ist das das Kettenende (ES-Element)? (Nein - GF-Verteilung entfaellt hier, eingang-modus=voll aber gf-verteilung-fest)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Zusaetzlichen Separator an dieser Stelle einfuegen? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Naechstes Element (5 Optionen, Kette laeuft weiter): 2 = Neue Linie: GF (Gefaellestrecke)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring Wie soll die Laenge bestimmt werden? (1 = Endpunkt waehlen, Zweig A)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "3",
|
|
"kommentar": "getstring Ist das das Kettenende? (3 = Nein, weiterbauen - NEU: kommt seit dieser Session VOR der Gefaelle-/Laengenberechnung)"
|
|
},
|
|
{
|
|
"typ": "point_rel",
|
|
"dL": 800,
|
|
"hz": -90,
|
|
"kommentar": "getpoint Endpunkt der Gefaellestrecke (dL=800, hz=-90 - Richtung nach der zweiten Vario-Kurve)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring Separator VOR dieser Gefaellestrecke? (Ja)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring Separator NACH dieser Gefaellestrecke? (Ja)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Gefaelle festlegen (2 = Neigungswinkel eingeben)"
|
|
},
|
|
{
|
|
"typ": "real",
|
|
"wert": 3.0,
|
|
"kommentar": "getreal Neigungswinkel (3 Grad)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "4",
|
|
"kommentar": "getstring Naechstes Element (5 Optionen): 4 = Neue VF mit horizontalem Anfang"
|
|
},
|
|
{
|
|
"typ": "point_rel",
|
|
"dL": 838.819967,
|
|
"hz": -90,
|
|
"kommentar": "getpoint Endpunkt der Linie (dL=838.82, hz=-90 - unveraendert nach der Gefaellestrecke)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Zusaetzlichen Separator VOR? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Zusaetzlichen Separator NACH? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Naechstes Element im VarioFoerderer (2 = Vario-Kurve)"
|
|
},
|
|
{
|
|
"typ": "int",
|
|
"wert": 30,
|
|
"kommentar": "getint Vario-Kurve Winkel (30 Grad)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Vario-Kurve Seite (rechts)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Vario-Kurve Variante (innen)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "3",
|
|
"kommentar": "getstring Naechstes Element im VarioFoerderer (3 = Auf/Ab-Foerderer)"
|
|
},
|
|
{
|
|
"typ": "point_rel",
|
|
"dL": 1621.311164,
|
|
"hz": -120,
|
|
"kommentar": "getpoint Endpunkt entlang Fahrtrichtung (dL=1621.31, hz=-120 - Richtung nach der dritten Vario-Kurve, 30 Grad rechts)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring Kette kommt flach an - Richtung waehlen (1 = Auf)"
|
|
},
|
|
{
|
|
"typ": "int",
|
|
"wert": 8,
|
|
"kommentar": "getint Winkel-Hoehen-Tabelle: Index 8 unter den GUELTIGEN Kandidaten (= 27 Grad, siehe vfl-waehle-winkel-hoehen-tabelle - Index, kein Winkelwert)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "2",
|
|
"kommentar": "getstring Naechstes Element im VarioFoerderer (2 = Vario-Kurve)"
|
|
},
|
|
{
|
|
"typ": "int",
|
|
"wert": 30,
|
|
"kommentar": "getint Vario-Kurve Winkel (30 Grad)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring Vario-Kurve Seite (links)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring Vario-Kurve Variante (aussen)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "3",
|
|
"kommentar": "getstring Ist der Endpunkt der Foerderer? (3 = Ja, Motorstation setzen + Kettenende definieren)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring ES-Element setzen? (Ja)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "90",
|
|
"kommentar": "getstring ES-Element Winkel (90 Grad - echter Winkelwert)"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring ES-Seite (links)"
|
|
},
|
|
{
|
|
"typ": "point_rel",
|
|
"dL": 1797.304153,
|
|
"hz": -90,
|
|
"kommentar": "getpoint Endpunkt entlang Fahrtrichtung (Kettenende-Modus, dL=1797.30, hz=-90 - unveraendert nach der vierten Vario-Kurve, 30 Grad links)"
|
|
},
|
|
{
|
|
"typ": "real",
|
|
"wert": 2154.0,
|
|
"kommentar": "getreal Ziel-Hoehe Kettenende (ES). Ab hier laeuft vfl-body-zerlegung AUTOMATISCH: Stufe 1 (Winkeltabelle 3/6/.../51 Grad) scheitert komplett (alle 12 Kandidaten negative Laenge), Stufe 2 (horizontales VF + GF2) liefert typ=VF winkel=0 L_GF=319 L_VF=48"
|
|
},
|
|
{
|
|
"typ": "string",
|
|
"wert": "1",
|
|
"kommentar": "getstring Berechnetes GF2 (319mm) liegt unter der Mindestlaenge (400mm) - Ja: mit den exakt berechneten 319mm bauen (Zielpunkt wird exakt getroffen)"
|
|
}
|
|
]
|