From 28dc3b4301c8a07a1ec7e06a46767bd44d613c5f Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Thu, 10 Sep 2026 15:07:31 +0200 Subject: [PATCH] list_trackids aus Merkmalen in eigene CSV-Spalte "TrackIds" verschoben Statt eines JSON-Merkmals bekommen VF_n/GF_n/Kreisel jetzt eine eigene CSV-Spalte "TrackIds" (nach "Nachbarn", vor "Fehler") mit der Reihenfolge der Separator-/BTMT-/AS-ES-/Weichen-TeileIds entlang der Strecke bzw. um den Kreisel - analog zur bestehenden "Nachbarn"-Spalte statt versteckt im Merkmale-JSON. Referenz-CSV fuer den Omniflo-Test an den neuen Header angepasst. Co-Authored-By: Claude Sonnet 5 --- doc/csv-export.md | 7 +- lib/export_csv.py | 57 ++++---- lib/export_neighbors.py | 7 +- tests/reference/omniflo_export.csv | 216 ++++++++++++++-------------- tests/test_export_kreisel_umlauf.py | 17 +-- 5 files changed, 158 insertions(+), 146 deletions(-) diff --git a/doc/csv-export.md b/doc/csv-export.md index f335823..dbfc2c2 100644 --- a/doc/csv-export.md +++ b/doc/csv-export.md @@ -263,11 +263,12 @@ plus den naechstgelegenen rohen INSERT-Punkt (Item-Felder `_x`/`_y` vs. die sepliste-Koordinate) — beide stammen aus derselben Bauphase und liegen daher nah beieinander, auch wenn sie nicht exakt uebereinstimmen. -### Das Merkmal `"list_trackids"` — Reihenfolge als Item-Merkmal +### Die Spalte `"TrackIds"` — Reihenfolge als eigene CSV-Spalte Zusaetzlich zur `"Nachbarn"`-Spalte (Vorgaenger/Nachfolger je Zeile) traegt `write_separatorliste_merkmale` (`lib/export_csv.py`) jeder VF_n/GF_n-Zeile -das Merkmal `"list_trackids"` ein: die TeileIds ihrer SEP-Eintraege in +die eigene Spalte `"TrackIds"` (`item["trackids"]`, Top-Level-Feld wie +`"nachbarn"` — KEIN Merkmal) ein: die TeileIds ihrer SEP-Eintraege in Baureihenfolge, kommagetrennt (z.B. `"0052, 0053, 0054"`). Quelle ist die rohe `sepliste` des Items (nicht `sep_kette`, dessen dict-Reihenfolge nicht garantiert ist). Muss NACH `map_separator_kette_items` laufen, weil erst @@ -287,7 +288,7 @@ zurueckgegebene Liste beginnt IMMER bei Winkel 0 Grad (Kapsel-Achsrichtung, kleinster Winkel >= 0 Grad in Umlaufrichtung) — `write_kreisel_ separatorliste_merkmale` loest die rohen Umlauf-Schluessel (TeileId eines freien Punkts, sep_kette-Schluessel oder Weichen-Key) auf echte TeileIds auf -und schreibt sie kommagetrennt als `"list_trackids"` auf den Kreisel selbst. +und schreibt sie kommagetrennt in `item["trackids"]` auf den Kreisel selbst. Muss darum NACH `resolve_umlauf_und_sepliste_nachbarn` (bzw. nach allen Zeilen-Registrierungen: `build_kreisel_weiche_items`, `build_strecke_ schleus_items`, `map_separator_kette_items`) laufen. diff --git a/lib/export_csv.py b/lib/export_csv.py index e0b939e..9ace82b 100644 --- a/lib/export_csv.py +++ b/lib/export_csv.py @@ -41,7 +41,7 @@ Aufruf: CSV-Format: Elementnummer;TeileArt;TeileId;Bezeichnung;Planquadrat;Anzahl;Position;Boundingbox; - Insertpoint;K1;K2;K3;K4;Nachbarn;Fehler;Warnungen;Merkmale + Insertpoint;K1;K2;K3;K4;Nachbarn;TrackIds;Fehler;Warnungen;Merkmale Position und Boundingbox stammen aus der von export.lsp (csv:get-bbox, per vla-getboundingbox) ermittelten Bounding-Box je Block: @@ -68,6 +68,13 @@ das trennt bloss ueberlappende BBoxen von echten Anschluessen (Geraden fuehren dafuer beim Export synthetisierte K1/K2, siehe csv:gerade-k-kos-strings). Toleranzen und (Fallback-)Rastergroesse konfigurierbar ueber [Nachbarschaft] in cfg/export.cfg. +TrackIds = kommaseparierte TeileId-Liste der Separatoren/BTMT-Beladung/ +BTMT-Entladung (und bei einem Kreisel zusaetzlich der AS/ES-Streckenenden +und Kreisel-Kreisel-Weichen) entlang einer VF_n/GF_n-Strecke bzw. rund um +einen Kreisel, in Baureihenfolge (Strecke) bzw. Umlaufreihenfolge ab Winkel +0 Grad (Kreisel, siehe export_neighbors.compute_kreisel_umlauf) - nur bei +VF_n/GF_n/Kreisel vorhanden, sonst leer. Siehe write_separatorliste_ +merkmale/write_kreisel_separatorliste_merkmale. Fehler = "unverbunden" (keine Partner, aber mindestens einer noetig), "nur ein Partner" (ein Partner, aber mindestens zwei noetig) oder leer (Mindestanzahl erreicht bzw. TeileArt wird nicht geprueft). Kreisel/Eckrad/ @@ -250,11 +257,11 @@ def build_variofoerderer_merkmale(block): export_raw.json-Dateien (z.B. tests/reference/export_raw.json) und noch nicht neu aufgebaute Bloecke in der Zeichnung weiterhin Werte liefern. - Das Merkmal "list_trackids" (Reihenfolge der Separator-TeileIds entlang - der Strecke) steht hier NICHT drin - es kommt erst nach der sepliste- - Aufloesung dazu (siehe write_separatorliste_merkmale in process_blocks), - weil an dieser Stelle die x/y-Koordinaten aus der sepliste-XDATA noch - nicht auf reale Separator-TeileIds aufgeloest sind. + Die CSV-Spalte "TrackIds" (item["trackids"], Reihenfolge der Separator- + TeileIds entlang der Strecke) steht hier NICHT drin - sie kommt erst nach + der sepliste-Aufloesung dazu (siehe write_separatorliste_merkmale in + process_blocks), weil an dieser Stelle die x/y-Koordinaten aus der + sepliste-XDATA noch nicht auf reale Separator-TeileIds aufgeloest sind. """ attribs = block.get("attribs", {}) @@ -844,9 +851,10 @@ def resolve_umlauf_und_sepliste_nachbarn(items, kreisel_umlauf, sep_kette, def write_separatorliste_merkmale(items, sep_kette_by_key, dbg=None): - """Traegt in jede Strecke (VF_n/GF_n mit "sepliste") das Merkmal - "list_trackids" ein: die TeileIds ihrer Separatoren in Baureihenfolge, - kommagetrennt (analog zu "Zuordnung"/"Nachbarn"), z.B. "0052, 0053, 0054". + """Traegt in jede Strecke (VF_n/GF_n mit "sepliste") die eigene CSV-Spalte + "TrackIds" (item["trackids"]) ein: die TeileIds ihrer Separatoren in + Baureihenfolge, kommagetrennt (analog zur "Nachbarn"-Spalte, ebenfalls + ein Top-Level-Item-Feld statt eines Merkmals), z.B. "0052, 0053, 0054". Quelle ist die rohe "sepliste" des Items (AS/SEP/ES mit x/y, bereits in Baureihenfolge - siehe compute_sep_kette) statt sep_kette selbst: dessen @@ -875,24 +883,24 @@ def write_separatorliste_merkmale(items, sep_kette_by_key, dbg=None): sep_item = sep_kette_by_key.get(key) if sep_item is None: if dbg: - dbg(f" list_trackids {key}: kein aufgeloestes Separator-Item " + dbg(f" TrackIds {key}: kein aufgeloestes Separator-Item " f"- uebersprungen") continue separator_ids.append(sep_item.get("teileid", "")) if separator_ids: - item["merkmale"]["list_trackids"] = ", ".join(separator_ids) + item["trackids"] = ", ".join(separator_ids) def write_kreisel_separatorliste_merkmale(items, kreisel_umlauf, sep_kette_by_key, weiche_by_key, dbg=None): - """Traegt in jeden Kreisel ("ILS 2.0 Kreisel") das Merkmal "list_trackids" - ein (gleicher Schluessel wie bei VF_n/GF_n, siehe write_separatorliste_ - merkmale): die TeileIds aller auf ihm liegenden freien Punkte (Separator, - BTMT Beladung/Entladung - siehe KREISEL_UMLAUF_TEILEARTEN), - andockenden AS/ES-Streckenenden und Kreisel-Kreisel-Weichen, in - Umlaufreihenfolge ab Winkel 0 Grad (siehe compute_kreisel_umlauf - die - Liste beginnt dort bereits bei 0 Grad in Drehrichtung DREHRICHTUNG), - kommagetrennt. + """Traegt in jeden Kreisel ("ILS 2.0 Kreisel") die eigene CSV-Spalte + "TrackIds" (item["trackids"], gleiches Feld wie bei VF_n/GF_n, siehe + write_separatorliste_merkmale) ein: die TeileIds aller auf ihm liegenden + freien Punkte (Separator, BTMT Beladung/Entladung - siehe + KREISEL_UMLAUF_TEILEARTEN), andockenden AS/ES-Streckenenden und Kreisel- + Kreisel-Weichen, in Umlaufreihenfolge ab Winkel 0 Grad (siehe + compute_kreisel_umlauf - die Liste beginnt dort bereits bei 0 Grad in + Drehrichtung DREHRICHTUNG), kommagetrennt. Quelle ist kreisel_umlauf (export_neighbors.compute_kreisel_umlauf), das fuer jeden Kreisel bereits alle Punkte (freie Punkte, AS/ES-Enden, @@ -920,12 +928,12 @@ def write_kreisel_separatorliste_merkmale(items, kreisel_umlauf, sep_kette_by_ke item = alle_schluessel.get(punkt_key) if item is None: if dbg: - dbg(f" list_trackids Kreisel {tid}: kein Item fuer " + dbg(f" TrackIds Kreisel {tid}: kein Item fuer " f"Umlauf-Punkt {punkt_key!r} - uebersprungen") continue teileids.append(item.get("teileid", "")) if teileids: - kreisel_item["merkmale"]["list_trackids"] = ", ".join(teileids) + kreisel_item["trackids"] = ", ".join(teileids) def process_blocks(blocks, lookup, dbg=None): @@ -1325,14 +1333,14 @@ def process_blocks(blocks, lookup, dbg=None): map_separator_kette_items( items, sep_kette, sep_kette_by_key=sep_kette_by_key, dbg=dbg) - # Merkmal "list_trackids" je Strecke (Reihenfolge der SEP-TeileIds aus der + # Spalte "TrackIds" je Strecke (Reihenfolge der SEP-TeileIds aus der # sepliste, x/y bereits oben auf das reale Separator-Item aufgeloest). write_separatorliste_merkmale(items, sep_kette_by_key, dbg=dbg) resolve_umlauf_und_sepliste_nachbarn( items, kreisel_umlauf, sep_kette, sep_kette_by_key, weiche_by_key) - # Merkmal "list_trackids" je Kreisel: dieselben Umlauf-Punkte (freie + # Spalte "TrackIds" je Kreisel: dieselben Umlauf-Punkte (freie # Separatoren, AS/ES-Enden, Kreisel-Kreisel-Weichen), die oben schon die # "Nachbarn"-Spalte gespeist haben, jetzt als eine einzige, bei 0 Grad # beginnende Reihenfolge auf den Kreisel selbst geschrieben (analog zu @@ -1380,6 +1388,7 @@ def format_csv_line(item): f';"{csv_quote(item["k3"])}"' f';"{csv_quote(item["k4"])}"' f';"{csv_quote(item["nachbarn"])}"' + f';"{csv_quote(item.get("trackids", ""))}"' f';"{csv_quote(item["fehler"])}"' f';"{csv_quote(item.get("warnung", ""))}"' f';{merkmale_json}' @@ -1438,7 +1447,7 @@ def main(): print(f"[export_csv] Kollisions-Debuglog geschrieben: {NEIGHBOR_DEBUG_TARGET}") header = ("Elementnummer;TeileArt;TeileId;Bezeichnung;Planquadrat;Anzahl;Position;Boundingbox;" - "Insertpoint;K1;K2;K3;K4;Nachbarn;Fehler;Warnungen;Merkmale") + "Insertpoint;K1;K2;K3;K4;Nachbarn;TrackIds;Fehler;Warnungen;Merkmale") with open(output_csv, "w", encoding="utf-8") as f: f.write(header + "\n") for item in items: diff --git a/lib/export_neighbors.py b/lib/export_neighbors.py index 3ef6f2b..7d0af42 100644 --- a/lib/export_neighbors.py +++ b/lib/export_neighbors.py @@ -75,8 +75,9 @@ OMNIFLO_TEILEARTEN = {"Omniflo Kurve", "Omniflo Weiche", "Omniflo Gerade"} SENSOR_TEILEARTEN = {"ILS 2.0 Separator", "ILS 2.0 Scanner"} # Frei auf der Bahn platzierte Elemente, die im Kreisel-Umlauf -# (compute_kreisel_umlauf) und im Kreisel-Merkmal "list_trackids" (export_csv.py -# write_kreisel_separatorliste_merkmale) als eigene Punkte auftreten koennen - +# (compute_kreisel_umlauf) und in der Kreisel-CSV-Spalte "TrackIds" +# (export_csv.py write_kreisel_separatorliste_merkmale) als eigene Punkte +# auftreten koennen - # wie ein Separator per Bounding-Box-Ueberschneidung einer Kreiselhaelfte/ # einem Kreisel zugeordnet (siehe compute_sensor_zuordnung/compute_kreisel_ # umlauf). BTMT-Beladung/-Entladung sind Stationen AUF der Strecke, keine @@ -1417,7 +1418,7 @@ def compute_kreisel_umlauf(items, sep_kette, tolerance_mm, durchmesser_mm=800.0, diesem Nullpunkt (kleinster Winkel >= 0 Grad in Umlaufrichtung) - das ist fuer die reine Vorgaenger-/Nachfolger-Ermittlung (zirkulaer) irrelevant, aber Voraussetzung fuer eine reproduzierbare, bei 0 Grad beginnende - "list_trackids" (siehe export_csv.py write_kreisel_separatorliste_merkmale). + "TrackIds"-Spalte (siehe export_csv.py write_kreisel_separatorliste_merkmale). items = dieselbe Liste wie bei compute_neighbor_ids/compute_sensor_ zuordnung. sep_kette = Rueckgabe von compute_sep_kette (fuer die AS/ES- diff --git a/tests/reference/omniflo_export.csv b/tests/reference/omniflo_export.csv index 77c1078..79bcff5 100644 --- a/tests/reference/omniflo_export.csv +++ b/tests/reference/omniflo_export.csv @@ -1,109 +1,109 @@ Elementnummer;TeileArt;TeileId;Bezeichnung;Planquadrat;Anzahl;Position;Boundingbox;Nachbarn;Fehler;Merkmale -1;"Omniflo Kurve";"0000";"OFBogen :1";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025"} -2;"Omniflo Kurve";"0000";"OFBogen :2";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025, 0_B10090"} -3;"Omniflo Kurve";"0000";"OFBogen :3";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025, 0_B10091"} -4;"Omniflo Kurve";"0000";"OFBogen :4";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104021"} -5;"Omniflo Kurve";"0000";"OFBogen :5";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104026"} -6;"Omniflo Kurve";"0000";"OFBogen :6";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104026, 0_B10071"} -7;"Omniflo Kurve";"0000";"OFBogen :7";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104037"} -8;"Omniflo Kurve";"0000";"OFBogen :8";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104029"} -9;"Omniflo Kurve";"0000";"OFBogen :9";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031"} -10;"Omniflo Kurve";"0000";"OFBogen :10";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031, 0_B10060"} -11;"Omniflo Kurve";"0000";"OFBogen :11";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031, 0_B10070"} -12;"Omniflo Kurve";"0000";"OFBogen :12";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104024"} -13;"Omniflo Kurve";"0000";"OFBogen :13";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104024, 0_B10081"} -14;"Omniflo Kurve";"0000";"OFBogen :14";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104027"} -15;"Omniflo Kurve";"0000";"OFBogen :15";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104027, 0_B10080"} -16;"Omniflo Kurve";"0000";"OFBogen :16";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104028"} -17;"Omniflo Kurve";"0000";"OFBogen :17";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104065"} -18;"Omniflo Kurve";"0000";"OFBogen :18";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104022"} -19;"Omniflo Kurve";"0000";"OFBogen :19";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 500.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104030"} -20;"Omniflo Kurve";"0000";"OFBogen :20";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033"} -21;"Omniflo Kurve";"0000";"OFBogen :21";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033, 0_B10040"} -22;"Omniflo Kurve";"0000";"OFBogen :22";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033, 0_B10050"} -23;"Omniflo Kurve";"0000";"OFBogen :23";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104035"} -24;"Omniflo Kurve";"0000";"OFBogen :24";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104041"} -25;"Omniflo Kurve";"0000";"OFBogen :25";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104034"} -26;"Omniflo Kurve";"0000";"OFBogen :26";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104066"} -27;"Omniflo Kurve";"0000";"OFBogen :27";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 180.0, "Radius": 650.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104043"} -28;"Omniflo Weiche";"0000";"OFWeiche :1";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342011"} -29;"Omniflo Weiche";"0000";"OFWeiche :2";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342001"} -30;"Omniflo Weiche";"0000";"OFWeiche :3";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342012"} -31;"Omniflo Weiche";"0000";"OFWeiche :4";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342002"} -32;"Omniflo Weiche";"0000";"OFWeiche :1";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342100"} -33;"Omniflo Weiche";"0000";"OFWeiche :2";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342101"} -34;"Omniflo Weiche";"0000";"OFWeiche :1";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342200"} -35;"Omniflo Weiche";"0000";"OFWeiche :2";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342201"} -36;"Omniflo Weiche";"0000";"OFWeiche :5";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372001"} -37;"Omniflo Weiche";"0000";"OFWeiche :6";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372002"} -38;"Omniflo Weiche";"0000";"OFWeiche :7";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372002, 0_BG090090"} -39;"Omniflo Weiche";"0000";"OFWeiche :8";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372004"} -40;"Omniflo Weiche";"0000";"OFWeiche :9";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372005"} -41;"Omniflo Weiche";"0000";"OFWeiche :10";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372005, 0_BG090090"} -42;"Omniflo Weiche";"0000";"OFWeiche :11";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372007"} -43;"Omniflo Weiche";"0000";"OFWeiche :12";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372008"} -44;"Omniflo Weiche";"0000";"OFWeiche :13";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372008, 0_BG190090"} -45;"Omniflo Weiche";"0000";"OFWeiche :14";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372010"} -46;"Omniflo Weiche";"0000";"OFWeiche :15";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372011"} -47;"Omniflo Weiche";"0000";"OFWeiche :16";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372011, 0_BG190090"} -48;"Omniflo Weiche";"0000";"OFWeiche :17";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372021"} -49;"Omniflo Weiche";"0000";"OFWeiche :18";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372022"} -50;"Omniflo Weiche";"0000";"OFWeiche :19";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372024"} -51;"Omniflo Weiche";"0000";"OFWeiche :20";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372025"} -52;"Omniflo Weiche";"0000";"OFWeiche :21";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372027"} -53;"Omniflo Weiche";"0000";"OFWeiche :22";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372028"} -54;"Omniflo Weiche";"0000";"OFWeiche :23";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372028, 0_BG080090"} -55;"Omniflo Weiche";"0000";"OFWeiche :24";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372030"} -56;"Omniflo Weiche";"0000";"OFWeiche :25";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372031"} -57;"Omniflo Weiche";"0000";"OFWeiche :26";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372031, 0_BG080090"} -58;"Omniflo Weiche";"0000";"OFWeiche :27";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372047"} -59;"Omniflo Weiche";"0000";"OFWeiche :28";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372048"} -60;"Omniflo Weiche";"0000";"OFWeiche :29";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372050"} -61;"Omniflo Weiche";"0000";"OFWeiche :30";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372051"} -62;"Omniflo Weiche";"0000";"OFWeiche :3";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372100"} -63;"Omniflo Weiche";"0000";"OFWeiche :4";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372101"} -64;"Omniflo Weiche";"0000";"OFWeiche :5";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372101"} -65;"Omniflo Weiche";"0000";"OFWeiche :6";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372101, 0_BG090090"} -66;"Omniflo Weiche";"0000";"OFWeiche :7";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372101, 0_BG090090"} -67;"Omniflo Weiche";"0000";"OFWeiche :8";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372103"} -68;"Omniflo Weiche";"0000";"OFWeiche :9";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372104"} -69;"Omniflo Weiche";"0000";"OFWeiche :10";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372104"} -70;"Omniflo Weiche";"0000";"OFWeiche :11";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372104, 0_BG190090"} -71;"Omniflo Weiche";"0000";"OFWeiche :12";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372104, 0_BG190090"} -72;"Omniflo Weiche";"0000";"OFWeiche :13";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372106"} -73;"Omniflo Weiche";"0000";"OFWeiche :14";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372107"} -74;"Omniflo Weiche";"0000";"OFWeiche :15";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372109"} -75;"Omniflo Weiche";"0000";"OFWeiche :16";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372110"} -76;"Omniflo Weiche";"0000";"OFWeiche :17";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372110"} -77;"Omniflo Weiche";"0000";"OFWeiche :18";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372110, 0_BG080090"} -78;"Omniflo Weiche";"0000";"OFWeiche :19";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372110, 0_BG080090"} -79;"Omniflo Weiche";"0000";"OFWeiche :20";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372115"} -80;"Omniflo Weiche";"0000";"OFWeiche :21";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372116"} -81;"Omniflo Weiche";"0000";"OFWeiche :3";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372200"} -82;"Omniflo Weiche";"0000";"OFWeiche :4";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372201"} -83;"Omniflo Weiche";"0000";"OFWeiche :5";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372201"} -84;"Omniflo Weiche";"0000";"OFWeiche :6";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372201, 0_BG090090"} -85;"Omniflo Weiche";"0000";"OFWeiche :7";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372201, 0_BG090090"} -86;"Omniflo Weiche";"0000";"OFWeiche :8";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372203"} -87;"Omniflo Weiche";"0000";"OFWeiche :9";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372204"} -88;"Omniflo Weiche";"0000";"OFWeiche :10";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372204"} -89;"Omniflo Weiche";"0000";"OFWeiche :11";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372204, 0_BG190090"} -90;"Omniflo Weiche";"0000";"OFWeiche :12";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372204, 0_BG190090"} -91;"Omniflo Weiche";"0000";"OFWeiche :13";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372206"} -92;"Omniflo Weiche";"0000";"OFWeiche :14";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372207"} -93;"Omniflo Weiche";"0000";"OFWeiche :15";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372209"} -94;"Omniflo Weiche";"0000";"OFWeiche :16";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372210"} -95;"Omniflo Weiche";"0000";"OFWeiche :17";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372210"} -96;"Omniflo Weiche";"0000";"OFWeiche :18";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372210, 0_BG080090"} -97;"Omniflo Weiche";"0000";"OFWeiche :19";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372210, 0_BG080090"} -98;"Omniflo Weiche";"0000";"OFWeiche :20";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372215"} -99;"Omniflo Weiche";"0000";"OFWeiche :21";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372216"} -100;"Omniflo Weiche";"0000";"OFWeiche :1";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372400"} -101;"Omniflo Weiche";"0000";"OFWeiche :2";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372403"} -102;"Omniflo Weiche";"0000";"OFWeiche :3";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372404"} -103;"Omniflo Weiche";"0000";"OFWeiche :4";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG071090, 834372404, 0_BG071090"} -104;"Omniflo Weiche";"0000";"OFWeiche :5";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG071090, 834372404"} -105;"Omniflo Weiche";"0000";"OFWeiche :6";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372404, 0_BG071090"} -106;"Omniflo Weiche";"0000";"OFWeiche :7";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372401"} -107;"Omniflo Weiche";"0000";"OFWeiche :1";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Sternweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372420"} -108;"Omniflo Sum";"autogenerated_of_json";"Omniflo sum";"";1;"";"";"";"";"";"";"";"";"";"";{"Anzahl Bögen": 27, "Anzahl Weichengrundkörper": 0, "Anzahl Einwegweichen": 30, "Anzahl Deltaweichen": 7, "Anzahl Doppelweichen und Dreiwegeweichen": 42, "Anzahl Sternweichen": 1, "Gesamtlänge AP110": 0.0, "Gesamtlänge AP60": 0.0} +1;"Omniflo Kurve";"0000";"OFBogen :1";"A/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025"} +2;"Omniflo Kurve";"0000";"OFBogen :2";"A/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025, 0_B10090"} +3;"Omniflo Kurve";"0000";"OFBogen :3";"A/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025, 0_B10091"} +4;"Omniflo Kurve";"0000";"OFBogen :4";"A/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104021"} +5;"Omniflo Kurve";"0000";"OFBogen :5";"A/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104026"} +6;"Omniflo Kurve";"0000";"OFBogen :6";"A/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104026, 0_B10071"} +7;"Omniflo Kurve";"0000";"OFBogen :7";"A/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104037"} +8;"Omniflo Kurve";"0000";"OFBogen :8";"A/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104029"} +9;"Omniflo Kurve";"0000";"OFBogen :9";"A/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031"} +10;"Omniflo Kurve";"0000";"OFBogen :10";"A/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031, 0_B10060"} +11;"Omniflo Kurve";"0000";"OFBogen :11";"B/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031, 0_B10070"} +12;"Omniflo Kurve";"0000";"OFBogen :12";"B/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104024"} +13;"Omniflo Kurve";"0000";"OFBogen :13";"B/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104024, 0_B10081"} +14;"Omniflo Kurve";"0000";"OFBogen :14";"B/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104027"} +15;"Omniflo Kurve";"0000";"OFBogen :15";"B/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104027, 0_B10080"} +16;"Omniflo Kurve";"0000";"OFBogen :16";"B/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104028"} +17;"Omniflo Kurve";"0000";"OFBogen :17";"B/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104065"} +18;"Omniflo Kurve";"0000";"OFBogen :18";"B/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104022"} +19;"Omniflo Kurve";"0000";"OFBogen :19";"B/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 500.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104030"} +20;"Omniflo Kurve";"0000";"OFBogen :20";"B/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033"} +21;"Omniflo Kurve";"0000";"OFBogen :21";"C/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033, 0_B10040"} +22;"Omniflo Kurve";"0000";"OFBogen :22";"C/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033, 0_B10050"} +23;"Omniflo Kurve";"0000";"OFBogen :23";"C/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104035"} +24;"Omniflo Kurve";"0000";"OFBogen :24";"C/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104041"} +25;"Omniflo Kurve";"0000";"OFBogen :25";"C/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104034"} +26;"Omniflo Kurve";"0000";"OFBogen :26";"C/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104066"} +27;"Omniflo Kurve";"0000";"OFBogen :27";"C/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 180.0, "Radius": 650.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104043"} +28;"Omniflo Weiche";"0000";"OFWeiche :1";"C/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342011"} +29;"Omniflo Weiche";"0000";"OFWeiche :2";"C/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342001"} +30;"Omniflo Weiche";"0000";"OFWeiche :3";"C/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342012"} +31;"Omniflo Weiche";"0000";"OFWeiche :4";"D/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342002"} +32;"Omniflo Weiche";"0000";"OFWeiche :1";"D/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342100"} +33;"Omniflo Weiche";"0000";"OFWeiche :2";"D/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342101"} +34;"Omniflo Weiche";"0000";"OFWeiche :1";"D/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342200"} +35;"Omniflo Weiche";"0000";"OFWeiche :2";"D/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342201"} +36;"Omniflo Weiche";"0000";"OFWeiche :5";"D/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372001"} +37;"Omniflo Weiche";"0000";"OFWeiche :6";"D/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372002"} +38;"Omniflo Weiche";"0000";"OFWeiche :7";"D/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372002, 0_BG090090"} +39;"Omniflo Weiche";"0000";"OFWeiche :8";"D/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372004"} +40;"Omniflo Weiche";"0000";"OFWeiche :9";"D/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372005"} +41;"Omniflo Weiche";"0000";"OFWeiche :10";"E/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372005, 0_BG090090"} +42;"Omniflo Weiche";"0000";"OFWeiche :11";"E/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372007"} +43;"Omniflo Weiche";"0000";"OFWeiche :12";"E/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372008"} +44;"Omniflo Weiche";"0000";"OFWeiche :13";"E/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372008, 0_BG190090"} +45;"Omniflo Weiche";"0000";"OFWeiche :14";"E/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372010"} +46;"Omniflo Weiche";"0000";"OFWeiche :15";"E/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372011"} +47;"Omniflo Weiche";"0000";"OFWeiche :16";"E/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372011, 0_BG190090"} +48;"Omniflo Weiche";"0000";"OFWeiche :17";"E/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372021"} +49;"Omniflo Weiche";"0000";"OFWeiche :18";"E/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372022"} +50;"Omniflo Weiche";"0000";"OFWeiche :19";"E/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372024"} +51;"Omniflo Weiche";"0000";"OFWeiche :20";"F/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372025"} +52;"Omniflo Weiche";"0000";"OFWeiche :21";"F/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372027"} +53;"Omniflo Weiche";"0000";"OFWeiche :22";"F/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372028"} +54;"Omniflo Weiche";"0000";"OFWeiche :23";"F/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372028, 0_BG080090"} +55;"Omniflo Weiche";"0000";"OFWeiche :24";"F/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372030"} +56;"Omniflo Weiche";"0000";"OFWeiche :25";"F/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372031"} +57;"Omniflo Weiche";"0000";"OFWeiche :26";"F/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372031, 0_BG080090"} +58;"Omniflo Weiche";"0000";"OFWeiche :27";"F/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372047"} +59;"Omniflo Weiche";"0000";"OFWeiche :28";"F/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372048"} +60;"Omniflo Weiche";"0000";"OFWeiche :29";"F/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372050"} +61;"Omniflo Weiche";"0000";"OFWeiche :30";"G/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372051"} +62;"Omniflo Weiche";"0000";"OFWeiche :3";"G/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372100"} +63;"Omniflo Weiche";"0000";"OFWeiche :4";"G/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372101"} +64;"Omniflo Weiche";"0000";"OFWeiche :5";"G/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372101"} +65;"Omniflo Weiche";"0000";"OFWeiche :6";"G/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372101, 0_BG090090"} +66;"Omniflo Weiche";"0000";"OFWeiche :7";"G/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372101, 0_BG090090"} +67;"Omniflo Weiche";"0000";"OFWeiche :8";"G/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372103"} +68;"Omniflo Weiche";"0000";"OFWeiche :9";"G/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372104"} +69;"Omniflo Weiche";"0000";"OFWeiche :10";"G/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372104"} +70;"Omniflo Weiche";"0000";"OFWeiche :11";"G/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372104, 0_BG190090"} +71;"Omniflo Weiche";"0000";"OFWeiche :12";"H/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372104, 0_BG190090"} +72;"Omniflo Weiche";"0000";"OFWeiche :13";"H/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372106"} +73;"Omniflo Weiche";"0000";"OFWeiche :14";"H/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372107"} +74;"Omniflo Weiche";"0000";"OFWeiche :15";"H/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372109"} +75;"Omniflo Weiche";"0000";"OFWeiche :16";"H/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372110"} +76;"Omniflo Weiche";"0000";"OFWeiche :17";"H/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372110"} +77;"Omniflo Weiche";"0000";"OFWeiche :18";"H/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372110, 0_BG080090"} +78;"Omniflo Weiche";"0000";"OFWeiche :19";"H/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372110, 0_BG080090"} +79;"Omniflo Weiche";"0000";"OFWeiche :20";"H/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372115"} +80;"Omniflo Weiche";"0000";"OFWeiche :21";"H/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372116"} +81;"Omniflo Weiche";"0000";"OFWeiche :3";"I/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372200"} +82;"Omniflo Weiche";"0000";"OFWeiche :4";"I/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372201"} +83;"Omniflo Weiche";"0000";"OFWeiche :5";"I/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372201"} +84;"Omniflo Weiche";"0000";"OFWeiche :6";"I/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372201, 0_BG090090"} +85;"Omniflo Weiche";"0000";"OFWeiche :7";"I/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372201, 0_BG090090"} +86;"Omniflo Weiche";"0000";"OFWeiche :8";"I/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372203"} +87;"Omniflo Weiche";"0000";"OFWeiche :9";"I/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372204"} +88;"Omniflo Weiche";"0000";"OFWeiche :10";"I/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372204"} +89;"Omniflo Weiche";"0000";"OFWeiche :11";"I/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372204, 0_BG190090"} +90;"Omniflo Weiche";"0000";"OFWeiche :12";"I/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372204, 0_BG190090"} +91;"Omniflo Weiche";"0000";"OFWeiche :13";"J/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372206"} +92;"Omniflo Weiche";"0000";"OFWeiche :14";"J/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372207"} +93;"Omniflo Weiche";"0000";"OFWeiche :15";"J/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372209"} +94;"Omniflo Weiche";"0000";"OFWeiche :16";"J/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372210"} +95;"Omniflo Weiche";"0000";"OFWeiche :17";"J/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372210"} +96;"Omniflo Weiche";"0000";"OFWeiche :18";"J/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372210, 0_BG080090"} +97;"Omniflo Weiche";"0000";"OFWeiche :19";"J/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372210, 0_BG080090"} +98;"Omniflo Weiche";"0000";"OFWeiche :20";"J/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372215"} +99;"Omniflo Weiche";"0000";"OFWeiche :21";"J/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372216"} +100;"Omniflo Weiche";"0000";"OFWeiche :1";"J/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372400"} +101;"Omniflo Weiche";"0000";"OFWeiche :2";"K/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372403"} +102;"Omniflo Weiche";"0000";"OFWeiche :3";"K/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372404"} +103;"Omniflo Weiche";"0000";"OFWeiche :4";"K/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG071090, 834372404, 0_BG071090"} +104;"Omniflo Weiche";"0000";"OFWeiche :5";"K/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG071090, 834372404"} +105;"Omniflo Weiche";"0000";"OFWeiche :6";"K/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372404, 0_BG071090"} +106;"Omniflo Weiche";"0000";"OFWeiche :7";"K/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372401"} +107;"Omniflo Weiche";"0000";"OFWeiche :1";"K/1";1;"";"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Sternweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372420"} +108;"Omniflo Sum";"autogenerated_of_json";"Omniflo sum";"";1;"";"";"";"";"";"";"";"";"";"";"";{"Anzahl Bögen": 27, "Anzahl Weichengrundkörper": 0, "Anzahl Einwegweichen": 30, "Anzahl Deltaweichen": 7, "Anzahl Doppelweichen und Dreiwegeweichen": 42, "Anzahl Sternweichen": 1, "Gesamtlänge AP110": 0.0, "Gesamtlänge AP60": 0.0} diff --git a/tests/test_export_kreisel_umlauf.py b/tests/test_export_kreisel_umlauf.py index 43da2a2..b8f6d73 100644 --- a/tests/test_export_kreisel_umlauf.py +++ b/tests/test_export_kreisel_umlauf.py @@ -346,11 +346,12 @@ class TestKreiselUmlaufStartetBeiNullGrad: assert keys == ["S010", "S100", "S190", "S280"] -class TestKreiselListTrackidsMerkmal: +class TestKreiselTrackidsSpalte: """write_kreisel_separatorliste_merkmale schreibt die bei 0 Grad beginnende Umlaufreihenfolge (Separatoren, AS/ES-Enden, Kreisel-Kreisel- - Weichen) als Merkmal "list_trackids" auf den Kreisel selbst (analog zum - gleichnamigen Merkmal bei VF_n/GF_n, siehe write_separatorliste_merkmale).""" + Weichen) in die eigene CSV-Spalte "TrackIds" (item["trackids"]) auf den + Kreisel selbst (analog zum gleichnamigen Feld bei VF_n/GF_n, siehe + write_separatorliste_merkmale).""" def test_freie_separatoren_in_umlaufreihenfolge(self): k = _kreisel("0001", 0.0, 0.0, 0.0, abstand=1000.0) @@ -365,9 +366,9 @@ class TestKreiselListTrackidsMerkmal: items, kreisel_umlauf, sep_kette_by_key={}, weiche_by_key={}) kreisel_item = items[0] - assert kreisel_item["merkmale"]["list_trackids"] == "0021, 0020" + assert kreisel_item["trackids"] == "0021, 0020" - def test_kreisel_ohne_umlauf_punkte_bekommt_kein_merkmal(self): + def test_kreisel_ohne_umlauf_punkte_bekommt_keine_trackids(self): k = _kreisel("0001", 0.0, 0.0, 0.0, abstand=1000.0) k["merkmale"] = {} items = [k] @@ -375,11 +376,11 @@ class TestKreiselListTrackidsMerkmal: items, sep_kette={}, tolerance_mm=0.0, durchmesser_mm=DURCHMESSER_MM) write_kreisel_separatorliste_merkmale( items, kreisel_umlauf, sep_kette_by_key={}, weiche_by_key={}) - assert "list_trackids" not in items[0]["merkmale"] + assert "trackids" not in items[0] def test_btmt_beladung_und_entladung_zaehlen_als_freie_punkte(self): """BTMT Beladung/Entladung sind Stationen AUF der Bahn/Track wie ein - Separator - sie muessen im Kreisel-Umlauf UND in list_trackids + Separator - sie muessen im Kreisel-Umlauf UND in der TrackIds-Spalte des Kreisels auftauchen (Kundenwunsch), nicht nur echte Separatoren.""" k = _kreisel("0001", 0.0, 0.0, 0.0, abstand=1000.0) k["merkmale"] = {} @@ -396,4 +397,4 @@ class TestKreiselListTrackidsMerkmal: write_kreisel_separatorliste_merkmale( items, kreisel_umlauf, sep_kette_by_key={}, weiche_by_key={}) - assert k["merkmale"]["list_trackids"] == "0031, 0020, 0030" + assert k["trackids"] == "0031, 0020, 0030"