e91f1d00d0
Der CAD-Lauf belegt die Schritte 0-4 jetzt auch EMPIRISCH: results/test_hundm05.dxf entstand nach dem Umbau, das Ergebnis-JSON von 11:18 davor - fuer alle 5 Ketten sind ALLE 37 Attribute identisch, inklusive der reihenfolgeabhaengigen Komma-Listen L_VF_m, L_GF_m, GF_WINKEL und ANTRIEBFAHRTRICHTUNG. TEST_VF_SPEC: 28 PASS / 0 FAIL. results/test_linienzug.dxf zeigt eine vollstaendige Kette (AS+ES, Motor, Umlenkung, 2 Vario-Kurven, 22 Bausteine, HOEHE_VON = HOEHE_BIS = 4500 bei DELTA_H 0). Schritt 5a/5b - vfl-vf-eingang-bauen und vfl-vf-ausgang-bauen: beide Bloecke (GF1 + Einlauf-Separator + Umlenkstation bzw. Motorstation + GF2) enthalten keine Frage und sind zusammenhaengend, der Umzug ist wortwoertlich (Zeilenvergleich: 0 Zeilen entfernt, nur zwei Koepfe, zwei Aufrufe und zwei "frame)" neu). Die Auswahl gf2-eff (ziel-gf2 im Kettenende-Modus, sonst L_GF2-bau) bleibt BEWUSST an der Aufrufstelle - genau dort entsteht sonst still die falsche GF2 hinter dem Motor. Der Separator-Zaehler und die vfl-acc-*-Aufrufe bleiben an derselben Stelle in derselben Reihenfolge. Regressionsnetz, damit die restlichen Schritte nicht blind gemacht werden muessen: - lib/dxf_vf_abbild.py (neu): liest eine Testzeichnung streamend und bildet je Kette Attribute, Bausteinzusammensetzung und Einfuegepunkt ab. Ketten werden ueber den EINFUEGEPUNKT der Spec zugeordnet, nicht ueber den Blocknamen - die VF-Nummer beginnt in jeder neuen Zeichnung wieder bei 1. ID und Bezeichnung sind aus dem Vergleich heraus (pro Zeichnung neu). --referenz vergleicht (Exit 1 bei Abweichung), --schreibe-referenz frischt die Referenz nach einem GEPRUEFTEN Lauf auf. - tests/reference/hundm05_attribute.json (neu): die Referenz, erzeugt aus dem geprueften Lauf - also dem Stand, der attributgleich mit dem Zustand VOR dem Umbau ist. - tests/test_vf_geometrie.py (neu, 8 Tests): vergleicht automatisch, mit einem eigenen Test nur fuer die Komma-Listen (das einzige, was eine vertauschte vfl-acc-*-Reihenfolge sichtbar macht) und einer Gegenprobe, dass eine verfaelschte Referenz auch erkannt wird. Das faengt, was der Ergebnis-Record NICHT sieht: er sagt "executed, kein Prompt, Journal aufgegangen", aber nichts darueber, ob dieselbe Geometrie herauskam. Ablauf ab jetzt pro Schritt: umbauen -> TEST_HUNDM05 (save dxf) -> pytest tests/test_vf_geometrie.py. Offen bleiben 5c, 6, 8, 9, 10 (Schleifenrumpf der VF-Einheit, Daten-Executor, Einheit-Abschluss, Kettenebene je Glied, vfl-spec-ausfuehren). Die vier haengen zusammen: 6 und 10 brauchen den aufgeteilten Schleifenrumpf. Halb umgebaut waere der Code schlechter dran als vor oder nach dem Umbau, darum als ein Schritt mit CAD-Lauf davor und danach. Verifiziert: 117 pytest-Tests gruen, vf_linienzug.lsp lint-sauber. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
298 lines
8.5 KiB
JSON
298 lines
8.5 KiB
JSON
{
|
|
"VF_hundm05_LZ_01": {
|
|
"block": "VF_1",
|
|
"insert": [
|
|
4912.239,
|
|
1230.886,
|
|
2154.0
|
|
],
|
|
"bausteine": {
|
|
"AS_Element_90_links_3D": 1,
|
|
"ES_Element_90_links_3D": 1,
|
|
"Staustrecke_SP_1000_mm_3D": 7,
|
|
"Staustrecke_Separator_SP_300_mm_3D": 3,
|
|
"Vario_Bogen_ab_3_TEF_rechts_3D": 2,
|
|
"Vario_Bogen_auf_3_TEF_rechts_3D": 2,
|
|
"Vario_Kurve_links_30_TEF_innen_3D": 1,
|
|
"Vario_Kurve_rechts_30_TEF_innen_3D": 1,
|
|
"Vario_Kurve_rechts_90_TEF_innen_3D": 2,
|
|
"Vario_Motorstation_500mm_rechts_3D": 2,
|
|
"Vario_Umlenkstation_500mm_rechts_3D": 2
|
|
},
|
|
"bausteine_gesamt": 24,
|
|
"attribs": {
|
|
"ANTRIEBFAHRTRICHTUNG": "horizontal,horizontal,horizontal,horizontal",
|
|
"ANZAHL_GF": "3",
|
|
"ANZAHL_SCANNER": "0",
|
|
"ANZAHL_SEPARATOR": "3",
|
|
"ANZAHL_VF": "4",
|
|
"ARTINR": "6220",
|
|
"DELTA_H_mm": "463",
|
|
"DELTA_L_mm": "1934",
|
|
"GERUEST_EINZELMODUL": "1",
|
|
"GERUEST_TYP": "Schoenenberger Geruest",
|
|
"GF_Bogen_L_30": "0",
|
|
"GF_Bogen_L_60": "0",
|
|
"GF_Bogen_L_90": "0",
|
|
"GF_Bogen_R_30": "0",
|
|
"GF_Bogen_R_60": "0",
|
|
"GF_Bogen_R_90": "0",
|
|
"GF_WINKEL": "3,3,3",
|
|
"HOEHE_BIS_mm": "1690",
|
|
"HOEHE_VON_mm": "2154",
|
|
"L_GF_m": "1.826,0.4,0.4",
|
|
"L_VF_m": "1.859,1.434,0.1,1.83",
|
|
"MONTAGEHOEHE_m": "1.922",
|
|
"MOTORSEITE": "rechts,rechts",
|
|
"SEITE_AS": "links",
|
|
"SEITE_ES": "links",
|
|
"TYP": "Streckengruppe",
|
|
"VF_Bogen_A_30": "0",
|
|
"VF_Bogen_A_60": "0",
|
|
"VF_Bogen_A_90": "0",
|
|
"VF_Bogen_I_30": "2",
|
|
"VF_Bogen_I_60": "0",
|
|
"VF_Bogen_I_90": "2",
|
|
"VF_WINKEL": "0,0,0,0",
|
|
"WINKEL_AS": "90",
|
|
"WINKEL_ES": "90"
|
|
}
|
|
},
|
|
"VF_hundm05_LZ_02": {
|
|
"block": "VF_2",
|
|
"insert": [
|
|
8571.951,
|
|
1276.061,
|
|
2494.931
|
|
],
|
|
"bausteine": {
|
|
"AS_Element_90_links_3D": 1,
|
|
"ES_Element_90_links_3D": 1,
|
|
"Staustrecke_SP_1000_mm_3D": 7,
|
|
"Staustrecke_Separator_SP_300_mm_3D": 2,
|
|
"Vario_Bogen_ab_21_TEF_rechts_3D": 1,
|
|
"Vario_Bogen_ab_3_TEF_rechts_3D": 2,
|
|
"Vario_Bogen_auf_21_TEF_rechts_3D": 1,
|
|
"Vario_Bogen_auf_3_TEF_rechts_3D": 2,
|
|
"Vario_Kurve_rechts_90_TEF_innen_3D": 2,
|
|
"Vario_Motorstation_500mm_rechts_3D": 1,
|
|
"Vario_Umlenkstation_500mm_rechts_3D": 1
|
|
},
|
|
"bausteine_gesamt": 21,
|
|
"attribs": {
|
|
"ANTRIEBFAHRTRICHTUNG": "horizontal,horizontal,Auf,horizontal",
|
|
"ANZAHL_GF": "3",
|
|
"ANZAHL_SCANNER": "0",
|
|
"ANZAHL_SEPARATOR": "2",
|
|
"ANZAHL_VF": "4",
|
|
"ARTINR": "6220",
|
|
"DELTA_H_mm": "107",
|
|
"DELTA_L_mm": "1808",
|
|
"GERUEST_EINZELMODUL": "1",
|
|
"GERUEST_TYP": "Schoenenberger Geruest",
|
|
"GF_Bogen_L_30": "0",
|
|
"GF_Bogen_L_60": "0",
|
|
"GF_Bogen_L_90": "0",
|
|
"GF_Bogen_R_30": "0",
|
|
"GF_Bogen_R_60": "0",
|
|
"GF_Bogen_R_90": "0",
|
|
"GF_WINKEL": "3,3,3",
|
|
"HOEHE_BIS_mm": "2387",
|
|
"HOEHE_VON_mm": "2494",
|
|
"L_GF_m": "2.727,0.4,0.418",
|
|
"L_VF_m": "0.177,0.339,0.548,0.548",
|
|
"MONTAGEHOEHE_m": "2.441",
|
|
"MOTORSEITE": "rechts",
|
|
"SEITE_AS": "links",
|
|
"SEITE_ES": "links",
|
|
"TYP": "Streckengruppe",
|
|
"VF_Bogen_A_30": "0",
|
|
"VF_Bogen_A_60": "0",
|
|
"VF_Bogen_A_90": "0",
|
|
"VF_Bogen_I_30": "0",
|
|
"VF_Bogen_I_60": "0",
|
|
"VF_Bogen_I_90": "2",
|
|
"VF_WINKEL": "0,0,21,0",
|
|
"WINKEL_AS": "90",
|
|
"WINKEL_ES": "90"
|
|
}
|
|
},
|
|
"VF_hundm05_LZ_03": {
|
|
"block": "VF_3",
|
|
"insert": [
|
|
12916.466,
|
|
1276.061,
|
|
2494.931
|
|
],
|
|
"bausteine": {
|
|
"AS_Element_90_links_3D": 1,
|
|
"ES_Element_90_links_3D": 1,
|
|
"Staustrecke_SP_1000_mm_3D": 7,
|
|
"Staustrecke_Separator_SP_300_mm_3D": 2,
|
|
"Vario_Bogen_ab_21_TEF_rechts_3D": 1,
|
|
"Vario_Bogen_ab_3_TEF_rechts_3D": 2,
|
|
"Vario_Bogen_auf_21_TEF_rechts_3D": 1,
|
|
"Vario_Bogen_auf_3_TEF_rechts_3D": 2,
|
|
"Vario_Kurve_rechts_90_TEF_innen_3D": 2,
|
|
"Vario_Motorstation_500mm_rechts_3D": 1,
|
|
"Vario_Umlenkstation_500mm_rechts_3D": 1
|
|
},
|
|
"bausteine_gesamt": 21,
|
|
"attribs": {
|
|
"ANTRIEBFAHRTRICHTUNG": "horizontal,horizontal,Auf,horizontal",
|
|
"ANZAHL_GF": "3",
|
|
"ANZAHL_SCANNER": "0",
|
|
"ANZAHL_SEPARATOR": "2",
|
|
"ANZAHL_VF": "4",
|
|
"ARTINR": "6220",
|
|
"DELTA_H_mm": "107",
|
|
"DELTA_L_mm": "1808",
|
|
"GERUEST_EINZELMODUL": "1",
|
|
"GERUEST_TYP": "Schoenenberger Geruest",
|
|
"GF_Bogen_L_30": "0",
|
|
"GF_Bogen_L_60": "0",
|
|
"GF_Bogen_L_90": "0",
|
|
"GF_Bogen_R_30": "0",
|
|
"GF_Bogen_R_60": "0",
|
|
"GF_Bogen_R_90": "0",
|
|
"GF_WINKEL": "3,3,3",
|
|
"HOEHE_BIS_mm": "2387",
|
|
"HOEHE_VON_mm": "2494",
|
|
"L_GF_m": "2.727,0.4,0.418",
|
|
"L_VF_m": "0.177,0.339,0.548,0.548",
|
|
"MONTAGEHOEHE_m": "2.441",
|
|
"MOTORSEITE": "rechts",
|
|
"SEITE_AS": "links",
|
|
"SEITE_ES": "links",
|
|
"TYP": "Streckengruppe",
|
|
"VF_Bogen_A_30": "0",
|
|
"VF_Bogen_A_60": "0",
|
|
"VF_Bogen_A_90": "0",
|
|
"VF_Bogen_I_30": "0",
|
|
"VF_Bogen_I_60": "0",
|
|
"VF_Bogen_I_90": "2",
|
|
"VF_WINKEL": "0,0,21,0",
|
|
"WINKEL_AS": "90",
|
|
"WINKEL_ES": "90"
|
|
}
|
|
},
|
|
"VF_hundm05_LZ_04": {
|
|
"block": "VF_4",
|
|
"insert": [
|
|
17201.778,
|
|
1205.361,
|
|
2154.0
|
|
],
|
|
"bausteine": {
|
|
"AS_Element_90_links_3D": 1,
|
|
"ES_Element_90_links_3D": 1,
|
|
"Staustrecke_SP_1000_mm_3D": 7,
|
|
"Staustrecke_Separator_SP_300_mm_3D": 2,
|
|
"Vario_Bogen_ab_39_TEF_rechts_3D": 1,
|
|
"Vario_Bogen_ab_3_TEF_rechts_3D": 2,
|
|
"Vario_Bogen_auf_39_TEF_rechts_3D": 1,
|
|
"Vario_Bogen_auf_3_TEF_rechts_3D": 2,
|
|
"Vario_Kurve_rechts_90_TEF_innen_3D": 2,
|
|
"Vario_Motorstation_500mm_rechts_3D": 1,
|
|
"Vario_Umlenkstation_500mm_rechts_3D": 1
|
|
},
|
|
"bausteine_gesamt": 21,
|
|
"attribs": {
|
|
"ANTRIEBFAHRTRICHTUNG": "horizontal,horizontal,Auf,horizontal",
|
|
"ANZAHL_GF": "3",
|
|
"ANZAHL_SCANNER": "0",
|
|
"ANZAHL_SEPARATOR": "2",
|
|
"ANZAHL_VF": "4",
|
|
"ARTINR": "6220",
|
|
"DELTA_H_mm": "220",
|
|
"DELTA_L_mm": "1788",
|
|
"GERUEST_EINZELMODUL": "1",
|
|
"GERUEST_TYP": "Schoenenberger Geruest",
|
|
"GF_Bogen_L_30": "0",
|
|
"GF_Bogen_L_60": "0",
|
|
"GF_Bogen_L_90": "0",
|
|
"GF_Bogen_R_30": "0",
|
|
"GF_Bogen_R_60": "0",
|
|
"GF_Bogen_R_90": "0",
|
|
"GF_WINKEL": "3,3,3",
|
|
"HOEHE_BIS_mm": "2374",
|
|
"HOEHE_VON_mm": "2154",
|
|
"L_GF_m": "2.727,0.4,0.418",
|
|
"L_VF_m": "0.177,0.339,0.356,0.548",
|
|
"MONTAGEHOEHE_m": "2.264",
|
|
"MOTORSEITE": "rechts",
|
|
"SEITE_AS": "links",
|
|
"SEITE_ES": "links",
|
|
"TYP": "Streckengruppe",
|
|
"VF_Bogen_A_30": "0",
|
|
"VF_Bogen_A_60": "0",
|
|
"VF_Bogen_A_90": "0",
|
|
"VF_Bogen_I_30": "0",
|
|
"VF_Bogen_I_60": "0",
|
|
"VF_Bogen_I_90": "2",
|
|
"VF_WINKEL": "0,0,39,0",
|
|
"WINKEL_AS": "90",
|
|
"WINKEL_ES": "90"
|
|
}
|
|
},
|
|
"VF_hundm05_LZ_05": {
|
|
"block": "VF_5",
|
|
"insert": [
|
|
21490.274,
|
|
1195.74,
|
|
2494.931
|
|
],
|
|
"bausteine": {
|
|
"AS_Element_90_links_3D": 1,
|
|
"ES_Element_90_links_3D": 1,
|
|
"Staustrecke_SP_1000_mm_3D": 7,
|
|
"Staustrecke_Separator_SP_300_mm_3D": 2,
|
|
"Vario_Bogen_ab_21_TEF_rechts_3D": 1,
|
|
"Vario_Bogen_ab_3_TEF_rechts_3D": 2,
|
|
"Vario_Bogen_auf_21_TEF_rechts_3D": 1,
|
|
"Vario_Bogen_auf_3_TEF_rechts_3D": 2,
|
|
"Vario_Kurve_rechts_90_TEF_innen_3D": 2,
|
|
"Vario_Motorstation_500mm_rechts_3D": 1,
|
|
"Vario_Umlenkstation_500mm_rechts_3D": 1
|
|
},
|
|
"bausteine_gesamt": 21,
|
|
"attribs": {
|
|
"ANTRIEBFAHRTRICHTUNG": "horizontal,horizontal,Auf,horizontal",
|
|
"ANZAHL_GF": "3",
|
|
"ANZAHL_SCANNER": "0",
|
|
"ANZAHL_SEPARATOR": "2",
|
|
"ANZAHL_VF": "4",
|
|
"ARTINR": "6220",
|
|
"DELTA_H_mm": "107",
|
|
"DELTA_L_mm": "1808",
|
|
"GERUEST_EINZELMODUL": "1",
|
|
"GERUEST_TYP": "Schoenenberger Geruest",
|
|
"GF_Bogen_L_30": "0",
|
|
"GF_Bogen_L_60": "0",
|
|
"GF_Bogen_L_90": "0",
|
|
"GF_Bogen_R_30": "0",
|
|
"GF_Bogen_R_60": "0",
|
|
"GF_Bogen_R_90": "0",
|
|
"GF_WINKEL": "3,3,3",
|
|
"HOEHE_BIS_mm": "2387",
|
|
"HOEHE_VON_mm": "2494",
|
|
"L_GF_m": "2.727,0.4,0.418",
|
|
"L_VF_m": "0.177,0.339,0.548,0.548",
|
|
"MONTAGEHOEHE_m": "2.441",
|
|
"MOTORSEITE": "rechts",
|
|
"SEITE_AS": "links",
|
|
"SEITE_ES": "links",
|
|
"TYP": "Streckengruppe",
|
|
"VF_Bogen_A_30": "0",
|
|
"VF_Bogen_A_60": "0",
|
|
"VF_Bogen_A_90": "0",
|
|
"VF_Bogen_I_30": "0",
|
|
"VF_Bogen_I_60": "0",
|
|
"VF_Bogen_I_90": "2",
|
|
"VF_WINKEL": "0,0,21,0",
|
|
"WINKEL_AS": "90",
|
|
"WINKEL_ES": "90"
|
|
}
|
|
}
|
|
}
|