Lisp (vf_linienzug.lsp/vf_spec.lsp): - vsp-eingang-hoehe unterstuetzt jetzt "auto" (NIL-Token statt REAL) - bewusst keine Zahl vorgeben, der Bauablauf berechnet seinen eigenen Vorschlag, wie bei leerer Konsoleneingabe - vfl-journal-reset-lauf: internes Reset innerhalb von vf-linienzug-modus/ -modus2 loescht *vfl-replay-queue*/*vflw-pending* nicht mehr mit (Bug: REPLAY-getriebener Bau (vsp-bau-aus-spec) brach mitten in der Kette ab, weil eine noch unverbrauchte Queue verworfen wurde) Python-Gegenstueck nachgezogen (lib/vf_linienzug_grammatik.py, lib/vf_spec_export.py, lib/vf_journal_export.py): - NIL-Token-Unterstuetzung fuer eingang_hoehe="auto" im gemeinsamen Parser-Kern, im Schreiber (SpecSchreiber) und in der Protokoll-Annotation - gf_verteilung ist im Schreiber jetzt an der Feldpraesenz in der Spec festgemacht statt an einem Grammatik-Flag (selbstbeschreibend, deckt Specs mit und ohne diese Frage ab, ohne dass der Aufrufer die Grammatik kennen muss) - Rundlauf-Pruefung (main(), test_verlustfrei) toleriert jetzt die bekannte, schon dokumentierte Erweiterung um drei neue Linie-GF-Pflichtfragen (ist_teilfolge statt exakter Gleichheit) - test_gleiche_journale_wie_protokoll: alle 5 Ketten in hundm05.json weichen inzwischen vom Rohprotokoll ab (Kette 1 bewusst wegen eingang_hoehe, Ketten 2-5 schon laenger wegen Handkorrektur gegen echte DXF-Positionen) - expliziter Skip mit Begruendung statt leerem Loop tests/testdata/hundm05.json: - mm-Werte (dl, Start-/Stuetzpunkte, Koordinaten der Nachtrag-Objekte) auf eine Nachkommastelle gerundet - nicht abgefragte Kopf-Metadaten entfernt (beschreibung, sivas_id, sivas_bezeichnung, planquadrat, block, dxf_handle) - nur quelle bleibt Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
459 lines
11 KiB
JSON
459 lines
11 KiB
JSON
[
|
|
{
|
|
"spec_id": "VF_hundm05_LZ_01",
|
|
"modus": 1,
|
|
"start_punkt": [4912.2, 1230.9, 2154.0],
|
|
"start_hoehe": 2154.0,
|
|
"as": 1,
|
|
"as_winkel": "90",
|
|
"as_seite": "links",
|
|
"quelle": "INSERT 1BEB5 (Block VF_87) in polylines.dxf, XDATA-App SSG_VF_EDIT, Marker linienzug; im Journal aufgezeichneter Kettenstart: [4912.239129, 1230.886425, 0.000000]"
|
|
},
|
|
{
|
|
"glied": "Linie-GF",
|
|
"nr": 1,
|
|
"dl": 2249.3,
|
|
"hz": 90.0,
|
|
"gefaelle": "winkel",
|
|
"winkel": 3.0,
|
|
"ende": "nein"
|
|
},
|
|
{
|
|
"glied": "Horizontal-VF",
|
|
"nr": 2,
|
|
"dl": 3256.9,
|
|
"vf_sep_vor": 0,
|
|
"vf_sep_nach": 0,
|
|
"vf_ende": "nein",
|
|
"vf_separator": 0
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 90,
|
|
"seite": "rechts",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "horizontal",
|
|
"dl": 1434.1,
|
|
"sep_vor": 0,
|
|
"sep_nach": 0
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 90,
|
|
"seite": "rechts",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "motorstation"
|
|
},
|
|
{
|
|
"glied": "Horizontal-VF",
|
|
"nr": 3,
|
|
"dl": 1210.1,
|
|
"eingang_hoehe": "auto",
|
|
"vf_sep_vor": 0,
|
|
"vf_sep_nach": 0,
|
|
"vf_ende": "ja-mit-es"
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 30,
|
|
"seite": "rechts",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "horizontal",
|
|
"dl": 1830.3,
|
|
"sep_vor": 0,
|
|
"sep_nach": 0
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 30,
|
|
"seite": "links",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "motorstation"
|
|
},
|
|
{
|
|
"glied": "ES",
|
|
"nr": 4,
|
|
"winkel": "90",
|
|
"seite": "links"
|
|
},
|
|
{
|
|
"spec_id": "VF_hundm05_LZ_02",
|
|
"modus": 1,
|
|
"start_punkt": [9570.9, 1167.5, 2154.0],
|
|
"start_hoehe": 2154.0,
|
|
"as": 1,
|
|
"as_winkel": "90",
|
|
"as_seite": "links",
|
|
"quelle": "Uebersetzt aus tests/testdata/linienzug_tests.json (aufgezeichneter BricsCAD-Lauf, gleicher Block VF_1), Startpunkt auf die reale DXF-Position dieser Instanz gesetzt: INSERT 119B (Block VF_1) in results/test_hundM05.dxf; Sivas-Id/Planquadrat aus results/export.csv (TeileId 0034); ersetzt die alte, per sub=auf-ab behelfsmaessig nachgebaute Fassung"
|
|
},
|
|
{
|
|
"glied": "Horizontal-VF",
|
|
"nr": 1,
|
|
"dl": 5854.8,
|
|
"hz": 90.0,
|
|
"eingang_hoehe": 1800.0,
|
|
"vf_sep_vor": 0,
|
|
"vf_sep_nach": 0,
|
|
"vf_ende": "automatisch"
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 90,
|
|
"seite": "rechts",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "horizontal",
|
|
"dl": 457.5,
|
|
"sep_vor": 0,
|
|
"sep_nach": 0
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 90,
|
|
"seite": "rechts",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "kettenende",
|
|
"es": 1,
|
|
"es_winkel": "90",
|
|
"es_seite": "links",
|
|
"dl": 5854.8,
|
|
"hoehe": 2154.0,
|
|
"winkel_idx": 3
|
|
},
|
|
{
|
|
"spec_id": "VF_hundm05_LZ_03",
|
|
"modus": 1,
|
|
"start_punkt": [13648.0, 1168.0, 2154.0],
|
|
"start_hoehe": 2154.0,
|
|
"as": 1,
|
|
"as_winkel": "90",
|
|
"as_seite": "links",
|
|
"quelle": "Uebersetzt aus tests/testdata/linienzug_tests.json (aufgezeichneter BricsCAD-Lauf, gleicher Block VF_1), Startpunkt auf die reale DXF-Position dieser Instanz gesetzt: INSERT 12A9 (Block VF_1) in results/test_hundM05.dxf; Sivas-Id/Planquadrat aus results/export.csv (TeileId 0033); ersetzt die alte, per sub=auf-ab behelfsmaessig nachgebaute Fassung"
|
|
},
|
|
{
|
|
"glied": "Horizontal-VF",
|
|
"nr": 1,
|
|
"dl": 5854.8,
|
|
"hz": 90.0,
|
|
"eingang_hoehe": 1800.0,
|
|
"vf_sep_vor": 0,
|
|
"vf_sep_nach": 0,
|
|
"vf_ende": "automatisch"
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 90,
|
|
"seite": "rechts",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "horizontal",
|
|
"dl": 457.5,
|
|
"sep_vor": 0,
|
|
"sep_nach": 0
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 90,
|
|
"seite": "rechts",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "kettenende",
|
|
"es": 1,
|
|
"es_winkel": "90",
|
|
"es_seite": "links",
|
|
"dl": 5854.8,
|
|
"hoehe": 2154.0,
|
|
"winkel_idx": 3
|
|
},
|
|
{
|
|
"spec_id": "VF_hundm05_LZ_04",
|
|
"modus": 1,
|
|
"start_punkt": [17816.0, 1168.5, 2154.0],
|
|
"start_hoehe": 2154.0,
|
|
"as": 1,
|
|
"as_winkel": "90",
|
|
"as_seite": "links",
|
|
"quelle": "Uebersetzt aus tests/testdata/linienzug_tests.json (aufgezeichneter BricsCAD-Lauf, gleicher Block VF_1), Startpunkt auf die reale DXF-Position dieser Instanz gesetzt: INSERT 12D0 (Block VF_1) in results/test_hundM05.dxf; Sivas-Id/Planquadrat aus results/export.csv (TeileId 0032); ersetzt die alte, per sub=auf-ab behelfsmaessig nachgebaute Fassung"
|
|
},
|
|
{
|
|
"glied": "Horizontal-VF",
|
|
"nr": 1,
|
|
"dl": 5854.8,
|
|
"hz": 90.0,
|
|
"eingang_hoehe": 1800.0,
|
|
"vf_sep_vor": 0,
|
|
"vf_sep_nach": 0,
|
|
"vf_ende": "automatisch"
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 90,
|
|
"seite": "rechts",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "horizontal",
|
|
"dl": 457.5,
|
|
"sep_vor": 0,
|
|
"sep_nach": 0
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 90,
|
|
"seite": "rechts",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "kettenende",
|
|
"es": 1,
|
|
"es_winkel": "90",
|
|
"es_seite": "links",
|
|
"dl": 5854.8,
|
|
"hoehe": 2154.0,
|
|
"winkel_idx": 3
|
|
},
|
|
{
|
|
"spec_id": "VF_hundm05_LZ_05",
|
|
"modus": 1,
|
|
"start_punkt": [21590.2, 1167.4, 2154.0],
|
|
"start_hoehe": 2154.0,
|
|
"as": 1,
|
|
"as_winkel": "90",
|
|
"as_seite": "links",
|
|
"quelle": "Uebersetzt aus tests/testdata/linienzug_tests.json (aufgezeichneter BricsCAD-Lauf, gleicher Block VF_1), Startpunkt auf die reale DXF-Position dieser Instanz gesetzt: INSERT 12F7 (Block VF_1) in results/test_hundM05.dxf; Sivas-Id/Planquadrat aus results/export.csv (TeileId 0001); ersetzt die alte, per sub=auf-ab behelfsmaessig nachgebaute Fassung"
|
|
},
|
|
{
|
|
"glied": "Horizontal-VF",
|
|
"nr": 1,
|
|
"dl": 5854.8,
|
|
"hz": 90.0,
|
|
"eingang_hoehe": 1800.0,
|
|
"vf_sep_vor": 0,
|
|
"vf_sep_nach": 0,
|
|
"vf_ende": "automatisch"
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 90,
|
|
"seite": "rechts",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "horizontal",
|
|
"dl": 457.5,
|
|
"sep_vor": 0,
|
|
"sep_nach": 0
|
|
},
|
|
{
|
|
"sub": "vario-kurve",
|
|
"winkel": 90,
|
|
"seite": "rechts",
|
|
"variante": "innen"
|
|
},
|
|
{
|
|
"sub": "kettenende",
|
|
"es": 1,
|
|
"es_winkel": "90",
|
|
"es_seite": "links",
|
|
"dl": 5854.8,
|
|
"hoehe": 2154.0,
|
|
"winkel_idx": 3
|
|
},
|
|
{
|
|
"id": "KR_Kreuz_Q2_90Grad",
|
|
"function": "insert",
|
|
"x": 1544,
|
|
"y": 767,
|
|
"z": 2154,
|
|
"abstand": 23300,
|
|
"rotation": 0,
|
|
"typ": "STANDARD",
|
|
"expect_block_prefix": "KREISEL_",
|
|
"expect_hoehe": "2154",
|
|
"expect_kreiselart": "STANDARD"
|
|
},
|
|
{
|
|
"id": "HundM05_SEP_01",
|
|
"comment": "Separator 1 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "S-LP",
|
|
"x": 2355,
|
|
"y": 365,
|
|
"z": 2154,
|
|
"rotation": 0
|
|
},
|
|
{
|
|
"id": "HundM05_SEP_02",
|
|
"comment": "Separator 2 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "S-LP",
|
|
"x": 4052.8,
|
|
"y": 1165.9,
|
|
"z": 2154,
|
|
"rotation": 180
|
|
},
|
|
{
|
|
"id": "HundM05_SCANNER_02",
|
|
"comment": "Scanner zu Separator 2 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "Scanner",
|
|
"x": 4095.5,
|
|
"y": 1164.1,
|
|
"z": 2154,
|
|
"rotation": 270
|
|
},
|
|
{
|
|
"id": "HundM05_SEP_03",
|
|
"comment": "Separator 3 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "S-LP",
|
|
"x": 7831.8,
|
|
"y": 1169.5,
|
|
"z": 2154,
|
|
"rotation": 180
|
|
},
|
|
{
|
|
"id": "HundM05_SCANNER_03",
|
|
"comment": "Scanner zu Separator 3 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "Scanner",
|
|
"x": 7874.5,
|
|
"y": 1167.7,
|
|
"z": 2154,
|
|
"rotation": 270
|
|
},
|
|
{
|
|
"id": "HundM05_SEP_04",
|
|
"comment": "Separator 4 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "S-LP",
|
|
"x": 12191.0,
|
|
"y": 1168.2,
|
|
"z": 2154,
|
|
"rotation": 180
|
|
},
|
|
{
|
|
"id": "HundM05_SCANNER_04",
|
|
"comment": "Scanner zu Separator 4 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "Scanner",
|
|
"x": 12233.7,
|
|
"y": 1166.4,
|
|
"z": 2154,
|
|
"rotation": 270
|
|
},
|
|
{
|
|
"id": "HundM05_SEP_05",
|
|
"comment": "Separator 5 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "S-LP",
|
|
"x": 16488.4,
|
|
"y": 1171.7,
|
|
"z": 2154,
|
|
"rotation": 180
|
|
},
|
|
{
|
|
"id": "HundM05_SCANNER_05",
|
|
"comment": "Scanner zu Separator 5 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "Scanner",
|
|
"x": 16531.1,
|
|
"y": 1169.8,
|
|
"z": 2154,
|
|
"rotation": 270
|
|
},
|
|
{
|
|
"id": "HundM05_SEP_06",
|
|
"comment": "Separator 6 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "S-LP",
|
|
"x": 20765.0,
|
|
"y": 1166.2,
|
|
"z": 2154,
|
|
"rotation": 180
|
|
},
|
|
{
|
|
"id": "HundM05_SCANNER_06",
|
|
"comment": "Scanner zu Separator 6 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "Scanner",
|
|
"x": 20807.7,
|
|
"y": 1164.3,
|
|
"z": 2154,
|
|
"rotation": 270
|
|
},
|
|
{
|
|
"id": "HundM05_SEP_07",
|
|
"comment": "Separator 7 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "S-LP",
|
|
"x": 23738.0,
|
|
"y": 1170.6,
|
|
"z": 2154,
|
|
"rotation": 180
|
|
},
|
|
{
|
|
"id": "HundM05_SCANNER_07",
|
|
"comment": "Scanner zu Separator 7 (Nachtrag HundM05, reale Koordinate laut Anwender)",
|
|
"function": "insert",
|
|
"block": "Scanner",
|
|
"x": 23780.8,
|
|
"y": 1168.8,
|
|
"z": 2154,
|
|
"rotation": 270
|
|
},
|
|
{
|
|
"id": "HundM05_SEP_08",
|
|
"comment": "Separator 8 (Nachtrag HundM05, reale Koordinate laut Anwender, ohne zugehoerigen Scanner)",
|
|
"function": "insert",
|
|
"block": "S-LP",
|
|
"x": 24630.1,
|
|
"y": 1167.2,
|
|
"z": 2154,
|
|
"rotation": 180
|
|
},
|
|
{
|
|
"id": "HundM05_BTMT_BEL_01",
|
|
"comment": "BTMT Beladung 1 (Nachtrag HundM05, Insertpoint aus tests/testdata/hundmM05_1.csv Elementnummer 23 dekodiert, siehe lib/export_graph.decode_insertpoint)",
|
|
"function": "insert",
|
|
"block": "BTMT-Beladung",
|
|
"x": 5290.9,
|
|
"y": 370.2,
|
|
"z": 0,
|
|
"rotation": 179.03
|
|
},
|
|
{
|
|
"id": "HundM05_BTMT_BEL_02",
|
|
"comment": "BTMT Beladung 2 (Nachtrag HundM05, Insertpoint aus tests/testdata/hundmM05_1.csv Elementnummer 22 dekodiert, siehe lib/export_graph.decode_insertpoint)",
|
|
"function": "insert",
|
|
"block": "BTMT-Beladung",
|
|
"x": 4261.2,
|
|
"y": 374.2,
|
|
"z": 0,
|
|
"rotation": 179.18
|
|
},
|
|
{
|
|
"id": "HundM05_BTMT_ENT_01",
|
|
"comment": "BTMT Entladung 1 (Nachtrag HundM05, aus tests/testdata/hundmM05_1.csv Elementnummer 21: y/z/rotation aus dem Insertpoint dekodiert, x aus K1 rekonstruiert, da der Insertpoint-KOS-String bei ca. 8.39 m saettigt - siehe csv:kos-encode in Lisp/export.lsp)",
|
|
"function": "insert",
|
|
"block": "SC_Entladung",
|
|
"x": 24768.7,
|
|
"y": 1170.3,
|
|
"z": 0,
|
|
"rotation": 0.97
|
|
}
|
|
]
|