From 776ab05f921d006e251dd3c9b5a88369ed50d5ba Mon Sep 17 00:00:00 2001 From: Samer Ayadi Date: Thu, 10 Sep 2026 10:28:31 +0200 Subject: [PATCH] HundM05: fehlende BTMT Be-/Entladung nachgetragen TEST_HUNDM05 baute bisher keine BTMT-Beladung/SC_Entladung-Stationen, weil hundm05.json anders als mubea.json nie Eintraege dafuer hatte - dadurch fehlten sie im CSV-Export der Testanlage. Koordinaten/Rotation aus dem Insertpoint/K1-KOS-String der realen Referenz-CSV (hundmM05_1.csv) dekodiert und als "block"-Eintraege ergaenzt; der bestehende generische _.INSERT-Pfad in hundm05:bau-sensor baut sie ohne weitere Code-Aenderung. Kommentare/Doku (test_hundm05.lsp, object_data.md Abschnitt 5) an die jetzt nicht mehr auf Separator/ Scanner beschraenkte Nutzung angepasst. Co-Authored-By: Claude Sonnet 5 --- tests/test_hundm05.lsp | 34 +++++++++++++++----------- tests/testdata/hundm05.json | 30 +++++++++++++++++++++++ tests/testdata/hundmM05_1.csv | 45 +++++++++++++++++++++++++++++++++++ tests/testdata/object_data.md | 28 +++++++++++++--------- 4 files changed, 112 insertions(+), 25 deletions(-) create mode 100644 tests/testdata/hundmM05_1.csv diff --git a/tests/test_hundm05.lsp b/tests/test_hundm05.lsp index 2c787cb..13a9b56 100644 --- a/tests/test_hundm05.lsp +++ b/tests/test_hundm05.lsp @@ -59,10 +59,14 @@ ;; unveraendert ans Dateiende (sonst waeren sie beim naechsten Lauf weg). ;; ;; Unterstuetzt: Kreisel (function "insert", wie test_kreisel.lsp) und -;; Separator/Scanner (zusaetzlich "block", wie in mubea.json - Schema -;; tests/testdata/object_data.md Abschnitt 5). Unterscheidung ueber das -;; Feld "block": nur Separator/Scanner-Eintraege haben es. -;; Weitere Arten kommen als eigener cond-Zweig dazu. +;; beliebige eigenstaendige Bloecke ueber "block" (Separator/Scanner sowie +;; BTMT-Beladung/SC_Entladung, wie in mubea.json - Schema tests/testdata/ +;; object_data.md Abschnitt 5). Unterscheidung ueber das Feld "block": nur +;; Bloecke haben es, Kreisel-Eintraege nicht. hundm05:bau-sensor ist dabei +;; blockname-agnostisch (reiner _.INSERT), der "kind"-Wert "sensor" bleibt +;; als Sammelbegriff fuer "kein Kreisel" bestehen (siehe dort). +;; Weitere Arten (die kein reiner _.INSERT sind) kommen als eigener +;; cond-Zweig dazu. (defun hundm05:zusatz-objekt-p (obj) (and (ssg-val obj "function") @@ -119,16 +123,18 @@ (vsp-set (vsp-set rec "status" "abbruch") "fehler_text" "kreisel-insert-script lieferte nil")))))) -;; Separator/Scanner bauen ("block"-Eintraege, siehe object_data.md -;; Abschnitt 5). ils-insert-sensor (SSG_LIB_Commands.lsp) ist dafuer NICHT -;; scriptbar (fragt Punkt/Rotation per getpoint/pause in einer Schleife) - -;; wir bauen den _.INSERT darum direkt selbst nach, wie -;; mubea:build-separator-one in tests/test_mubea.lsp es fuer die -;; Mubea-Anlage schon vorgemacht hat (dieselbe Vorlage, hier auf das -;; hundm05:bau-*/vsp-rec-neu-Record-Format dieser Datei uebertragen statt -;; mubeas eigenes result-json). "sensor" als Sammelbegriff fuer den "kind"- -;; Wert, weil dieselbe Routine Separator UND Scanner einfuegt - genau wie -;; ils-insert-sensor selbst. +;; Separator/Scanner/BTMT-Beladung/SC_Entladung bauen ("block"-Eintraege, +;; siehe object_data.md Abschnitt 5). ils-insert-sensor/ils-insert-station +;; (SSG_LIB_Commands.lsp) sind dafuer NICHT scriptbar (fragen Punkt/Rotation +;; per getpoint/pause in einer Schleife) - wir bauen den _.INSERT darum +;; direkt selbst nach, wie mubea:build-separator-one in tests/test_mubea.lsp +;; es fuer die Mubea-Anlage (inkl. deren BTMT-Stationen) schon vorgemacht hat +;; (dieselbe Vorlage, hier auf das hundm05:bau-*/vsp-rec-neu-Record-Format +;; dieser Datei uebertragen statt mubeas eigenes result-json). Der Blockname +;; kommt unveraendert aus dem "block"-Feld - kein Katalog/Whitelist noetig, +;; jeder ueber ssg-ils-block-laden aufloesbare Blockname funktioniert. "sensor" +;; bleibt als Sammelbegriff fuer den "kind"-Wert (= "kein Kreisel"), auch wenn +;; inzwischen nicht mehr nur Separator/Scanner darueberlaufen. (defun hundm05:bau-sensor (obj / id blockname x y z rotation pt eff n ent ed rec) (setq id (ssg-val obj "id")) (setq blockname (ssg-val obj "block")) diff --git a/tests/testdata/hundm05.json b/tests/testdata/hundm05.json index 9936b0a..230ed69 100644 --- a/tests/testdata/hundm05.json +++ b/tests/testdata/hundm05.json @@ -567,5 +567,35 @@ "y": 1167.22, "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.87, + "y": 370.24, + "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.22, + "y": 374.24, + "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.70, + "y": 1170.29, + "z": 0, + "rotation": 0.97 } ] diff --git a/tests/testdata/hundmM05_1.csv b/tests/testdata/hundmM05_1.csv new file mode 100644 index 0000000..87b68ad --- /dev/null +++ b/tests/testdata/hundmM05_1.csv @@ -0,0 +1,45 @@ +Elementnummer;TeileArt;TeileId;Bezeichnung;Planquadrat;Anzahl;Position;Boundingbox;Insertpoint;K1;K2;K3;K4;Nachbarn;Fehler;Warnungen;Merkmale +1;"ILS 2.0 Strecke";"0001";"VarioFoerderer :5";"N/4";1;"5767.81, 4188.30, 1929.22";"2931.92, 6056.23, 619.56";"SvRvEsgmIN4QAAAAAAAAAAAA";"AKgKADAUAFQk";"AQs6ADXRAEII";"";"";"0006-L";"nur ein Partner";"";{"Typ": "Streckengruppe", "Seite_AS": "links", "Seite_ES": "links", "Winkel": "3,3,3", "VF_Winkel": "0,0,0,0", "DeltaH_mm": "463", "DeltaL_mm": "1934", "L_VF_m": "1.859,1.434,0.1,1.83", "L_GF_m": "1.826,0.4,0.4", "Montagehoehe_m": "1.922", "Hoehe_Von_mm": "2154", "Hoehe_Bis_mm": "1690", "Antriebfahrtrichtung": "horizontal,horizontal,horizontal,horizontal", "Anzahl_Separator": "4", "Anzahl_Scanner": "0"} +2;"ILS 2.0 Strecke";"0002";"VarioFoerderer :4";"P/4";1;"9161.98, 3793.34, 2300.16";"2400.37, 5274.44, 1082.19";"f///ErhJIN4QAAAAAAAAAAAA";"ATcBAC/sAFQk";"AZS7AC/oAFy8";"";"";"0006-L";"nur ein Partner";"";{"Typ": "Streckengruppe", "Seite_AS": "links", "Seite_ES": "links", "Winkel": "3,3,3", "VF_Winkel": "0,0,39,0", "DeltaH_mm": "220", "DeltaL_mm": "1788", "L_VF_m": "0.177,0.339,0.356,0.548", "L_GF_m": "2.727,0.4,0.418", "Montagehoehe_m": "2.264", "Hoehe_Von_mm": "2154", "Hoehe_Bis_mm": "2374", "Antriebfahrtrichtung": "horizontal,horizontal,Auf,horizontal", "Anzahl_Separator": "3", "Anzahl_Scanner": "1"} +3;"ILS 2.0 Strecke";"0003";"VarioFoerderer :3";"R/4";1;"13506.79, 3804.49, 2300.16";"2400.37, 5274.44, 1082.19";"f///EuPTIN4QAAAAAAAAAAAA";"AeC6ADBbAFQk";"Aj5zADBXAFy8";"";"";"0006-L";"nur ein Partner";"";{"Typ": "Streckengruppe", "Seite_AS": "links", "Seite_ES": "links", "Winkel": "3,3,3", "VF_Winkel": "0,0,39,0", "DeltaH_mm": "220", "DeltaL_mm": "1788", "L_VF_m": "0.177,0.339,0.356,0.548", "L_GF_m": "2.727,0.4,0.418", "Montagehoehe_m": "2.264", "Hoehe_Von_mm": "2154", "Hoehe_Bis_mm": "2374", "Antriebfahrtrichtung": "horizontal,horizontal,Auf,horizontal", "Anzahl_Separator": "2", "Anzahl_Scanner": "0"} +4;"ILS 2.0 Strecke";"0004";"VarioFoerderer :2";"T/4";1;"17791.58, 3771.88, 2300.16";"2400.37, 5274.44, 1082.19";"f///EmRwIN4QAAAAAAAAAAAA";"AogZAC8VAFQk";"AuXTAC8RAFy8";"";"";"0006-L";"nur ein Partner";"";{"Typ": "Streckengruppe", "Seite_AS": "links", "Seite_ES": "links", "Winkel": "3,3,3", "VF_Winkel": "0,0,39,0", "DeltaH_mm": "220", "DeltaL_mm": "1788", "L_VF_m": "0.177,0.339,0.356,0.548", "L_GF_m": "2.727,0.4,0.418", "Montagehoehe_m": "2.264", "Hoehe_Von_mm": "2154", "Hoehe_Bis_mm": "2374", "Antriebfahrtrichtung": "horizontal,horizontal,Auf,horizontal", "Anzahl_Separator": "2", "Anzahl_Scanner": "1"} +5;"ILS 2.0 Strecke";"0005";"VarioFoerderer :1";"V/4";1;"22081.12, 3780.10, 2300.16";"2400.37, 5274.44, 1082.19";"f///EoSOIN4QAAAAAAAAAAAA";"Ay+pAC9nAFQk";"A41jAC9jAFy8";"";"";"0006-L";"nur ein Partner";"";{"Typ": "Streckengruppe", "Seite_AS": "links", "Seite_ES": "links", "Winkel": "3,3,3", "VF_Winkel": "0,0,39,0", "DeltaH_mm": "220", "DeltaL_mm": "1788", "L_VF_m": "0.177,0.339,0.356,0.548", "L_GF_m": "2.727,0.4,0.418", "Montagehoehe_m": "2.264", "Hoehe_Von_mm": "2154", "Hoehe_Bis_mm": "2374", "Antriebfahrtrichtung": "horizontal,horizontal,Auf,horizontal", "Anzahl_Separator": "3", "Anzahl_Scanner": "1"} +6;"ILS 2.0 Kreisel";"0006";"Kreisel :1";"L/3";1;"13594.00, 767.00, 2154.00";"24100.00, 800.00, 1.00";"F49AC7QYIN4QAAAAAAAAAAAA";"";"";"";"";"0005, 0004, 0003, 0002, 0001";"";"";{"Abstand (Kreiselachse A - Kreiselachse) in Meter": "23.3", "Anzahl der Separatoren": "5", "Kreiselart": "STANDARD", "Anzahl der Scanner": "3", "Anzahl der Rampen": "0", "Höhe in m": "2.15", "Drehrichtung": "UZS", "Drehung": 0, "Name": "Kreisel1", "Geruest fuer Einzelmodul": true} +7;"ILS 2.0 Separator";"0007";"Separator :19";"L/3";1;"2414.95, 365.00, 2155.50";"209.90, 150.00, 3.00";"I+84BZHIIN4QAAAAAAAAAAAA";"";"";"";"";"";"";"";{"Zuordnung": "0006-R", "ARTINR": "200000077", "Höhe": "2154", "Drehung": 0} +8;"ILS 2.0 Separator";"0008";"Separator :18";"M/4";1;"3992.84, 1165.94, 2155.50";"209.90, 150.00, 3.00";"Pdc2Ecp0IN4QAAAAAAAAf///";"";"";"";"";"";"";"";{"Zuordnung": "0006-L", "ARTINR": "200000077", "Höhe": "2154", "Drehung": 180} +9;"ILS 2.0 Scanner";"0009";"Scanner :6";"M/4";1;"4095.51, 804.08, 2154.00";"150.00, 280.00, 1.00";"Pn4WEcMwIN4QAAAAAAAApX2I";"";"";"";"";"";"";"";{"Zuordnung": "0006-L", "ARTINR": "829534306", "Höhe": "2154", "Drehung": 270, "Naechster Separator": "0008"} +10;"ILS 2.0 Separator";"0010";"Separator :17";"O/4";1;"7656.12, 1169.07, 2155.50";"209.90, 150.00, 3.00";"dbzrEdawIN4QAAAAAAAAf///";"";"";"";"";"";"";"";{"Zuordnung": "0006-L", "ARTINR": "200000077", "Höhe": "2154", "Drehung": 180} +11;"ILS 2.0 Scanner";"0011";"Scanner :5";"O/4";1;"7874.49, 807.67, 2154.00";"150.00, 280.00, 1.00";"eCe6EdE2IN4QAAAAAAAApX2I";"";"";"";"";"";"";"";{"Zuordnung": "0006-L", "ARTINR": "829534306", "Höhe": "2154", "Drehung": 270, "Naechster Separator": "0010"} +12;"ILS 2.0 Separator";"0012";"Separator :16";"Q/4";1;"12002.69, 1166.67, 2155.50";"209.90, 150.00, 3.00";"f///Ec1PIN4QAAAAAAAAf///";"";"";"";"";"";"";"";{"Zuordnung": "0003", "ARTINR": "200000077", "Höhe": "2154", "Drehung": 180} +13;"ILS 2.0 Scanner";"0013";"Scanner :4";"Q/4";1;"12233.73, 806.39, 2154.00";"150.00, 280.00, 1.00";"f///Ecw2IN4QAAAAAAAApX2I";"";"";"";"";"";"";"";{"Zuordnung": "0006-L", "ARTINR": "829534306", "Höhe": "2154", "Drehung": 270, "Naechster Separator": "0012"} +14;"ILS 2.0 Separator";"0014";"Separator :15";"S/4";1;"16288.21, 1167.73, 2155.50";"209.90, 150.00, 3.00";"f///EdF0IN4QAAAAAAAAf///";"";"";"";"";"";"";"";{"Zuordnung": "0004", "ARTINR": "200000077", "Höhe": "2154", "Drehung": 180} +15;"ILS 2.0 Scanner";"0015";"Scanner :3";"T/4";1;"16531.10, 809.84, 2154.00";"150.00, 280.00, 1.00";"f///EdmwIN4QAAAAAAAApX2I";"";"";"";"";"";"";"Distanz-Zuordnung unsicher: 0004 (2891mm) vs. 0006 (2965mm)";{"Zuordnung": "0004", "ARTINR": "829534306", "Höhe": "2154", "Drehung": 270, "Naechster Separator": "0014"} +16;"ILS 2.0 Separator";"0016";"Separator :14";"V/4";1;"20571.61, 1168.65, 2155.50";"209.90, 150.00, 3.00";"f///EdUHIN4QAAAAAAAAf///";"";"";"";"";"";"";"";{"Zuordnung": "0006-L", "ARTINR": "200000077", "Höhe": "2154", "Drehung": 180} +17;"ILS 2.0 Scanner";"0017";"Scanner :2";"V/4";1;"20807.68, 804.32, 2154.00";"150.00, 280.00, 1.00";"f///EcQgIN4QAAAAAAAApX2I";"";"";"";"";"";"";"";{"Zuordnung": "0005", "ARTINR": "829534306", "Höhe": "2154", "Drehung": 270, "Naechster Separator": "0016"} +18;"ILS 2.0 Separator";"0018";"Separator :13";"W/4";1;"23678.08, 1170.63, 2155.50";"209.90, 150.00, 3.00";"f///EdzGIN4QAAAAAAAAf///";"";"";"";"";"";"";"";{"Zuordnung": "0006-L", "ARTINR": "200000077", "Höhe": "2154", "Drehung": 180} +19;"ILS 2.0 Scanner";"0019";"Scanner :1";"W/4";1;"23780.75, 808.77, 2154.00";"150.00, 280.00, 1.00";"f///EdWCIN4QAAAAAAAApX2I";"";"";"";"";"";"";"";{"Zuordnung": "0006-L", "ARTINR": "829534306", "Höhe": "2154", "Drehung": 270, "Naechster Separator": "0018"} +20;"ILS 2.0 Separator";"0020";"Separator :12";"W/4";1;"24337.61, 1164.21, 2155.50";"209.90, 150.00, 3.00";"f///EcO1IN4QAAAAAAAAf///";"";"";"";"";"";"";"";{"Zuordnung": "0006-L", "ARTINR": "200000077", "Höhe": "2154", "Drehung": 180} +21;"ILS 2.0 BTMT Entladung";"0021";"BTMT Entladung :1";"X/4";1;"25342.34, 1545.51, -152.91";"1475.53, 962.00, 467.01";"f///Edt0AAAAAAAAAAAAARWq";"A8eHAC1/AAAA";"A9Tl//m4//9E";"";"";"";"";"";{"ARTINR": "400100156", "Höhe": "0", "Drehung": 1} +22;"ILS 2.0 BTMT Beladung";"0022";"BTMT Beladung :2";"M/3";1;"4503.28, 269.83, -44.69";"651.30, 406.65, 316.02";"QQViBbXdAAAAAAAAAAAAf/8q";"AKdD//et//ps";"AKOGAA6pAAAA";"";"";"";"";"";{"ARTINR": "829662012", "Höhe": "0", "Drehung": 179} +23;"ILS 2.0 BTMT Beladung";"0023";"BTMT Beladung :1";"N/3";1;"5532.64, 265.18, -44.69";"652.35, 408.39, 316.02";"ULt1BaZCAAAAAAAAAAAAf/7R";"AM9s//eF//ps";"AMu+AA6DAAAA";"";"";"";"";"";{"ARTINR": "829662012", "Höhe": "0", "Drehung": 179} +24;"ILS 2.0 Separator";"0024";"Separator :1";"N/4";1;"6203.44, 1934.69, 1842.17";"150.00, 209.77, 13.98";"XqgvHglvGoC5AAAAAAAAWoJ4";"";"";"";"";"";"";"";{"Zuordnung": "0001", "ARTINR": "200000077", "Höhe": "1736", "Drehung": 90} +25;"ILS 2.0 Separator";"0025";"Separator :2";"O/6";1;"7158.77, 5463.57, 1920.56";"150.00, 209.77, 13.98";"bTv2U99GGOEZAAAAAAAAWoJ4";"";"";"";"";"";"";"";{"Zuordnung": "0001", "ARTINR": "200000077", "Höhe": "1630", "Drehung": 90} +26;"ILS 2.0 Separator";"0026";"Separator :3";"I/1";1;"4912.24, 4058.51, 2019.89";"150.00, 209.77, 13.98";"tQuRwtrpIf8/AAAAAAAAWoJ4";"";"";"";"";"";"";"";{"Zuordnung": "0001", "ARTINR": "200000077", "Höhe": "2228", "Drehung": 90} +27;"ILS 2.0 Separator";"0027";"Separator :4";"P/4";1;"9723.58, 1783.30, 2525.81";"150.00, 209.77, 13.98";"f///HEarJQqAAAAAAAAAWoJ4";"";"";"";"";"";"";"";{"Zuordnung": "0002", "ARTINR": "200000077", "Höhe": "2427", "Drehung": 90} +28;"ILS 2.0 Separator";"0028";"Separator :5";"G/1";1;"8572.18, 4954.60, 1972.72";"150.00, 209.77, 13.98";"gAABtSm6If5qAAAAAAAAWoJ4";"";"";"";"";"";"";"";{"Zuordnung": "0002", "ARTINR": "200000077", "Höhe": "2227", "Drehung": 90} +29;"ILS 2.0 Separator";"0029";"Separator :6";"R/4";1;"14068.39, 1794.45, 2525.81";"150.00, 209.77, 13.98";"f///HHIlJQg5AAAAAAAAWoJ4";"";"";"";"";"";"";"";{"Zuordnung": "0003", "ARTINR": "200000077", "Höhe": "2426", "Drehung": 90} +30;"ILS 2.0 Separator";"0030";"Separator :7";"E/1";1;"12916.99, 4965.75, 1972.72";"150.00, 209.77, 13.98";"gAABtP4/IgCyAAAAAAAAWoJ4";"";"";"";"";"";"";"";{"Zuordnung": "0003", "ARTINR": "200000077", "Höhe": "2228", "Drehung": 90} +31;"ILS 2.0 Separator";"0031";"Separator :8";"T/4";1;"18353.18, 1761.84, 2525.81";"150.00, 209.77, 13.98";"f///G/LwJQ7kAAAAAAAAWoJ4";"";"";"";"";"";"";"";{"Zuordnung": "0004", "ARTINR": "200000077", "Höhe": "2428", "Drehung": 90} +32;"ILS 2.0 Separator";"0032";"Separator :9";"C/1";1;"17201.78, 4933.14, 1972.72";"150.00, 209.77, 13.98";"gAABtX10IfoHAAAAAAAAWoJ4";"";"";"";"";"";"";"";{"Zuordnung": "0004", "ARTINR": "200000077", "Höhe": "2226", "Drehung": 90} +33;"ILS 2.0 Separator";"0033";"Separator :10";"W/4";1;"22642.72, 1770.06, 2525.81";"150.00, 209.77, 13.98";"f///HBMCJQ01AAAAAAAAWoJ4";"";"";"";"";"";"";"";{"Zuordnung": "0005", "ARTINR": "200000077", "Höhe": "2428", "Drehung": 90} +34;"ILS 2.0 Separator";"0034";"Separator :11";"A/1";1;"21491.32, 4941.36, 1972.72";"150.00, 209.77, 13.98";"gAABtV1iIfu1AAAAAAAAWoJ4";"";"";"";"";"";"";"";{"Zuordnung": "0005", "ARTINR": "200000077", "Höhe": "2227", "Drehung": 90} +35;"ILS Ausschleuselement";"0035";"ILS Ausschleuselement :1";"V/4";1;"20830.90, 1213.51, 2227.08";"100.04, 250.02, 30.00";"";"";"";"";"";"0006, 0005";"";"";{"Erzeugt aus": "Kreisel-Strecke-Kollision", "Kreisel": "0006", "Strecke": "0005", "Streckenende": "Anfang"} +36;"ILS Einschleuselement";"0036";"ILS Einschleuselement :1";"W/4";1;"23330.30, 1213.09, 2227.08";"100.04, 250.02, 30.00";"";"";"";"";"";"0006, 0005";"";"";{"Erzeugt aus": "Kreisel-Strecke-Kollision", "Kreisel": "0006", "Strecke": "0005", "Streckenende": "Ende"} +37;"ILS Ausschleuselement";"0037";"ILS Ausschleuselement :2";"T/4";1;"16541.30, 1205.31, 2227.08";"100.04, 250.02, 30.00";"";"";"";"";"";"0006, 0004";"";"";{"Erzeugt aus": "Kreisel-Strecke-Kollision", "Kreisel": "0006", "Strecke": "0004", "Streckenende": "Anfang"} +38;"ILS Einschleuselement";"0038";"ILS Einschleuselement :2";"U/4";1;"19040.70, 1204.89, 2227.08";"100.04, 250.02, 30.00";"";"";"";"";"";"0006, 0004";"";"";{"Erzeugt aus": "Kreisel-Strecke-Kollision", "Kreisel": "0006", "Strecke": "0004", "Streckenende": "Ende"} +39;"ILS Ausschleuselement";"0039";"ILS Ausschleuselement :3";"Q/4";1;"12256.60, 1237.91, 2227.08";"100.04, 250.02, 30.00";"";"";"";"";"";"0006, 0003";"";"";{"Erzeugt aus": "Kreisel-Strecke-Kollision", "Kreisel": "0006", "Strecke": "0003", "Streckenende": "Anfang"} +40;"ILS Einschleuselement";"0040";"ILS Einschleuselement :3";"S/4";1;"14755.90, 1237.49, 2227.08";"100.04, 250.02, 30.00";"";"";"";"";"";"0006, 0003";"";"";{"Erzeugt aus": "Kreisel-Strecke-Kollision", "Kreisel": "0006", "Strecke": "0003", "Streckenende": "Ende"} +41;"ILS Ausschleuselement";"0041";"ILS Ausschleuselement :4";"O/4";1;"7911.70, 1226.81, 2227.08";"100.04, 250.02, 30.00";"";"";"";"";"";"0006, 0002";"";"";{"Erzeugt aus": "Kreisel-Strecke-Kollision", "Kreisel": "0006", "Strecke": "0002", "Streckenende": "Anfang"} +42;"ILS Einschleuselement";"0042";"ILS Einschleuselement :4";"P/4";1;"10411.10, 1226.39, 2227.08";"100.04, 250.02, 30.00";"";"";"";"";"";"0006, 0002";"";"";{"Erzeugt aus": "Kreisel-Strecke-Kollision", "Kreisel": "0006", "Strecke": "0002", "Streckenende": "Ende"} +43;"ILS Ausschleuselement";"0043";"ILS Ausschleuselement :5";"M/4";1;"4251.88, 1227.91, 2041.61";"114.27, 255.36, 30.00";"";"";"";"";"";"0006, 0001";"";"";{"Erzeugt aus": "Kreisel-Strecke-Kollision", "Kreisel": "0006", "Strecke": "0001", "Streckenende": "Anfang"} +44;"ILS Einschleuselement";"0044";"ILS Einschleuselement :5";"O/4";1;"6890.92, 1380.59, 2041.61";"114.27, 255.36, 30.00";"";"";"";"";"";"0006, 0001";"";"";{"Erzeugt aus": "Kreisel-Strecke-Kollision", "Kreisel": "0006", "Strecke": "0001", "Streckenende": "Ende"} diff --git a/tests/testdata/object_data.md b/tests/testdata/object_data.md index 4488269..c3824b1 100644 --- a/tests/testdata/object_data.md +++ b/tests/testdata/object_data.md @@ -538,25 +538,31 @@ kein JSON-Parametersatz. --- -## 5. Separator/Scanner/Sensor — `Lisp/SSG_LIB_Commands.lsp` +## 5. Separator/Scanner/Sensor/BTMT-Station — `Lisp/SSG_LIB_Commands.lsp` -Funktion: `ils-insert-sensor (fname)` +Funktion: `ils-insert-sensor (fname)` (Separator/Scanner) bzw. +`ils-insert-station (rohname)` (BTMT-Beladung/SC_Entladung) — beide fuegen +wiederholt denselben Block interaktiv ein und sind fuer JSON-Testdaten +gleich zu behandeln (siehe unten). | Feld | Typ | Pflicht | Bedeutung | Default | |---|---|---|---|---| -| `block` / `fname` | string | **ja** | Blockdateiname ohne Erweiterung, z.B. `"Separator_SP"`, `"Scanner"`, `"S-LP"` — aufgeloest ueber `ssg-ils-block-datei` (2D/3D-Suffix + Fallback) | - | -| `x`, `y`, `z` | real (mm) | (Wrapper) | Einfuegepunkt — **kein** Parameter von `ils-insert-sensor` | - | +| `block` / `fname` / `rohname` | string | **ja** | Blockdateiname ohne Erweiterung, z.B. `"Separator_SP"`, `"Scanner"`, `"S-LP"`, `"BTMT-Beladung"`, `"SC_Entladung"` — aufgeloest ueber `ssg-ils-block-datei` (2D/3D-Suffix + Fallback) | - | +| `x`, `y`, `z` | real (mm) | (Wrapper) | Einfuegepunkt — **kein** Parameter von `ils-insert-sensor`/`ils-insert-station` | - | | `rotation` | real (Grad) | (Wrapper) | Rotation — **kein** Parameter (kommt per `pause`) | - | -**Nicht scriptbar**: die Funktion fragt Einfuegepunkte in einer Schleife per -`getpoint` ab (`_.INSERT pfad pt "" "" pause` — auch die Rotation kommt per -Maus/`pause`), bis der Nutzer mit ENTER/ESC abbricht. Es gibt keinen -Parameter fuer Punkt, Anzahl oder Rotation. Ein JSON-Treiber muss den -`_.INSERT`-Aufruf direkt selbst nachbilden (Blockdatei-Pfad ueber +**Nicht scriptbar**: beide Funktionen fragen Einfuegepunkte in einer +Schleife per `getpoint` ab (`_.INSERT pfad pt "" "" pause` — auch die +Rotation kommt per Maus/`pause`), bis der Nutzer mit ENTER/ESC abbricht. Es +gibt keinen Parameter fuer Punkt, Anzahl oder Rotation. Ein JSON-Treiber muss +den `_.INSERT`-Aufruf direkt selbst nachbilden (Blockdatei-Pfad ueber `ssg-ils-block-datei` bzw. `ssg-ils-block-laden`, dann `_.INSERT pfad pt "" "" rot` mit festem `rot` statt `pause`) — der Ansatz von -`mubea:build-separator` in `tests/test_mubea.lsp`. Fachlich noetig sind nur -Blockname + Punkt + Rotation. +`mubea:build-separator`/`hundm05:bau-sensor` in `tests/test_mubea.lsp`/ +`tests/test_hundm05.lsp`. Fachlich noetig sind nur Blockname + Punkt + +Rotation, der Blockname selbst ist dabei beliebig (kein Katalog/Whitelist) — +BTMT-Beladung/SC_Entladung laufen ueber denselben JSON-Treiber wie +Separator/Scanner. Vollstaendiges JSON (wie in `mubea.json`s Separator-Eintraegen): ```json