From 668407ecb95f051bb7518bf3a006a7a985144186 Mon Sep 17 00:00:00 2001 From: Yuelin Wang Date: Mon, 14 Jul 2025 14:47:23 +0200 Subject: [PATCH] =?UTF-8?q?Update=20die=20Props=20f=C3=BCr=20Vorlage=20bei?= =?UTF-8?q?=20Weichen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SSG/shapes/props/834342001.txt | 2 +- .../SSG/shapes/props/834342002.txt | 2 +- .../SSG/shapes/props/834342011.txt | 2 +- .../SSG/shapes/props/834342012.txt | 2 +- .../SSG/shapes/props/834372001.txt | 4 +- .../SSG/shapes/props/834372002.txt | 4 +- .../SSG/shapes/props/834372004.txt | 2 +- .../SSG/shapes/props/834372005.txt | 2 +- .../SSG/shapes/props/834372007.txt | 4 +- .../SSG/shapes/props/834372008.txt | 4 +- .../SSG/shapes/props/834372010.txt | 2 +- .../SSG/shapes/props/834372011.txt | 2 +- .../SSG/shapes/props/834372021.txt | 4 +- .../SSG/shapes/props/834372022.txt | 1 + .../SSG/shapes/props/834372024.txt | 1 + .../SSG/shapes/props/834372027.txt | 4 +- .../SSG/shapes/props/834372028.txt | 4 +- .../SSG/shapes/props/834372030.txt | 2 +- .../SSG/shapes/props/834372031.txt | 2 +- .../SSG/shapes/props/834372047.txt | 4 +- .../SSG/shapes/props/834372048.txt | 4 +- .../SSG/shapes/props/834372050.txt | 2 +- .../SSG/shapes/props/834372051.txt | 2 +- .../SSG/shapes/props/834372100.txt | 6 +- .../SSG/shapes/props/834372101.txt | 6 +- .../SSG/shapes/props/834372103.txt | 6 +- .../SSG/shapes/props/834372104.txt | 6 +- .../SSG/shapes/props/834372106.txt | 6 +- .../SSG/shapes/props/834372107.txt | 6 +- .../SSG/shapes/props/834372109.txt | 6 +- .../SSG/shapes/props/834372110.txt | 6 +- .../SSG/shapes/props/834372115.txt | 6 +- .../SSG/shapes/props/834372116.txt | 6 +- .../SSG/shapes/props/834372200.txt | 6 +- .../SSG/shapes/props/834372201.txt | 6 +- .../SSG/shapes/props/834372203.txt | 6 +- .../SSG/shapes/props/834372204.txt | 6 +- .../SSG/shapes/props/834372206.txt | 6 +- .../SSG/shapes/props/834372207.txt | 6 +- .../SSG/shapes/props/834372209.txt | 6 +- .../SSG/shapes/props/834372210.txt | 6 +- .../SSG/shapes/props/834372215.txt | 6 +- .../SSG/shapes/props/834372216.txt | 6 +- .../SSG/shapes/props/834372400.txt | 8 +- .../SSG/shapes/props/834372401.txt | 8 +- .../SSG/shapes/props/834372403.txt | 8 +- .../SSG/shapes/props/834372404.txt | 8 +- .../SSG/shapes/props/834372420.txt | 8 +- .../SSG/shapes/props/OFDeltaWeiche.txt | 8 +- .../SSG/shapes/props/OFWeicheDoppel45.txt | 6 +- .../SSG/shapes/props/OFWeicheDoppel90.txt | 6 +- .../SSG/shapes/props/OFWeicheDreiwege45.txt | 6 +- .../SSG/shapes/props/OFWeicheDreiwege90.txt | 6 +- .../SSG/shapes/props/OFWeicheEinfach45.txt | 4 +- .../SSG/shapes/props/OFWeicheEinfach90.txt | 4 +- .../shapes/props/OFWeicheParallelEinfach.txt | 4 +- .../shapes/props/OFWeichenkoerperDoppel.txt | 2 +- .../shapes/props/OFWeichenkoerperDreiwege.txt | 2 +- .../shapes/props/OFWeichenkoerperEinfach.txt | 2 +- Editor2DLibrary/SSG/shapes/svg/834372022.xml | 2 +- Editor2DLibrary/SSG/shapes/svg/834372024.xml | 2 +- .../python/OFWeiche/1_omniflo_weichen.py | 661 +++++------------- .../python/OFWeiche/json/omniflo_weichen.json | 280 +++++++- .../OFWeiche/json/omniflo_weichen_output.json | 50 +- 64 files changed, 606 insertions(+), 661 deletions(-) diff --git a/Editor2DLibrary/SSG/shapes/props/834342001.txt b/Editor2DLibrary/SSG/shapes/props/834342001.txt index e610e66..8c2597b 100644 --- a/Editor2DLibrary/SSG/shapes/props/834342001.txt +++ b/Editor2DLibrary/SSG/shapes/props/834342001.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Weichenkörper Einfach 22.5° rechts M", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834342002.txt b/Editor2DLibrary/SSG/shapes/props/834342002.txt index e2363ec..24b633b 100644 --- a/Editor2DLibrary/SSG/shapes/props/834342002.txt +++ b/Editor2DLibrary/SSG/shapes/props/834342002.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Weichenkörper Einfach 22.5° rechts P", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834342011.txt b/Editor2DLibrary/SSG/shapes/props/834342011.txt index c977eba..719c1ba 100644 --- a/Editor2DLibrary/SSG/shapes/props/834342011.txt +++ b/Editor2DLibrary/SSG/shapes/props/834342011.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Weichenkörper Einfach 22.5° links M", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834342012.txt b/Editor2DLibrary/SSG/shapes/props/834342012.txt index 049cd76..2cc48d7 100644 --- a/Editor2DLibrary/SSG/shapes/props/834342012.txt +++ b/Editor2DLibrary/SSG/shapes/props/834342012.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Weichenkörper Einfach 22.5° links P", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834372001.txt b/Editor2DLibrary/SSG/shapes/props/834372001.txt index 1aba42a..b78f488 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372001.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372001.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 45° 350/700 links M", "family": "OFWeiche", @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372002.txt b/Editor2DLibrary/SSG/shapes/props/834372002.txt index dd57843..9611c58 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372002.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372002.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 45° 350/700 links P", "family": "OFWeiche", @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372004.txt b/Editor2DLibrary/SSG/shapes/props/834372004.txt index 033aa42..c81e3d0 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372004.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372004.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 45° 350/700 rechts M", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834372005.txt b/Editor2DLibrary/SSG/shapes/props/834372005.txt index d3c1e9f..3dd8a74 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372005.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372005.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 45° 350/700 rechts P", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834372007.txt b/Editor2DLibrary/SSG/shapes/props/834372007.txt index b93966e..cf4c7c1 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372007.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372007.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 45° 400/750 links M", "family": "OFWeiche", @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372008.txt b/Editor2DLibrary/SSG/shapes/props/834372008.txt index 2d44f30..5d380b4 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372008.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372008.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 45° 400/750 links P", "family": "OFWeiche", @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372010.txt b/Editor2DLibrary/SSG/shapes/props/834372010.txt index 3d0ce6c..91136b9 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372010.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372010.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 45° 400/750 rechts M", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834372011.txt b/Editor2DLibrary/SSG/shapes/props/834372011.txt index 817190a..5c42f32 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372011.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372011.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 45° 400/750 rechts P", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834372021.txt b/Editor2DLibrary/SSG/shapes/props/834372021.txt index 4c8aeaf..d29a934 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372021.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372021.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 90° 500/600 links M", "family": "OFWeiche", @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372022.txt b/Editor2DLibrary/SSG/shapes/props/834372022.txt index f2dc81d..e5492b4 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372022.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372022.txt @@ -5,6 +5,7 @@ "icon": "SSG/shapes/img/Weiche_90_500_600_L_P_834372022_32px.png", "iconBig": "SSG/shapes/img/Weiche_90_500_600_L_P_834372022_64px.png", "srcSVG": "SSG/shapes/svg/834372022.xml", + "src3D": "SSG/shapes/obj/834372022.stl", "width": 2092.989, "height": 2347.965, "depth": 415.748, diff --git a/Editor2DLibrary/SSG/shapes/props/834372024.txt b/Editor2DLibrary/SSG/shapes/props/834372024.txt index d01e4bd..252e951 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372024.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372024.txt @@ -5,6 +5,7 @@ "icon": "SSG/shapes/img/Weiche_90_500_600_R_M_834372024_32px.png", "iconBig": "SSG/shapes/img/Weiche_90_500_600_R_M_834372024_64px.png", "srcSVG": "SSG/shapes/svg/834372024.xml", + "src3D": "SSG/shapes/obj/834372024.stl", "width": 2092.989, "height": 2347.965, "depth": 415.748, diff --git a/Editor2DLibrary/SSG/shapes/props/834372027.txt b/Editor2DLibrary/SSG/shapes/props/834372027.txt index a242d6f..5ec1790 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372027.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372027.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 90° 700/700 links M", "family": "OFWeiche", @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372028.txt b/Editor2DLibrary/SSG/shapes/props/834372028.txt index d70e4cd..2db845f 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372028.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372028.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 90° 700/700 links P", "family": "OFWeiche", @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372030.txt b/Editor2DLibrary/SSG/shapes/props/834372030.txt index 5740030..42893f9 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372030.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372030.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 90° 700/700 rechts M", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834372031.txt b/Editor2DLibrary/SSG/shapes/props/834372031.txt index 1a179d3..7bfd7ad 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372031.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372031.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 90° 700/700 rechts P", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834372047.txt b/Editor2DLibrary/SSG/shapes/props/834372047.txt index d17f2bb..2dc9fa4 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372047.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372047.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach Parallel 200/750 links M", "family": "OFWeiche", @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 360.0, + "direction": 360, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372048.txt b/Editor2DLibrary/SSG/shapes/props/834372048.txt index e9cc8be..5d19d28 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372048.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372048.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach Parallel 200/750 links P", "family": "OFWeiche", @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 360.0, + "direction": 360, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372050.txt b/Editor2DLibrary/SSG/shapes/props/834372050.txt index 43684f6..1c1602c 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372050.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372050.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach Parallel 200/750 rechs M", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834372051.txt b/Editor2DLibrary/SSG/shapes/props/834372051.txt index a022e92..5031746 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372051.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372051.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach Parallel 200/750 rechs P", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/834372100.txt b/Editor2DLibrary/SSG/shapes/props/834372100.txt index 45cca22..164d731 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372100.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372100.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel 45° 350/700 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 45.0, + "direction": 45, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372101.txt b/Editor2DLibrary/SSG/shapes/props/834372101.txt index d9f474c..c76b264 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372101.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372101.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel 45° 350/700 P", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 45.0, + "direction": 45, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372103.txt b/Editor2DLibrary/SSG/shapes/props/834372103.txt index 55d186a..98d7e41 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372103.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372103.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel 45° 400/750 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 45.0, + "direction": 45, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372104.txt b/Editor2DLibrary/SSG/shapes/props/834372104.txt index aeff0b4..cb23f23 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372104.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372104.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel 45° 400/750 P", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 45.0, + "direction": 45, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372106.txt b/Editor2DLibrary/SSG/shapes/props/834372106.txt index d242bdb..828474f 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372106.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372106.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel 90° 500/600 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372107.txt b/Editor2DLibrary/SSG/shapes/props/834372107.txt index c904332..f8219d9 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372107.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372107.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel 90° 500/600 P", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372109.txt b/Editor2DLibrary/SSG/shapes/props/834372109.txt index 1f2b316..89c413d 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372109.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372109.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel 90° 700/700 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372110.txt b/Editor2DLibrary/SSG/shapes/props/834372110.txt index dfe469f..7b808d2 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372110.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372110.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel 90° 700/700 P", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372115.txt b/Editor2DLibrary/SSG/shapes/props/834372115.txt index 27251ea..24c531c 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372115.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372115.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel Parallel 200/750 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 360.0, + "direction": 360, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 0.0, + "direction": 0, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372116.txt b/Editor2DLibrary/SSG/shapes/props/834372116.txt index bb318f0..b482c37 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372116.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372116.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel Parallel 200/750 P", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 360.0, + "direction": 360, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 0.0, + "direction": 0, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372200.txt b/Editor2DLibrary/SSG/shapes/props/834372200.txt index a8ca754..d74c2a9 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372200.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372200.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege 45° 350/700 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 45.0, + "direction": 45, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372201.txt b/Editor2DLibrary/SSG/shapes/props/834372201.txt index 1685e2b..0f45ca8 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372201.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372201.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege 45° 350/700 P", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 45.0, + "direction": 45, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372203.txt b/Editor2DLibrary/SSG/shapes/props/834372203.txt index 7763858..d099837 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372203.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372203.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege 45° 400/750 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 45.0, + "direction": 45, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372204.txt b/Editor2DLibrary/SSG/shapes/props/834372204.txt index 7b536ce..f1076db 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372204.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372204.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege 45° 400/750 P", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 45.0, + "direction": 45, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372206.txt b/Editor2DLibrary/SSG/shapes/props/834372206.txt index 5e77f8f..4ee3726 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372206.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372206.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege 90° 500/600 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372207.txt b/Editor2DLibrary/SSG/shapes/props/834372207.txt index affd611..e53c034 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372207.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372207.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege 90° 500/600 P", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372209.txt b/Editor2DLibrary/SSG/shapes/props/834372209.txt index dce7218..6f1e8d5 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372209.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372209.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege 90° 700/700 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372210.txt b/Editor2DLibrary/SSG/shapes/props/834372210.txt index f60ace4..534c48e 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372210.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372210.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege 90° 700/700 P", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372215.txt b/Editor2DLibrary/SSG/shapes/props/834372215.txt index 020c837..9bdece2 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372215.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372215.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege Parallel 200/750 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 360.0, + "direction": 360, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 0.0, + "direction": 0, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372216.txt b/Editor2DLibrary/SSG/shapes/props/834372216.txt index 621a292..75ea0a3 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372216.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372216.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege Parallel 200/750 P", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 360.0, + "direction": 360, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 0.0, + "direction": 0, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372400.txt b/Editor2DLibrary/SSG/shapes/props/834372400.txt index 5aaa3a0..6fcd06e 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372400.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372400.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Delta 1400/700 M", "family": "OFWeiche", @@ -25,7 +25,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 0.0, + "direction": 0, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372401.txt b/Editor2DLibrary/SSG/shapes/props/834372401.txt index 6cb5b9c..31ddcbb 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372401.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372401.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Delta 1400/700 P", "family": "OFWeiche", @@ -25,7 +25,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 0.0, + "direction": 0, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372403.txt b/Editor2DLibrary/SSG/shapes/props/834372403.txt index f1703aa..3c19e25 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372403.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372403.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Delta 1600/800 M", "family": "OFWeiche", @@ -25,7 +25,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 0.0, + "direction": 0, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372404.txt b/Editor2DLibrary/SSG/shapes/props/834372404.txt index 817c417..8088a5a 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372404.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372404.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Delta 1600/800 P", "family": "OFWeiche", @@ -25,7 +25,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 0.0, + "direction": 0, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/834372420.txt b/Editor2DLibrary/SSG/shapes/props/834372420.txt index adfbd21..7eca6bd 100644 --- a/Editor2DLibrary/SSG/shapes/props/834372420.txt +++ b/Editor2DLibrary/SSG/shapes/props/834372420.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Star 1400/1400 M", "family": "OFWeiche", @@ -25,7 +25,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 0.0, + "direction": 0, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/OFDeltaWeiche.txt b/Editor2DLibrary/SSG/shapes/props/OFDeltaWeiche.txt index 04754af..64da224 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFDeltaWeiche.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFDeltaWeiche.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Delta 1400/700 M", "family": "OFWeiche", @@ -25,7 +25,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 0.0, + "direction": 0, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/OFWeicheDoppel45.txt b/Editor2DLibrary/SSG/shapes/props/OFWeicheDoppel45.txt index 5ee71d3..b90d8a2 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFWeicheDoppel45.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFWeicheDoppel45.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel 45° 350/700 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 45.0, + "direction": 45, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/OFWeicheDoppel90.txt b/Editor2DLibrary/SSG/shapes/props/OFWeicheDoppel90.txt index 5af4858..00755e3 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFWeicheDoppel90.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFWeicheDoppel90.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Doppel 90° 700/700 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/OFWeicheDreiwege45.txt b/Editor2DLibrary/SSG/shapes/props/OFWeicheDreiwege45.txt index c03c663..dd00fbd 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFWeicheDreiwege45.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFWeicheDreiwege45.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege 45° 350/700 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 45.0, + "direction": 45, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/OFWeicheDreiwege90.txt b/Editor2DLibrary/SSG/shapes/props/OFWeicheDreiwege90.txt index d93caf2..286dd9e 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFWeicheDreiwege90.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFWeicheDreiwege90.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Dreiwege 90° 700/700 M", "family": "OFWeiche", @@ -44,7 +44,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 90.0, + "direction": 90, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/OFWeicheEinfach45.txt b/Editor2DLibrary/SSG/shapes/props/OFWeicheEinfach45.txt index e5987f1..2914352 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFWeicheEinfach45.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFWeicheEinfach45.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 45° 350/700 links M", "family": "OFWeiche", @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 315.0, + "direction": 315, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/OFWeicheEinfach90.txt b/Editor2DLibrary/SSG/shapes/props/OFWeicheEinfach90.txt index 8cf4ec1..b2e792d 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFWeicheEinfach90.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFWeicheEinfach90.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach 90° 700/700 links M", "family": "OFWeiche", @@ -63,7 +63,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 270.0, + "direction": 270, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/OFWeicheParallelEinfach.txt b/Editor2DLibrary/SSG/shapes/props/OFWeicheParallelEinfach.txt index 2588840..48706c5 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFWeicheParallelEinfach.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFWeicheParallelEinfach.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Einfach Parallel 200/750 links M", "family": "OFWeiche", @@ -62,7 +62,7 @@ "zMin": "", "zMax": "", "zStep": "", - "direction": 360.0, + "direction": 360, "linkClass": "Omniflo", "label": "", "isDimension": true diff --git a/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperDoppel.txt b/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperDoppel.txt index 3a8da07..7a3afce 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperDoppel.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperDoppel.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Weichenkörper Doppel 22.5° M", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperDreiwege.txt b/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperDreiwege.txt index 3d93397..fad4c04 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperDreiwege.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperDreiwege.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Weichenkörper Dreiwege 22.5° M", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperEinfach.txt b/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperEinfach.txt index d370116..03c90b3 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperEinfach.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFWeichenkoerperEinfach.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "Weichenkörper Einfach 22.5° links M", "family": "OFWeiche", diff --git a/Editor2DLibrary/SSG/shapes/svg/834372022.xml b/Editor2DLibrary/SSG/shapes/svg/834372022.xml index cf2b51f..f047108 100644 --- a/Editor2DLibrary/SSG/shapes/svg/834372022.xml +++ b/Editor2DLibrary/SSG/shapes/svg/834372022.xml @@ -12,7 +12,7 @@ - + diff --git a/Editor2DLibrary/SSG/shapes/svg/834372024.xml b/Editor2DLibrary/SSG/shapes/svg/834372024.xml index b4254be..896cae2 100644 --- a/Editor2DLibrary/SSG/shapes/svg/834372024.xml +++ b/Editor2DLibrary/SSG/shapes/svg/834372024.xml @@ -12,7 +12,7 @@ - + diff --git a/SVGs/Omniflo/python/OFWeiche/1_omniflo_weichen.py b/SVGs/Omniflo/python/OFWeiche/1_omniflo_weichen.py index c0079ee..add4a7e 100644 --- a/SVGs/Omniflo/python/OFWeiche/1_omniflo_weichen.py +++ b/SVGs/Omniflo/python/OFWeiche/1_omniflo_weichen.py @@ -1,6 +1,7 @@ import json import math import os + def modify_json_values(json_file): # Constant definitions WeichenKoerperWidth = 32.5437 @@ -11,19 +12,15 @@ def modify_json_values(json_file): # Read JSON file with open(json_file, 'r', encoding='utf-8') as f: data = json.load(f) - process_einzelweiche_items(data,WeichenKoerperWidth, WeichenkProfileWidth,BogenProfileWidth, WeichenGerade) - - process_doppelweiche_items(data, BogenProfileWidth, WeichenGerade) + process_einzelweiche_items(data, WeichenKoerperWidth, WeichenkProfileWidth, BogenProfileWidth, WeichenGerade) + process_doppelweiche_items(data, BogenProfileWidth, WeichenGerade) process_deltaweiche_items(data, WeichenkProfileWidth) - # Ask for save confirmation - save_choice = input("\nSave all changes? (Press Enter to save, 'n' to cancel): ").lower() - if save_choice == 'n': - print("All changes discarded") - else: - with open(json_file, 'w', encoding='utf-8') as f: - json.dump(data, f, indent=2, ensure_ascii=False) - print("All changes saved!") + + # Save changes without confirmation + with open(json_file, 'w', encoding='utf-8') as f: + json.dump(data, f, indent=2, ensure_ascii=False) + print("All changes saved automatically!") def process_einzelweiche_items(data, WeichenKoerperWidth, WeichenkProfileWidth, BogenProfileWidth, WeichenGerade): # Filter matching items with additional Sivasnr check @@ -36,60 +33,21 @@ def process_einzelweiche_items(data, WeichenKoerperWidth, WeichenkProfileWidth, ] print(f"Found {len(filtered_items)} matching records with numeric Sivasnr") - print("="*50) # Process each item - for idx, item in enumerate(filtered_items, 1): - print(f"\nItem {idx}:") - print(f"Sivasnr: {item['Sivasnr']}") - print(f"ProfilTyp: {item['ProfilTyp']}") - print(f"Schaltungstyp: {item['Schaltungstyp']}") - - # Process OFWeiche_center_line_width_mm - current_value = item.get("OFWeiche_center_line_width_mm") - print(f"\nCurrent OFWeiche_center_line_width_mm: {current_value}") - choice = input("Modify? (y to modify, Enter to skip): ").lower() - if choice == 'y': - new_value = input(f"Enter new value (current: {current_value}): ") - try: - old_value = item["OFWeiche_center_line_width_mm"] - item["OFWeiche_center_line_width_mm"] = round(float(new_value), 3) if new_value.lower() != 'null' else None - print(f"Value updated: {old_value} → {item['OFWeiche_center_line_width_mm']}") - except ValueError: - print("Invalid input, keeping original value") - else: - print("Skipping modification") - - # Process OFWeiche_center_line_height_mm - current_value = item.get("OFWeiche_center_line_height_mm") - print(f"\nCurrent OFWeiche_center_line_height_mm: {current_value}") - choice = input("Modify? (y to modify, Enter to skip): ").lower() - if choice == 'y': - new_value = input(f"Enter new value (current: {current_value}): ") - try: - old_value = item["OFWeiche_center_line_height_mm"] - item["OFWeiche_center_line_height_mm"] = round(float(new_value), 3) if new_value.lower() != 'null' else None - print(f"Value updated: {old_value} → {item['OFWeiche_center_line_height_mm']}") - except ValueError: - print("Invalid input, keeping original value") - else: - print("Skipping modification") - + for item in filtered_items: # Calculate related values if (item["OFWeiche_center_line_width_mm"] is not None and item["OFWeiche_center_line_height_mm"] is not None): angle_rad = math.radians(item["KurvenWinkel"]) - # Calculate and print basic values - old_width = item.get("Objekt_width_mm") - item["Objekt_width_mm"] = round(WeichenKoerperWidth+ + # Calculate basic values + item["Objekt_width_mm"] = round(WeichenKoerperWidth + (BogenProfileWidth/2 * math.cos(angle_rad)) + item["OFWeiche_center_line_width_mm"] + WeichenkProfileWidth/2, 3) - print(f"\nObjekt_width_mm calculated update: {old_width} → {item['Objekt_width_mm']}") - old_height = item.get("Objekt_height_mm") if item["KurvenWinkel"] == 22.5: item["Objekt_height_mm"] = round( item["OFWeiche_center_line_height_mm"], 3) @@ -97,46 +55,34 @@ def process_einzelweiche_items(data, WeichenKoerperWidth, WeichenkProfileWidth, item["Objekt_height_mm"] = round( (BogenProfileWidth/2 * math.sin(angle_rad)) + item["OFWeiche_center_line_height_mm"], 3) - print(f"Objekt_height_mm calculated update: {old_height} → {item['Objekt_height_mm']}") - # Calculate and print CP point coordinates - old_cp1x = item.get("OFWeiche_CP1_x_mm") + # Calculate CP point coordinates item["OFWeiche_CP1_x_mm"] = round( (BogenProfileWidth/2 * math.cos(angle_rad)) + item["OFWeiche_center_line_width_mm"], 3) - print(f"OFWeiche_CP1_x_mm calculated update: {old_cp1x} → {item['OFWeiche_CP1_x_mm']}") - old_cp1y = item.get("OFWeiche_CP1_y_mm") item["OFWeiche_CP1_y_mm"] = round( item["Objekt_height_mm"] - WeichenGerade, 3) - print(f"OFWeiche_CP1_y_mm calculated update: {old_cp1y} → {item['OFWeiche_CP1_y_mm']}") item["OFWeiche_CP2_x_mm"] = round(item["OFWeiche_CP1_x_mm"], 3) - print(f"OFWeiche_CP2_x_mm set: {item['OFWeiche_CP2_x_mm']}") item["OFWeiche_CP2_y_mm"] = round(item["Objekt_height_mm"], 3) - print(f"OFWeiche_CP2_y_mm set: {item['OFWeiche_CP2_y_mm']}") item["OFWeiche_CP3_x_mm"] = round( BogenProfileWidth/2 * math.cos(angle_rad), 3) - print(f"OFWeiche_CP3_x_mm calculated update: {item['OFWeiche_CP3_x_mm']}") item["OFWeiche_CP3_y_mm"] = round( BogenProfileWidth/2 * math.sin(angle_rad), 3) - print(f"OFWeiche_CP3_y_mm calculated update: {item['OFWeiche_CP3_y_mm']}") - # NEW: First find exact ProfilTyp matches and update them + # Update items with identical ProfilTyp current_profil = item["ProfilTyp"] exact_matches = [x for x in data if x["ProfilTyp"] == current_profil and - x is not item and # Exclude the current item + x is not item and x.get("SivasnrTEF") is None] if exact_matches: - print(f"\nFound {len(exact_matches)} items with identical ProfilTyp") for match in exact_matches: - print(f"Updating identical ProfilTyp item: {match['Sivasnr']}") - fields_to_copy = [ "OFWeiche_center_line_width_mm", "OFWeiche_center_line_height_mm", @@ -151,12 +97,9 @@ def process_einzelweiche_items(data, WeichenKoerperWidth, WeichenkProfileWidth, ] for field in fields_to_copy: - old_val = match.get(field) match[field] = item[field] - print(f" {field}: {old_val} → {match[field]}") - else: - print("No similar items with identical ProfilTyp found") - # 1. Find similar items with Schaltungstyp=P (update all CP points) + + # Find similar items with Schaltungstyp=P if "S" in current_profil: prefix = current_profil.rsplit(" ", 1)[0] @@ -167,13 +110,65 @@ def process_einzelweiche_items(data, WeichenKoerperWidth, WeichenkProfileWidth, x.get("SivasnrTEF") is None and x.get("Schaltungstyp") == "P"] - if similar_items_p: - print(f"\nFound {len(similar_items_p)} similar items with Schaltungstyp=P") - for similar in similar_items_p: - print(f"Updating similar item: {similar['ProfilTyp']} (Sivasnr: {similar['Sivasnr']})") + for similar in similar_items_p: + fields_to_copy = [ + "OFWeiche_center_line_width_mm", + "OFWeiche_center_line_height_mm", + "Objekt_width_mm", + "Objekt_height_mm", + "OFWeiche_CP1_x_mm", + "OFWeiche_CP1_y_mm", + "OFWeiche_CP2_x_mm", + "OFWeiche_CP2_y_mm", + "OFWeiche_CP3_x_mm", + "OFWeiche_CP3_y_mm" + ] - # Update all fields including CP points - fields_to_copy = [ + for field in fields_to_copy: + similar[field] = item[field] + + # Find L→R similar items with KurvenRichtung=2 + if "S" in current_profil and "-L-" in current_profil: + r_profil = current_profil.replace("-L-", "-R-") + + similar_items_r = [x for x in data + if x["ProfilTyp"] == r_profil and + x.get("SivasnrTEF") is None and + x.get("KurvenRichtung") == 2 and + x.get("Schaltungstyp") == "M"] + + for similar in similar_items_r: + # Copy basic values + base_fields = [ + "OFWeiche_center_line_width_mm", + "OFWeiche_center_line_height_mm", + "Objekt_width_mm", + "Objekt_height_mm" + ] + + for field in base_fields: + similar[field] = item[field] + + # Calculate R-type specific CP points + similar["OFWeiche_CP1_x_mm"] = round(WeichenKoerperWidth+WeichenkProfileWidth/2, 3) + similar["OFWeiche_CP1_y_mm"] = round(item["Objekt_height_mm"] - WeichenGerade, 3) + similar["OFWeiche_CP2_x_mm"] = similar["OFWeiche_CP1_x_mm"] + similar["OFWeiche_CP2_y_mm"] = round(item["Objekt_height_mm"], 3) + similar["OFWeiche_CP3_x_mm"] = round( + similar["OFWeiche_CP1_x_mm"] + item["OFWeiche_center_line_width_mm"], 3) + similar["OFWeiche_CP3_y_mm"] = round( + BogenProfileWidth/2 * math.sin(angle_rad), 3) + + # Find P-type counterparts for this R-type item + r_p_profil = r_profil.replace("MIT M", "MIT P") + + similar_items_r_p = [x for x in data + if x["ProfilTyp"] == r_p_profil and + x.get("SivasnrTEF") is None and + x.get("Schaltungstyp") == "P"] + + for similar_r_p in similar_items_r_p: + fields_to_copy_r_p = [ "OFWeiche_center_line_width_mm", "OFWeiche_center_line_height_mm", "Objekt_width_mm", @@ -186,110 +181,9 @@ def process_einzelweiche_items(data, WeichenKoerperWidth, WeichenkProfileWidth, "OFWeiche_CP3_y_mm" ] - for field in fields_to_copy: - old_val = similar.get(field) - similar[field] = item[field] - print(f" {field}: {old_val} → {similar[field]}") - - else: - print("No similar items with Schaltungstyp=P found") - - # 2. Find L→R similar items with KurvenRichtung=2 - if "S" in current_profil and "-L-" in current_profil: - r_profil = current_profil.replace("-L-", "-R-") - - similar_items_r = [x for x in data - if x["ProfilTyp"] == r_profil and - x.get("SivasnrTEF") is None and - x.get("KurvenRichtung") == 2 and - x.get("Schaltungstyp") == "M"] - - if similar_items_r: - print(f"\nFound {len(similar_items_r)} L→R similar items (KurvenRichtung=2)") - for similar in similar_items_r: - print(f"Updating R-type similar item: {similar['ProfilTyp']} (Sivasnr: {similar['Sivasnr']})") - - # Copy basic values - base_fields = [ - "OFWeiche_center_line_width_mm", - "OFWeiche_center_line_height_mm", - "Objekt_width_mm", - "Objekt_height_mm" - ] - - for field in base_fields: - old_val = similar.get(field) - similar[field] = item[field] - print(f" {field}: {old_val} → {similar[field]}") - - # Calculate and print R-type specific CP points - old_cp1x = similar.get("OFWeiche_CP1_x_mm") - similar["OFWeiche_CP1_x_mm"] = round(WeichenKoerperWidth+WeichenkProfileWidth/2, 3) - print(f" OFWeiche_CP1_x_mm (R-type): {old_cp1x} → {similar['OFWeiche_CP1_x_mm']}") - - old_cp1y = similar.get("OFWeiche_CP1_y_mm") - similar["OFWeiche_CP1_y_mm"] = round(item["Objekt_height_mm"] - WeichenGerade, 3) - print(f" OFWeiche_CP1_y_mm (R-type): {old_cp1y} → {similar['OFWeiche_CP1_y_mm']}") - - similar["OFWeiche_CP2_x_mm"] = similar["OFWeiche_CP1_x_mm"] - print(f" OFWeiche_CP2_x_mm (R-type): Set to {similar['OFWeiche_CP2_x_mm']}") - - old_cp2y = similar.get("OFWeiche_CP2_y_mm") - similar["OFWeiche_CP2_y_mm"] = round(item["Objekt_height_mm"], 3) - print(f" OFWeiche_CP2_y_mm (R-type): {old_cp2y} → {similar['OFWeiche_CP2_y_mm']}") - - old_cp3x = similar.get("OFWeiche_CP3_x_mm") - similar["OFWeiche_CP3_x_mm"] = round( - similar["OFWeiche_CP1_x_mm"] + item["OFWeiche_center_line_width_mm"], 3) - print(f" OFWeiche_CP3_x_mm (R-type): {old_cp3x} → {similar['OFWeiche_CP3_x_mm']}") - - old_cp3y = similar.get("OFWeiche_CP3_y_mm") - similar["OFWeiche_CP3_y_mm"] = round( - BogenProfileWidth/2 * math.sin(angle_rad), 3) - print(f" OFWeiche_CP3_y_mm (R-type): {old_cp3y} → {similar['OFWeiche_CP3_y_mm']}") - - # 3. Find P-type counterparts for this R-type item - r_p_profil = r_profil.replace("MIT M", "MIT P") - - similar_items_r_p = [x for x in data - if x["ProfilTyp"] == r_p_profil and - x.get("SivasnrTEF") is None and - x.get("Schaltungstyp") == "P"] - - if similar_items_r_p: - print(f"\nFound {len(similar_items_r_p)} R-type P-type counterparts") - for similar_r_p in similar_items_r_p: - print(f"Updating R-type P-type counterpart: {similar_r_p['ProfilTyp']} (Sivasnr: {similar_r_p['Sivasnr']})") - - fields_to_copy_r_p = [ - "OFWeiche_center_line_width_mm", - "OFWeiche_center_line_height_mm", - "Objekt_width_mm", - "Objekt_height_mm", - "OFWeiche_CP1_x_mm", - "OFWeiche_CP1_y_mm", - "OFWeiche_CP2_x_mm", - "OFWeiche_CP2_y_mm", - "OFWeiche_CP3_x_mm", - "OFWeiche_CP3_y_mm" - ] - - for field in fields_to_copy_r_p: - old_val = similar_r_p.get(field) - similar_r_p[field] = similar[field] - print(f" {field}: {old_val} → {similar_r_p[field]}") + for field in fields_to_copy_r_p: + similar_r_p[field] = similar[field] - save_choice = input(f"Confirm update for this item? (Enter to confirm, 'n' to cancel): ").lower() - if save_choice == 'n': - print("Update for this item cancelled") - # Restore original values - for field in fields_to_copy_r_p: - if field in similar_r_p: - similar_r_p[field] = old_val - else: - print("No R-type P-type counterparts found") - else: - print("No L→R similar items found") def process_doppelweiche_items(data, BogenProfileWidth, WeichenGerade): # Filter Doppelweiche type items with numeric Sivasnr check filtered_items = [ @@ -300,100 +194,45 @@ def process_doppelweiche_items(data, BogenProfileWidth, WeichenGerade): str(item.get("Sivasnr", "")).isdigit()) ] - print(f"\n\nFound {len(filtered_items)} Doppelweiche type records with numeric Sivasnr") - print("="*50) + print(f"\nFound {len(filtered_items)} Doppelweiche type records with numeric Sivasnr") # Process each Doppelweiche item - for idx, item in enumerate(filtered_items, 1): - print(f"\nDoppelweiche item {idx}:") - print(f"Sivasnr: {item['Sivasnr']}") - print(f"ProfilTyp: {item['ProfilTyp']}") - print(f"Schaltungstyp: {item['Schaltungstyp']}") - print(f"KurvenWinkel: {item['KurvenWinkel']}") - - # Process OFWeiche_center_line_width_mm - current_value = item.get("OFWeiche_center_line_width_mm") - print(f"\nCurrent OFWeiche_center_line_width_mm: {current_value}") - choice = input("Modify? (y to modify, Enter to skip): ").lower() - if choice == 'y': - new_value = input(f"Enter new value (current: {current_value}): ") - try: - old_value = item["OFWeiche_center_line_width_mm"] - item["OFWeiche_center_line_width_mm"] = round(float(new_value), 3) if new_value.lower() != 'null' else None - print(f"Value updated: {old_value} → {item['OFWeiche_center_line_width_mm']}") - except ValueError: - print("Invalid input, keeping original value") - else: - print("Skipping modification") - - # Process OFWeiche_center_line_height_mm - current_value = item.get("OFWeiche_center_line_height_mm") - print(f"\nCurrent OFWeiche_center_line_height_mm: {current_value}") - choice = input("Modify? (y to modify, Enter to skip): ").lower() - if choice == 'y': - new_value = input(f"Enter new value (current: {current_value}): ") - try: - old_value = item["OFWeiche_center_line_height_mm"] - item["OFWeiche_center_line_height_mm"] = round(float(new_value), 3) if new_value.lower() != 'null' else None - print(f"Value updated: {old_value} → {item['OFWeiche_center_line_height_mm']}") - except ValueError: - print("Invalid input, keeping original value") - else: - print("Skipping modification") - + for item in filtered_items: # Calculate related values if (item["OFWeiche_center_line_width_mm"] is not None and item["OFWeiche_center_line_height_mm"] is not None): angle_rad = math.radians(item["KurvenWinkel"]) - # Calculate and print basic values (Doppelweiche specific formula) - old_width = item.get("Objekt_width_mm") + # Calculate basic values (Doppelweiche specific formula) item["Objekt_width_mm"] = round( (BogenProfileWidth/2 * math.cos(angle_rad)) + item["OFWeiche_center_line_width_mm"] + BogenProfileWidth/2 * math.cos(angle_rad), 3) - print(f"\nObjekt_width_mm calculated update: {old_width} → {item['Objekt_width_mm']}") - old_height = item.get("Objekt_height_mm") item["Objekt_height_mm"] = round( (BogenProfileWidth/2 * math.sin(angle_rad)) + item["OFWeiche_center_line_height_mm"], 3) - print(f"Objekt_height_mm calculated update: {old_height} → {item['Objekt_height_mm']}") - # Calculate and print CP point coordinates (Doppelweiche specific formula) + # Calculate CP point coordinates (Doppelweiche specific formula) item["OFWeiche_CP1_x_mm"] = round(item["Objekt_width_mm"]/2, 3) - print(f"OFWeiche_CP1_x_mm calculated update: {item['OFWeiche_CP1_x_mm']}") - item["OFWeiche_CP1_y_mm"] = round(item["Objekt_height_mm"], 3) - print(f"OFWeiche_CP1_y_mm calculated update: {item['OFWeiche_CP1_y_mm']}") - item["OFWeiche_CP2_x_mm"] = round(BogenProfileWidth/2 * math.cos(angle_rad), 3) - print(f"OFWeiche_CP2_x_mm calculated update: {item['OFWeiche_CP2_x_mm']}") - item["OFWeiche_CP2_y_mm"] = round(BogenProfileWidth/2 * math.sin(angle_rad), 3) - print(f"OFWeiche_CP2_y_mm calculated update: {item['OFWeiche_CP2_y_mm']}") - item["OFWeiche_CP3_x_mm"] = round( BogenProfileWidth/2 * math.cos(angle_rad) + item["OFWeiche_center_line_width_mm"], 3) - print(f"OFWeiche_CP3_x_mm calculated update: {item['OFWeiche_CP3_x_mm']}") - item["OFWeiche_CP3_y_mm"] = item["OFWeiche_CP2_y_mm"] - print(f"OFWeiche_CP3_y_mm set: {item['OFWeiche_CP3_y_mm']}") - # NEW: First find exact ProfilTyp matches and update them + # Update items with identical ProfilTyp current_profil = item["ProfilTyp"] exact_matches = [x for x in data if x["ProfilTyp"] == current_profil and - x is not item and # Exclude the current item + x is not item and x.get("SivasnrTEF") is None] if exact_matches: - print(f"\nFound {len(exact_matches)} items with identical ProfilTyp") for match in exact_matches: - print(f"Updating identical ProfilTyp item: {match['Sivasnr']}") - fields_to_copy = [ "OFWeiche_center_line_width_mm", "OFWeiche_center_line_height_mm", @@ -408,13 +247,9 @@ def process_doppelweiche_items(data, BogenProfileWidth, WeichenGerade): ] for field in fields_to_copy: - old_val = match.get(field) match[field] = item[field] - print(f" {field}: {old_val} → {match[field]}") - else: - print("No similar items with identical ProfilTyp found") - # 1. Find similar items (D-type P-type) + # Find similar items (D-type P-type) if "S D" in current_profil: d_p_profil = current_profil.replace("MIT M", "MIT P") @@ -422,33 +257,24 @@ def process_doppelweiche_items(data, BogenProfileWidth, WeichenGerade): if x["ProfilTyp"] == d_p_profil and x.get("SivasnrTEF") is None] - if similar_items_d_p: - print(f"\nFound {len(similar_items_d_p)} D-type P-type similar items") - for similar in similar_items_d_p: - print(f"Updating D-type P-type similar item: {similar['ProfilTyp']} (Sivasnr: {similar['Sivasnr']})") - - # Update all fields - fields_to_copy = [ - "OFWeiche_center_line_width_mm", - "OFWeiche_center_line_height_mm", - "Objekt_width_mm", - "Objekt_height_mm", - "OFWeiche_CP1_x_mm", - "OFWeiche_CP1_y_mm", - "OFWeiche_CP2_x_mm", - "OFWeiche_CP2_y_mm", - "OFWeiche_CP3_x_mm", - "OFWeiche_CP3_y_mm" - ] - - for field in fields_to_copy: - old_val = similar.get(field) - similar[field] = item[field] - print(f" {field}: {old_val} → {similar[field]}") - else: - print("No D-type P-type similar items found") + for similar in similar_items_d_p: + fields_to_copy = [ + "OFWeiche_center_line_width_mm", + "OFWeiche_center_line_height_mm", + "Objekt_width_mm", + "Objekt_height_mm", + "OFWeiche_CP1_x_mm", + "OFWeiche_CP1_y_mm", + "OFWeiche_CP2_x_mm", + "OFWeiche_CP2_y_mm", + "OFWeiche_CP3_x_mm", + "OFWeiche_CP3_y_mm" + ] + + for field in fields_to_copy: + similar[field] = item[field] - # 2. Find similar items (T-type M-type) + # Find similar items (T-type M-type) if "S D" in current_profil: t_m_profil = current_profil.replace("S D", "S T") @@ -457,170 +283,88 @@ def process_doppelweiche_items(data, BogenProfileWidth, WeichenGerade): x.get("SivasnrTEF") is None and x.get("Schaltungstyp") == "M"] - if similar_items_t_m: - print(f"\nFound {len(similar_items_t_m)} T-type M-type similar items") - for similar in similar_items_t_m: - print(f"Updating T-type M-type similar item: {similar['ProfilTyp']} (Sivasnr: {similar['Sivasnr']})") - if similar["KurvenWinkel"] == 22.5: - print("Detected KurvenWinkel=22.5, applying special handling") + for similar in similar_items_t_m: + if similar["KurvenWinkel"] == 22.5: + # Special handling for KurvenWinkel=22.5 + similar["OFWeiche_center_line_width_mm"] = item["OFWeiche_center_line_width_mm"] + similar["OFWeiche_center_line_height_mm"] = WeichenGerade + similar["Objekt_width_mm"] = item["Objekt_width_mm"] + similar["Objekt_height_mm"] = WeichenGerade + similar["OFWeiche_CP1_x_mm"] = item["OFWeiche_CP1_x_mm"] + similar["OFWeiche_CP1_y_mm"] = similar["Objekt_height_mm"] + similar["OFWeiche_CP2_x_mm"] = item["OFWeiche_CP2_x_mm"] + similar["OFWeiche_CP2_y_mm"] = 20 + similar["OFWeiche_CP3_x_mm"] = item["OFWeiche_CP3_x_mm"] + similar["OFWeiche_CP3_y_mm"] = 20 + else: + # Update basic fields + base_fields = [ + "OFWeiche_center_line_width_mm", + "OFWeiche_center_line_height_mm", + "Objekt_width_mm", + "Objekt_height_mm", + "OFWeiche_CP1_x_mm", + "OFWeiche_CP1_y_mm", + "OFWeiche_CP2_x_mm", + "OFWeiche_CP2_y_mm", + "OFWeiche_CP3_x_mm", + "OFWeiche_CP3_y_mm" + ] + + for field in base_fields: + similar[field] = item[field] + + # Add CP4 point (T-type specific) + similar["OFWeiche_CP4_x_mm"] = round(similar["Objekt_width_mm"]/2, 3) + similar["OFWeiche_CP4_y_mm"] = round(similar["Objekt_height_mm"] - WeichenGerade, 3) + + # Find T-type P-type counterparts + t_p_profil = t_m_profil.replace("MIT M", "MIT P") + + similar_items_t_p = [x for x in data + if x["ProfilTyp"] == t_p_profil and + x.get("SivasnrTEF") is None and + x.get("Schaltungstyp") == "P"] + + for similar_t_p in similar_items_t_p: + fields_to_copy_t_p = [ + "OFWeiche_center_line_width_mm", + "OFWeiche_center_line_height_mm", + "Objekt_width_mm", + "Objekt_height_mm", + "OFWeiche_CP1_x_mm", + "OFWeiche_CP1_y_mm", + "OFWeiche_CP2_x_mm", + "OFWeiche_CP2_y_mm", + "OFWeiche_CP3_x_mm", + "OFWeiche_CP3_y_mm", + "OFWeiche_CP4_x_mm", + "OFWeiche_CP4_y_mm" + ] - # Special handling logic - similar["OFWeiche_center_line_width_mm"] = item["OFWeiche_center_line_width_mm"] - print(f" OFWeiche_center_line_width_mm: → {similar['OFWeiche_center_line_width_mm']}") - - similar["OFWeiche_center_line_height_mm"] = WeichenGerade - print(f" OFWeiche_center_line_height_mm: → {WeichenGerade}") - - similar["Objekt_width_mm"] = item["Objekt_width_mm"] - print(f" Objekt_width_mm: → {similar['Objekt_width_mm']}") - - similar["Objekt_height_mm"] = WeichenGerade - print(f" Objekt_height_mm: → {WeichenGerade}") - - similar["OFWeiche_CP1_x_mm"] = item["OFWeiche_CP1_x_mm"] - print(f" OFWeiche_CP1_x_mm: → {similar['OFWeiche_CP1_x_mm']}") - - similar["OFWeiche_CP1_y_mm"] = similar["Objekt_height_mm"] - print(f" OFWeiche_CP1_y_mm: → {similar['OFWeiche_CP1_y_mm']}") - - similar["OFWeiche_CP2_x_mm"] = item["OFWeiche_CP2_x_mm"] - print(f" OFWeiche_CP2_x_mm: → {similar['OFWeiche_CP2_x_mm']}") - - similar["OFWeiche_CP2_y_mm"] = 20 - print(f" OFWeiche_CP2_y_mm: → 20") - - similar["OFWeiche_CP3_x_mm"] = item["OFWeiche_CP3_x_mm"] - print(f" OFWeiche_CP3_x_mm: → {similar['OFWeiche_CP3_x_mm']}") - - similar["OFWeiche_CP3_y_mm"] = 20 - print(f" OFWeiche_CP3_y_mm: → 20") - - else: - # Update basic fields - base_fields = [ - "OFWeiche_center_line_width_mm", - "OFWeiche_center_line_height_mm", - "Objekt_width_mm", - "Objekt_height_mm", - "OFWeiche_CP1_x_mm", - "OFWeiche_CP1_y_mm", - "OFWeiche_CP2_x_mm", - "OFWeiche_CP2_y_mm", - "OFWeiche_CP3_x_mm", - "OFWeiche_CP3_y_mm" - ] - - for field in base_fields: - old_val = similar.get(field) - similar[field] = item[field] - print(f" {field}: {old_val} → {similar[field]}") - - # Add CP4 point (T-type specific) - similar["OFWeiche_CP4_x_mm"] = round(similar["Objekt_width_mm"]/2, 3) - print(f" OFWeiche_CP4_x_mm added: {similar['OFWeiche_CP4_x_mm']}") - - similar["OFWeiche_CP4_y_mm"] = round(similar["Objekt_height_mm"] - WeichenGerade, 3) - print(f" OFWeiche_CP4_y_mm added: {similar['OFWeiche_CP4_y_mm']}") - - # 3. Find T-type P-type counterparts - t_p_profil = t_m_profil.replace("MIT M", "MIT P") - - similar_items_t_p = [x for x in data - if x["ProfilTyp"] == t_p_profil and - x.get("SivasnrTEF") is None and - x.get("Schaltungstyp") == "P"] - - if similar_items_t_p: - print(f"\nFound {len(similar_items_t_p)} T-type P-type counterparts") - for similar_t_p in similar_items_t_p: - print(f"Updating T-type P-type counterpart: {similar_t_p['ProfilTyp']} (Sivasnr: {similar_t_p['Sivasnr']})") - - # Update all fields including CP4 point - fields_to_copy_t_p = [ - "OFWeiche_center_line_width_mm", - "OFWeiche_center_line_height_mm", - "Objekt_width_mm", - "Objekt_height_mm", - "OFWeiche_CP1_x_mm", - "OFWeiche_CP1_y_mm", - "OFWeiche_CP2_x_mm", - "OFWeiche_CP2_y_mm", - "OFWeiche_CP3_x_mm", - "OFWeiche_CP3_y_mm", - "OFWeiche_CP4_x_mm", - "OFWeiche_CP4_y_mm" - ] - - for field in fields_to_copy_t_p: - old_val = similar_t_p.get(field) - similar_t_p[field] = similar[field] - print(f" {field}: {old_val} → {similar_t_p[field]}") - - # Add save confirmation prompt - save_choice = input(f"Confirm update for this item? (Enter to confirm, 'n' to cancel): ").lower() - if save_choice == 'n': - print("Update for this item cancelled") - # Restore original values - for field in fields_to_copy_t_p: - similar_t_p[field] = old_val - else: - print("No T-type P-type counterparts found") - else: - print("No T-type M-type similar items found") + for field in fields_to_copy_t_p: + similar_t_p[field] = similar[field] + def process_deltaweiche_items(data, WeichenkProfileWidth): # Filter deltaweiche type items filtered_items = [ - item for item in data - if (item.get("WeichenTyp") == "Dreifachweiche" and - item.get("Schaltungstyp") == "M" and - item.get("SivasnrTEF") is None)and - str(item.get("Sivasnr", "")).isdigit() - ] + item for item in data + if (item.get("WeichenTyp") == "Dreifachweiche" and + item.get("Schaltungstyp") == "M" and + item.get("SivasnrTEF") is None and + str(item.get("Sivasnr", "")).isdigit()) + ] - print(f"\n\nFound {len(filtered_items)} deltaweiche type records") - print("="*50) + print(f"\nFound {len(filtered_items)} deltaweiche type records") - for idx, item in enumerate(filtered_items, 1): - print(f"\ndeltaweiche item {idx}:") - print(f"Sivasnr: {item['Sivasnr']}") - print(f"ProfilTyp: {item['ProfilTyp']}") - - # Interactive modification of OFWeiche_center_line_width_mm - current_value = item.get("OFWeiche_center_line_width_mm") - print(f"\nCurrent OFWeiche_center_line_width_mm: {current_value}") - choice = input("Modify? (y to modify, Enter to skip): ").lower() - if choice == 'y': - new_value = input(f"Enter new value (current: {current_value}): ") - try: - old_value = item["OFWeiche_center_line_width_mm"] - item["OFWeiche_center_line_width_mm"] = round(float(new_value), 3) if new_value.lower() != 'null' else None - print(f"Value updated: {old_value} → {item['OFWeiche_center_line_width_mm']}") - except ValueError: - print("Invalid input, keeping original value") - - # Interactive modification of OFWeiche_center_line_height_mm - current_value = item.get("OFWeiche_center_line_height_mm") - print(f"\nCurrent OFWeiche_center_line_height_mm: {current_value}") - choice = input("Modify? (y to modify, Enter to skip): ").lower() - if choice == 'y': - new_value = input(f"Enter new value (current: {current_value}): ") - try: - old_value = item["OFWeiche_center_line_height_mm"] - item["OFWeiche_center_line_height_mm"] = round(float(new_value), 3) if new_value.lower() != 'null' else None - print(f"Value updated: {old_value} → {item['OFWeiche_center_line_height_mm']}") - except ValueError: - print("Invalid input, keeping original value") - + for item in filtered_items: # Calculate related values if (item["OFWeiche_center_line_width_mm"] is not None and item["OFWeiche_center_line_height_mm"] is not None): # Calculate basic dimensions item["Objekt_width_mm"] = round(item["OFWeiche_center_line_width_mm"], 3) - print(f"\nObjekt_width_mm calculated update: {item['Objekt_width_mm']}") - item["Objekt_height_mm"] = round(WeichenkProfileWidth/2 + item["OFWeiche_center_line_height_mm"]+32.5437, 3) - print(f"Objekt_height_mm calculated update: {item['Objekt_height_mm']}") # Calculate control points item["OFWeiche_CP1_x_mm"] = round(item["Objekt_width_mm"]/2, 3) @@ -629,25 +373,16 @@ def process_deltaweiche_items(data, WeichenkProfileWidth): item["OFWeiche_CP2_y_mm"] = round(item["OFWeiche_center_line_height_mm"], 3) item["OFWeiche_CP3_x_mm"] = round(item["OFWeiche_center_line_width_mm"], 3) item["OFWeiche_CP3_y_mm"] = item["OFWeiche_CP2_y_mm"] - print(f"OFWeiche_CP1_x_mm: {item['OFWeiche_CP1_x_mm']}") - print(f"OFWeiche_CP1_y_mm: {item['OFWeiche_CP1_y_mm']}") - print(f"OFWeiche_CP2_x_mm: {item['OFWeiche_CP2_x_mm']}") - print(f"OFWeiche_CP2_y_mm: {item['OFWeiche_CP2_y_mm']}") - print(f"OFWeiche_CP3_x_mm: {item['OFWeiche_CP3_x_mm']}") - print(f"OFWeiche_CP3_y_mm: {item['OFWeiche_CP3_y_mm']}") - - # NEW: First find exact ProfilTyp matches and update them + + # Update items with identical ProfilTyp current_profil = item["ProfilTyp"] exact_matches = [x for x in data if x["ProfilTyp"] == current_profil and - x is not item and # Exclude the current item + x is not item and x.get("SivasnrTEF") is None] if exact_matches: - print(f"\nFound {len(exact_matches)} items with identical ProfilTyp") for match in exact_matches: - print(f"Updating identical ProfilTyp item: {match['Sivasnr']}") - fields_to_copy = [ "OFWeiche_center_line_width_mm", "OFWeiche_center_line_height_mm", @@ -662,11 +397,8 @@ def process_deltaweiche_items(data, WeichenkProfileWidth): ] for field in fields_to_copy: - old_val = match.get(field) match[field] = item[field] - print(f" {field}: {old_val} → {match[field]}") - else: - print("No similar items with identical ProfilTyp found") + # Find similar items (P-type) if "WEICHE S C DELTA" in item["ProfilTyp"]: similar_profil = item["ProfilTyp"].replace("KPL. MIT M", "KPL. MIT P") @@ -675,39 +407,22 @@ def process_deltaweiche_items(data, WeichenkProfileWidth): if x["ProfilTyp"] == similar_profil and x.get("SivasnrTEF") is None] - if similar_items: - print(f"\nFound {len(similar_items)} similar P-type items") - for similar in similar_items: - print(f"\nUpdating: {similar['ProfilTyp']} (Sivasnr: {similar['Sivasnr']})") - - fields_to_copy = [ - "OFWeiche_center_line_width_mm", - "OFWeiche_center_line_height_mm", - "Objekt_width_mm", - "Objekt_height_mm", - "OFWeiche_CP1_x_mm", - "OFWeiche_CP1_y_mm", - "OFWeiche_CP2_x_mm", - "OFWeiche_CP2_y_mm", - "OFWeiche_CP3_x_mm", - "OFWeiche_CP3_y_mm" - ] - - print("\nUpdating:") - for field in fields_to_copy: - print(f" {field}: {similar.get(field)} → {item[field]}") - similar[field] = item[field] # Actually update the similar item's value + for similar in similar_items: + fields_to_copy = [ + "OFWeiche_center_line_width_mm", + "OFWeiche_center_line_height_mm", + "Objekt_width_mm", + "Objekt_height_mm", + "OFWeiche_CP1_x_mm", + "OFWeiche_CP1_y_mm", + "OFWeiche_CP2_x_mm", + "OFWeiche_CP2_y_mm", + "OFWeiche_CP3_x_mm", + "OFWeiche_CP3_y_mm" + ] - choice = input("\nConfirm update for this item? (Enter to confirm/n to cancel): ").lower() - if choice == 'n': - print("Update for this item cancelled") - for field in fields_to_copy: - similar[field] = similar[field] - else: - print("Update for this item confirmed") - - else: - print("No similar P-type items found") + for field in fields_to_copy: + similar[field] = item[field] if __name__ == "__main__": json_path = os.environ.get("JSON_PATH", "JSON") diff --git a/SVGs/Omniflo/python/OFWeiche/json/omniflo_weichen.json b/SVGs/Omniflo/python/OFWeiche/json/omniflo_weichen.json index d040d16..234c8da 100644 --- a/SVGs/Omniflo/python/OFWeiche/json/omniflo_weichen.json +++ b/SVGs/Omniflo/python/OFWeiche/json/omniflo_weichen.json @@ -18,6 +18,25 @@ "OFWeiche_CP3_x_mm": 14.878, "OFWeiche_CP3_y_mm": 14.878 }, + { + "Sivasnr": "OFWeicheEinfach45", + "ProfilTyp": "WEICHE S 45°-L-350/700, KPL. MIT M", + "WeichenTyp": "Einzelweiche", + "KurvenWinkel": 45, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 350.129, + "OFWeiche_center_line_height_mm": 700.123, + "Objekt_width_mm": 418.55, + "Objekt_height_mm": 715.001, + "OFWeiche_CP1_x_mm": 365.007, + "OFWeiche_CP1_y_mm": 355.001, + "KurvenRichtung": 1, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 365.007, + "OFWeiche_CP2_y_mm": 715.001, + "OFWeiche_CP3_x_mm": 14.878, + "OFWeiche_CP3_y_mm": 14.878 + }, { "Sivasnr": 834372002, "ProfilTyp": "WEICHE S 45°-L-350/700, KPL. MIT P", @@ -360,6 +379,25 @@ "OFWeiche_CP3_x_mm": 0.0, "OFWeiche_CP3_y_mm": 21.04 }, + { + "Sivasnr": "OFWeicheEinfach90", + "ProfilTyp": "WEICHE S 90°-L-700/700, KPL. MIT M", + "WeichenTyp": "Einzelweiche", + "KurvenWinkel": 90, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 700.374, + "OFWeiche_center_line_height_mm": 700.185, + "Objekt_width_mm": 753.918, + "Objekt_height_mm": 721.225, + "OFWeiche_CP1_x_mm": 700.374, + "OFWeiche_CP1_y_mm": 361.225, + "KurvenRichtung": 1, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 700.374, + "OFWeiche_CP2_y_mm": 721.225, + "OFWeiche_CP3_x_mm": 0.0, + "OFWeiche_CP3_y_mm": 21.04 + }, { "Sivasnr": 834372028, "ProfilTyp": "WEICHE S 90°-L-700/700, KPL. MIT P", @@ -474,6 +512,25 @@ "OFWeiche_CP3_x_mm": 21.04, "OFWeiche_CP3_y_mm": 0.0 }, + { + "Sivasnr": "OFWeicheParallelEinfach", + "ProfilTyp": "WEICHE S PARALLEL-L-200/750, KPL. MIT M", + "WeichenTyp": "Einzelweiche", + "KurvenWinkel": 0, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 200.007, + "OFWeiche_center_line_height_mm": 749.8, + "Objekt_width_mm": 274.591, + "Objekt_height_mm": 749.8, + "OFWeiche_CP1_x_mm": 221.047, + "OFWeiche_CP1_y_mm": 389.8, + "KurvenRichtung": 1, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 221.047, + "OFWeiche_CP2_y_mm": 749.8, + "OFWeiche_CP3_x_mm": 21.04, + "OFWeiche_CP3_y_mm": 0.0 + }, { "Sivasnr": 834372048, "ProfilTyp": "WEICHE S PARALLEL-L-200/750, KPL. MIT P", @@ -550,6 +607,25 @@ "OFWeiche_CP3_x_mm": 715.136, "OFWeiche_CP3_y_mm": 14.878 }, + { + "Sivasnr": "OFWeicheDoppel45", + "ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT M", + "WeichenTyp": "Doppelweiche", + "KurvenWinkel": 45, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 700.258, + "OFWeiche_center_line_height_mm": 700.123, + "Objekt_width_mm": 730.013, + "Objekt_height_mm": 715.001, + "OFWeiche_CP1_x_mm": 365.007, + "OFWeiche_CP1_y_mm": 715.001, + "KurvenRichtung": 3, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 14.878, + "OFWeiche_CP2_y_mm": 14.878, + "OFWeiche_CP3_x_mm": 715.136, + "OFWeiche_CP3_y_mm": 14.878 + }, { "Sivasnr": 834372101, "ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT P", @@ -835,6 +911,25 @@ "OFWeiche_CP3_x_mm": 1400.739, "OFWeiche_CP3_y_mm": 21.04 }, + { + "Sivasnr": "OFWeicheDoppel90", + "ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT M", + "WeichenTyp": "Doppelweiche", + "KurvenWinkel": 90, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 1400.739, + "OFWeiche_center_line_height_mm": 700.176, + "Objekt_width_mm": 1400.739, + "Objekt_height_mm": 721.216, + "OFWeiche_CP1_x_mm": 700.37, + "OFWeiche_CP1_y_mm": 721.216, + "KurvenRichtung": 3, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 0.0, + "OFWeiche_CP2_y_mm": 21.04, + "OFWeiche_CP3_x_mm": 1400.739, + "OFWeiche_CP3_y_mm": 21.04 + }, { "Sivasnr": 834372110, "ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT P", @@ -930,6 +1025,25 @@ "OFWeiche_CP3_x_mm": 421.054, "OFWeiche_CP3_y_mm": 0.0 }, + { + "Sivasnr": "OFWeicheParallelDoppel", + "ProfilTyp": "WEICHE S D PARALLEL-200/750, KPL. MIT M", + "WeichenTyp": "Doppelweiche", + "KurvenWinkel": 0, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 400.014, + "OFWeiche_center_line_height_mm": 749.8, + "Objekt_width_mm": 442.094, + "Objekt_height_mm": 749.8, + "OFWeiche_CP1_x_mm": 221.047, + "OFWeiche_CP1_y_mm": 749.8, + "KurvenRichtung": 3, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 21.04, + "OFWeiche_CP2_y_mm": 0.0, + "OFWeiche_CP3_x_mm": 421.054, + "OFWeiche_CP3_y_mm": 0.0 + }, { "Sivasnr": 834372116, "ProfilTyp": "WEICHE S D PARALLEL-200/750, KPL. MIT P", @@ -970,6 +1084,27 @@ "OFWeiche_CP4_x_mm": 365.007, "OFWeiche_CP4_y_mm": 355.001 }, + { + "Sivasnr": "OFWeicheDreiwege45", + "ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT M", + "WeichenTyp": "Dreiwegeweiche", + "KurvenWinkel": 45, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 700.258, + "OFWeiche_center_line_height_mm": 700.123, + "Objekt_width_mm": 730.013, + "Objekt_height_mm": 715.001, + "OFWeiche_CP1_x_mm": 365.007, + "OFWeiche_CP1_y_mm": 715.001, + "KurvenRichtung": 7, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 14.878, + "OFWeiche_CP2_y_mm": 14.878, + "OFWeiche_CP3_x_mm": 715.136, + "OFWeiche_CP3_y_mm": 14.878, + "OFWeiche_CP4_x_mm": 365.007, + "OFWeiche_CP4_y_mm": 355.001 + }, { "Sivasnr": 834372201, "ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT P", @@ -1267,6 +1402,27 @@ "OFWeiche_CP4_x_mm": 700.37, "OFWeiche_CP4_y_mm": 361.216 }, + { + "Sivasnr": "OFWeicheDreiwege90", + "ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT M", + "WeichenTyp": "Dreiwegeweiche", + "KurvenWinkel": 90, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 1400.739, + "OFWeiche_center_line_height_mm": 700.176, + "Objekt_width_mm": 1400.739, + "Objekt_height_mm": 721.216, + "OFWeiche_CP1_x_mm": 700.37, + "OFWeiche_CP1_y_mm": 721.216, + "KurvenRichtung": 7, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 0.0, + "OFWeiche_CP2_y_mm": 21.04, + "OFWeiche_CP3_x_mm": 1400.739, + "OFWeiche_CP3_y_mm": 21.04, + "OFWeiche_CP4_x_mm": 700.37, + "OFWeiche_CP4_y_mm": 361.216 + }, { "Sivasnr": 834372210, "ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT P", @@ -1366,6 +1522,27 @@ "OFWeiche_CP4_x_mm": 221.047, "OFWeiche_CP4_y_mm": 389.8 }, + { + "Sivasnr": "OFWeicheParallelDreiwege", + "ProfilTyp": "WEICHE S T PARALLEL-200/750, KPL. MIT M", + "WeichenTyp": "Dreiwegeweiche", + "KurvenWinkel": 0, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 400.014, + "OFWeiche_center_line_height_mm": 749.8, + "Objekt_width_mm": 442.094, + "Objekt_height_mm": 749.8, + "OFWeiche_CP1_x_mm": 221.047, + "OFWeiche_CP1_y_mm": 749.8, + "KurvenRichtung": 7, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 21.04, + "OFWeiche_CP2_y_mm": 0.0, + "OFWeiche_CP3_x_mm": 421.054, + "OFWeiche_CP3_y_mm": 0.0, + "OFWeiche_CP4_x_mm": 221.047, + "OFWeiche_CP4_y_mm": 389.8 + }, { "Sivasnr": 834372216, "ProfilTyp": "WEICHE S T PARALLEL-200/750, KPL. MIT P", @@ -1406,6 +1583,25 @@ "OFWeiche_CP3_x_mm": 1400.462, "OFWeiche_CP3_y_mm": 700.237 }, + { + "Sivasnr": "OFDeltaWeiche", + "ProfilTyp": "WEICHE S C DELTA 1400/700, KPL. MIT M", + "WeichenTyp": "Dreifachweiche", + "KurvenWinkel": 90, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 1400.462, + "OFWeiche_center_line_height_mm": 700.237, + "Objekt_width_mm": 1400.462, + "Objekt_height_mm": 753.781, + "OFWeiche_CP1_x_mm": 700.231, + "OFWeiche_CP1_y_mm": 0, + "KurvenRichtung": 7, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 0, + "OFWeiche_CP2_y_mm": 700.237, + "OFWeiche_CP3_x_mm": 1400.462, + "OFWeiche_CP3_y_mm": 700.237 + }, { "Sivasnr": 834372401, "ProfilTyp": "WEICHE S C DELTA 1400/700, KPL. MIT P", @@ -1541,6 +1737,27 @@ "OFWeiche_CP4_x_mm": 0, "OFWeiche_CP4_y_mm": 700.221 }, + { + "Sivasnr": 834372421, + "ProfilTyp": "WEICHE S C STAR 1400/1400, KPL. MIT P", + "WeichenTyp": "Sternweiche", + "KurvenWinkel": 0, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 1400.442, + "OFWeiche_center_line_height_mm": 1400.442, + "Objekt_width_mm": 1400.442, + "Objekt_height_mm": 1400.442, + "OFWeiche_CP1_x_mm": 700.221, + "OFWeiche_CP1_y_mm": 0, + "KurvenRichtung": 7, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 1400.442, + "OFWeiche_CP2_y_mm": 700.221, + "OFWeiche_CP3_x_mm": 700.221, + "OFWeiche_CP3_y_mm": 1400.442, + "OFWeiche_CP4_x_mm": 0, + "OFWeiche_CP4_y_mm": 700.221 + }, { "Sivasnr": 834342011, "ProfilTyp": "WEICHENKOERPER S -L-, KPL. MIT M", @@ -1560,6 +1777,25 @@ "OFWeiche_CP3_x_mm": 19.438, "OFWeiche_CP3_y_mm": 8.052 }, + { + "Sivasnr": "OFWeichenkoerperEinfach", + "ProfilTyp": "WEICHENKOERPER S -L-, KPL. MIT M", + "WeichenTyp": "Einzelweiche", + "KurvenWinkel": 22.5, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 101.5, + "OFWeiche_center_line_height_mm": 360, + "Objekt_width_mm": 174.482, + "Objekt_height_mm": 360, + "OFWeiche_CP1_x_mm": 120.938, + "OFWeiche_CP1_y_mm": 0.0, + "KurvenRichtung": 1, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 120.938, + "OFWeiche_CP2_y_mm": 360, + "OFWeiche_CP3_x_mm": 19.438, + "OFWeiche_CP3_y_mm": 8.052 + }, { "Sivasnr": 834342001, "ProfilTyp": "WEICHENKOERPER S -R-, KPL. MIT M", @@ -1636,6 +1872,25 @@ "OFWeiche_CP3_x_mm": 222.438, "OFWeiche_CP3_y_mm": 8.052 }, + { + "Sivasnr": "OFWeichenkoerperDoppel", + "ProfilTyp": "WEICHENKOERPER S D, KPL. MIT M", + "WeichenTyp": "Doppelweiche", + "KurvenWinkel": 22.5, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 203, + "OFWeiche_center_line_height_mm": 340, + "Objekt_width_mm": 241.877, + "Objekt_height_mm": 348.052, + "OFWeiche_CP1_x_mm": 120.939, + "OFWeiche_CP1_y_mm": 348.052, + "KurvenRichtung": 3, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 19.438, + "OFWeiche_CP2_y_mm": 8.052, + "OFWeiche_CP3_x_mm": 222.438, + "OFWeiche_CP3_y_mm": 8.052 + }, { "Sivasnr": 834342101, "ProfilTyp": "WEICHENKOERPER S D, KPL. MIT P", @@ -1674,7 +1929,28 @@ "OFWeiche_CP3_x_mm": 222.438, "OFWeiche_CP3_y_mm": 20, "OFWeiche_CP4_x_mm": 120.939, - "OFWeiche_CP4_y_mm": -11.948 + "OFWeiche_CP4_y_mm": 0.0 + }, + { + "Sivasnr": "OFWeichenkoerperDreiwege", + "ProfilTyp": "WEICHENKOERPER S T, KPL. MIT M", + "WeichenTyp": "Dreiwegeweiche", + "KurvenWinkel": 22.5, + "Schaltungstyp": "M", + "OFWeiche_center_line_width_mm": 203, + "OFWeiche_center_line_height_mm": 360.0, + "Objekt_width_mm": 241.877, + "Objekt_height_mm": 360.0, + "OFWeiche_CP1_x_mm": 120.939, + "OFWeiche_CP1_y_mm": 360.0, + "KurvenRichtung": 7, + "SivasnrTEF": null, + "OFWeiche_CP2_x_mm": 19.438, + "OFWeiche_CP2_y_mm": 20, + "OFWeiche_CP3_x_mm": 222.438, + "OFWeiche_CP3_y_mm": 20, + "OFWeiche_CP4_x_mm": 120.939, + "OFWeiche_CP4_y_mm": 0.0 }, { "Sivasnr": 834342201, @@ -1695,6 +1971,6 @@ "OFWeiche_CP3_x_mm": 222.438, "OFWeiche_CP3_y_mm": 20, "OFWeiche_CP4_x_mm": 120.939, - "OFWeiche_CP4_y_mm": -11.948 + "OFWeiche_CP4_y_mm": 0.0 } ] \ No newline at end of file diff --git a/SVGs/Omniflo/python/OFWeiche/json/omniflo_weichen_output.json b/SVGs/Omniflo/python/OFWeiche/json/omniflo_weichen_output.json index 09f680a..d0fd19c 100644 --- a/SVGs/Omniflo/python/OFWeiche/json/omniflo_weichen_output.json +++ b/SVGs/Omniflo/python/OFWeiche/json/omniflo_weichen_output.json @@ -3300,60 +3300,12 @@ } ] }, - { - "Sivasnr": "OFStarWeiche", - "ProfilTyp": "WEICHE S C STAR 1400/1400, KPL. MIT M", - "WeichenTyp": "Sternweiche", - "KurvenWinkel": 0, - "Schaltungstyp": "M", - "OFWeiche_center_line_width_mm": 1400.442, - "OFWeiche_center_line_height_mm": 1400.442, - "Objekt_width_mm": 1400.442, - "Objekt_height_mm": 1400.442, - "OFWeiche_CP1_x_mm": 700.221, - "OFWeiche_CP1_y_mm": 0, - "KurvenRichtung": 7, - "SivasnrTEF": null, - "OFWeiche_CP2_x_mm": 1400.442, - "OFWeiche_CP2_y_mm": 700.221, - "OFWeiche_CP3_x_mm": 700.221, - "OFWeiche_CP3_y_mm": 1400.442, - "OFWeiche_CP4_x_mm": 0, - "OFWeiche_CP4_y_mm": 700.221, - "Objekt_width_px": 5292.971, - "Objekt_height_px": 5292.971, - "calculated_SVG_width_px": 1000.0, - "calculated_SVG_height_px": 1000.0, - "scale_factor": 0.71406, - "scale_factor_RD_Width": 1, - "scale_factor_RD_Height": 1.0, - "connectionPoints": [ - { - "id": "cp1", - "x": 500.0, - "y": 0.0, - "direction": 0 - }, - { - "id": "cp2", - "x": 1000.0, - "y": 500.0, - "direction": 270 - }, - { - "id": "cp3", - "x": 500.0, - "y": 1000.0, - "direction": 90 - } - ] - }, { "Sivasnr": 834372421, "ProfilTyp": "WEICHE S C STAR 1400/1400, KPL. MIT P", "WeichenTyp": "Sternweiche", "KurvenWinkel": 0, - "Schaltungstyp": "P", + "Schaltungstyp": "M", "OFWeiche_center_line_width_mm": 1400.442, "OFWeiche_center_line_height_mm": 1400.442, "Objekt_width_mm": 1400.442,