diff --git a/Editor2DLibrary/SSG/shapes/props/821104021.txt b/Editor2DLibrary/SSG/shapes/props/821104021.txt index a00c55b..3f7f03d 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104021.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104021.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 48.321, + "y": 48.119, "z": 0.0, "xMin": "", "xMax": "", @@ -33,7 +33,7 @@ { "id": "cp2", "x": 978.263, - "y": 965.835, + "y": 961.795, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104024+0_B10081.txt b/Editor2DLibrary/SSG/shapes/props/821104024+0_B10081.txt index c20a280..f707fb9 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104024+0_B10081.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104024+0_B10081.txt @@ -5,6 +5,7 @@ "icon": "SSG/shapes/img/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250_32px.png", "iconBig": "SSG/shapes/img/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250_64px.png", "srcSVG": "SSG/shapes/svg/821104024+0_B10081.xml", + "src3D": "SSG/shapes/obj/821104024+0_B10081.stl", "width": 1992.772, "height": 1392.387, "depth": 415.748, @@ -13,7 +14,7 @@ { "id": "cp1", "x": 0.0, - "y": 57.111, + "y": 56.957, "z": 0.0, "xMin": "", "xMax": "", @@ -32,7 +33,7 @@ { "id": "cp2", "x": 963.134, - "y": 978.149, + "y": 975.51, "z": 0.0, "xMin": "", "xMax": "", @@ -51,7 +52,7 @@ { "id": "cp3", "x": 144.904, - "y": 328.576, + "y": 327.689, "z": 0.0, "xMin": "", "xMax": "", @@ -70,7 +71,7 @@ { "id": "cp4", "x": 725.908, - "y": 867.86, + "y": 865.519, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104024.txt b/Editor2DLibrary/SSG/shapes/props/821104024.txt index 93e6e3b..43809aa 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104024.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104024.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 57.111, + "y": 56.944, "z": 0.0, "xMin": "", "xMax": "", @@ -33,7 +33,7 @@ { "id": "cp2", "x": 963.134, - "y": 978.149, + "y": 975.294, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104025+0_B10090.txt b/Editor2DLibrary/SSG/shapes/props/821104025+0_B10090.txt index 001b4ef..8f4b300 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104025+0_B10090.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104025+0_B10090.txt @@ -5,6 +5,7 @@ "icon": "SSG/shapes/img/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450_32px.png", "iconBig": "SSG/shapes/img/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450_64px.png", "srcSVG": "SSG/shapes/svg/821104025+0_B10090.xml", + "src3D": "SSG/shapes/obj/821104025+0_B10090.stl", "width": 2031.648, "height": 877.059, "depth": 415.748, @@ -13,7 +14,7 @@ { "id": "cp1", "x": 27.908, - "y": 90.667, + "y": 90.272, "z": 0.0, "xMin": "", "xMax": "", @@ -32,7 +33,7 @@ { "id": "cp2", "x": 985.023, - "y": 617.391, + "y": 614.701, "z": 0.0, "xMin": "", "xMax": "", @@ -51,7 +52,7 @@ { "id": "cp3", "x": 0.0, - "y": 521.634, + "y": 519.362, "z": 0.0, "xMin": "", "xMax": "", @@ -70,7 +71,7 @@ { "id": "cp4", "x": 767.736, - "y": 875.383, + "y": 871.57, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104025+0_B10091.txt b/Editor2DLibrary/SSG/shapes/props/821104025+0_B10091.txt index eb4a39b..e8c9df3 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104025+0_B10091.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104025+0_B10091.txt @@ -5,6 +5,7 @@ "icon": "SSG/shapes/img/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650_32px.png", "iconBig": "SSG/shapes/img/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650_64px.png", "srcSVG": "SSG/shapes/svg/821104025+0_B10091.xml", + "src3D": "SSG/shapes/obj/821104025+0_B10091.stl", "width": 2477.704, "height": 1031.72, "depth": 415.748, @@ -13,7 +14,7 @@ { "id": "cp1", "x": 153.863, - "y": 481.027, + "y": 478.855, "z": 0.0, "xMin": "", "xMax": "", @@ -32,7 +33,7 @@ { "id": "cp2", "x": 938.67, - "y": 928.792, + "y": 924.598, "z": 0.0, "xMin": "", "xMax": "", @@ -51,7 +52,7 @@ { "id": "cp3", "x": 0.0, - "y": 114.661, + "y": 114.143, "z": 0.0, "xMin": "", "xMax": "", @@ -70,7 +71,7 @@ { "id": "cp4", "x": 981.733, - "y": 575.075, + "y": 572.478, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104025.txt b/Editor2DLibrary/SSG/shapes/props/821104025.txt index aeadcbb..641c79a 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104025.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104025.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 129.312, + "y": 127.293, "z": 0.0, "xMin": "", "xMax": "", @@ -33,7 +33,7 @@ { "id": "cp2", "x": 984.593, - "y": 880.54, + "y": 866.791, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104026+0_B10071.txt b/Editor2DLibrary/SSG/shapes/props/821104026+0_B10071.txt index 0ff0e17..4c89c14 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104026+0_B10071.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104026+0_B10071.txt @@ -5,6 +5,7 @@ "icon": "SSG/shapes/img/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450_32xp.png", "iconBig": "SSG/shapes/img/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450_64xp.png", "srcSVG": "SSG/shapes/svg/821104026+0_B10071.xml", + "src3D": "SSG/shapes/obj/821104026+0_B10071.stl", "width": 2306.032, "height": 1164.906, "depth": 415.748, @@ -13,7 +14,7 @@ { "id": "cp1", "x": 0.0, - "y": 68.264, + "y": 68.009, "z": 0.0, "xMin": "", "xMax": "", @@ -32,7 +33,7 @@ { "id": "cp2", "x": 975.617, - "y": 931.286, + "y": 927.815, "z": 0.0, "xMin": "", "xMax": "", @@ -51,7 +52,7 @@ { "id": "cp3", "x": 89.235, - "y": 392.74, + "y": 391.276, "z": 0.0, "xMin": "", "xMax": "", @@ -70,7 +71,7 @@ { "id": "cp4", "x": 742.25, - "y": 928.194, + "y": 924.734, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104026.txt b/Editor2DLibrary/SSG/shapes/props/821104026.txt index 73fd418..f03f607 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104026.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104026.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 69.689, + "y": 69.314, "z": 0.0, "xMin": "", "xMax": "", @@ -33,7 +33,7 @@ { "id": "cp2", "x": 975.617, - "y": 950.727, + "y": 945.619, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104027+0_B10080.txt b/Editor2DLibrary/SSG/shapes/props/821104027+0_B10080.txt index 42b3c00..c78d98e 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104027+0_B10080.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104027+0_B10080.txt @@ -5,15 +5,16 @@ "icon": "SSG/shapes/img/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400_32px.png", "iconBig": "SSG/shapes/img/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400_64px.png", "srcSVG": "SSG/shapes/svg/821104027+0_B10080.xml", + "src3D": "SSG/shapes/obj/821104027+0_B10080.stl", "width": 2903.015, - "height": 2034.72, + "height": 2114.237, "depth": 415.748, "behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)", "connectionPoints": [ { "id": "cp1", "x": 0.0, - "y": 39.082, + "y": 37.515, "z": 0.0, "xMin": "", "xMax": "", @@ -32,7 +33,7 @@ { "id": "cp2", "x": 974.694, - "y": 1024.125, + "y": 983.056, "z": 0.0, "xMin": "", "xMax": "", @@ -51,7 +52,7 @@ { "id": "cp3", "x": 180.84, - "y": 224.849, + "y": 215.834, "z": 0.0, "xMin": "", "xMax": "", @@ -70,7 +71,7 @@ { "id": "cp4", "x": 792.42, - "y": 881.727, + "y": 846.37, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104027.txt b/Editor2DLibrary/SSG/shapes/props/821104027.txt index c2cfecb..050c8bd 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104027.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104027.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 37.612, + "y": 37.507, "z": 0.0, "xMin": "", "xMax": "", @@ -32,8 +32,8 @@ }, { "id": "cp2", - "x": 974.694, - "y": 985.608, + "x": 974.695, + "y": 982.847, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104028.txt b/Editor2DLibrary/SSG/shapes/props/821104028.txt index 51e2095..40ee821 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104028.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104028.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 46.861, + "y": 46.732, "z": 0.0, "xMin": "", "xMax": "", @@ -33,7 +33,7 @@ { "id": "cp2", "x": 967.704, - "y": 982.071, + "y": 979.385, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104029.txt b/Editor2DLibrary/SSG/shapes/props/821104029.txt index 65879e1..6d20adc 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104029.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104029.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 92.806, + "y": 92.191, "z": 0.0, "xMin": "", "xMax": "", @@ -33,7 +33,7 @@ { "id": "cp2", "x": 973.738, - "y": 934.379, + "y": 928.18, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104031+0_B10060.txt b/Editor2DLibrary/SSG/shapes/props/821104031+0_B10060.txt index 0e59239..69efac2 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104031+0_B10060.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104031+0_B10060.txt @@ -5,6 +5,7 @@ "icon": "SSG/shapes/img/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725_32px.png", "iconBig": "SSG/shapes/img/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725_64px.png", "srcSVG": "SSG/shapes/svg/821104031+0_B10060.xml", + "src3D": "SSG/shapes/obj/821104031+0_B10060.stl", "width": 3624.064, "height": 1688.477, "depth": 415.748, @@ -13,7 +14,7 @@ { "id": "cp1", "x": 0.288, - "y": 70.062, + "y": 292.738, "z": 0.0, "xMin": "", "xMax": "", @@ -32,7 +33,7 @@ { "id": "cp2", "x": 903.028, - "y": 742.836, + "y": 962.793, "z": 0.0, "xMin": "", "xMax": "", @@ -51,7 +52,7 @@ { "id": "cp3", "x": 0.0, - "y": 293.925, + "y": 69.779, "z": 0.0, "xMin": "", "xMax": "", @@ -70,7 +71,7 @@ { "id": "cp4", "x": 976.918, - "y": 1032.566, + "y": 805.436, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104031+0_B10070.txt b/Editor2DLibrary/SSG/shapes/props/821104031+0_B10070.txt index fbbf096..c677079 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104031+0_B10070.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104031+0_B10070.txt @@ -5,6 +5,7 @@ "icon": "SSG/shapes/img/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535_32px.png", "iconBig": "SSG/shapes/img/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535_64px.png", "srcSVG": "SSG/shapes/svg/821104031+0_B10070.xml", + "src3D": "SSG/shapes/obj/821104031+0_B10070.stl", "width": 3329.52, "height": 1566.588, "depth": 415.748, @@ -13,7 +14,7 @@ { "id": "cp1", "x": 0.514, - "y": 50.76, + "y": 50.557, "z": 0.0, "xMin": "", "xMax": "", @@ -32,7 +33,7 @@ { "id": "cp2", "x": 983.115, - "y": 775.879, + "y": 772.777, "z": 0.0, "xMin": "", "xMax": "", @@ -51,7 +52,7 @@ { "id": "cp3", "x": 0.0, - "y": 292.039, + "y": 290.871, "z": 0.0, "xMin": "", "xMax": "", @@ -70,7 +71,7 @@ { "id": "cp4", "x": 862.028, - "y": 946.6, + "y": 942.814, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104031.txt b/Editor2DLibrary/SSG/shapes/props/821104031.txt index c830573..2f568c7 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104031.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104031.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "APB 110 R 630/45 400", "family": "OFBogen", @@ -13,8 +13,8 @@ "connectionPoints": [ { "id": "cp1", - "x": 0, - "y": 62.531, + "x": 0.0, + "y": 62.096, "z": 0.0, "xMin": "", "xMax": "", @@ -33,7 +33,7 @@ { "id": "cp2", "x": 983.103, - "y": 955.788, + "y": 949.149, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104033+0_B10040.txt b/Editor2DLibrary/SSG/shapes/props/821104033+0_B10040.txt index 427f52b..29a8e68 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104033+0_B10040.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104033+0_B10040.txt @@ -5,6 +5,7 @@ "icon": "SSG/shapes/img/APB_110_R630_90_800_800_821104033_mit_TEF_R725_32px.png", "iconBig": "SSG/shapes/img/APB_110_R630_90_800_800_821104033_mit_TEF_R725_64px.png", "srcSVG": "SSG/shapes/svg/821104033+0_B10040.xml", + "src3D": "SSG/shapes/obj/821104033+0_B10040.stl", "width": 3519.848, "height": 3519.848, "depth": 415.748, diff --git a/Editor2DLibrary/SSG/shapes/props/821104033+0_B10050.txt b/Editor2DLibrary/SSG/shapes/props/821104033+0_B10050.txt index 7c45740..ae3abed 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104033+0_B10050.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104033+0_B10050.txt @@ -5,6 +5,7 @@ "icon": "SSG/shapes/img/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535_32px.png", "iconBig": "SSG/shapes/img/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535_64px.png", "srcSVG": "SSG/shapes/svg/821104033+0_B10050.xml", + "src3D": "SSG/shapes/obj/821104033+0_B10050.stl", "width": 3103.121, "height": 3103.121, "depth": 415.748, diff --git a/Editor2DLibrary/SSG/shapes/props/821104034.txt b/Editor2DLibrary/SSG/shapes/props/821104034.txt index 362130e..cbf8d47 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104034.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104034.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 24.155, + "y": 24.107, "z": 0.0, "xMin": "", "xMax": "", @@ -32,8 +32,8 @@ }, { "id": "cp2", - "x": 976.906, - "y": 1000.0, + "x": 976.905, + "y": 998.027, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104035.txt b/Editor2DLibrary/SSG/shapes/props/821104035.txt index 02ffa92..3864222 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104035.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104035.txt @@ -32,7 +32,7 @@ }, { "id": "cp2", - "x": 975.938, + "x": 0.0, "y": 1000.0, "z": 0.0, "xMin": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104037.txt b/Editor2DLibrary/SSG/shapes/props/821104037.txt index 96232cd..a00bcd4 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104037.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104037.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 87.358, + "y": 86.826, "z": 0.0, "xMin": "", "xMax": "", @@ -33,7 +33,7 @@ { "id": "cp2", "x": 973.055, - "y": 938.231, + "y": 932.517, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104041.txt b/Editor2DLibrary/SSG/shapes/props/821104041.txt index 196112f..a47ed2b 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104041.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104041.txt @@ -32,7 +32,7 @@ }, { "id": "cp2", - "x": 970.546, + "x": 0.0, "y": 1000.0, "z": 0.0, "xMin": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104043.txt b/Editor2DLibrary/SSG/shapes/props/821104043.txt index 1e0604e..12c8146 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104043.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104043.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "APB 110 R 650/180 L=150", "family": "OFBogen", @@ -13,7 +13,7 @@ "connectionPoints": [ { "id": "cp1", - "x": 0.0, + "x": 0, "y": 15.677, "z": 0.0, "xMin": "", @@ -32,7 +32,7 @@ }, { "id": "cp2", - "x": 0.0, + "x": 0, "y": 984.323, "z": 0.0, "xMin": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104065.txt b/Editor2DLibrary/SSG/shapes/props/821104065.txt index aa62ab0..a7bc869 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104065.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104065.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 40.025, + "y": 39.904, "z": 0.0, "xMin": "", "xMax": "", @@ -32,8 +32,8 @@ }, { "id": "cp2", - "x": 975.004, - "y": 984.686, + "x": 975.003, + "y": 981.716, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/821104066.txt b/Editor2DLibrary/SSG/shapes/props/821104066.txt index a7fa75e..f3c3805 100644 --- a/Editor2DLibrary/SSG/shapes/props/821104066.txt +++ b/Editor2DLibrary/SSG/shapes/props/821104066.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 33.608, + "y": 33.515, "z": 0.0, "xMin": "", "xMax": "", @@ -33,7 +33,7 @@ { "id": "cp2", "x": 977.156, - "y": 1000.0, + "y": 997.227, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/OFBogen180.txt b/Editor2DLibrary/SSG/shapes/props/OFBogen180.txt index 7539887..c70e360 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFBogen180.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFBogen180.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "APB 110 R 650/180 L=150", "family": "OFBogen", @@ -13,7 +13,7 @@ "connectionPoints": [ { "id": "cp1", - "x": 0.0, + "x": 0, "y": 15.677, "z": 0.0, "xMin": "", @@ -32,7 +32,7 @@ }, { "id": "cp2", - "x": 0.0, + "x": 0, "y": 984.323, "z": 0.0, "xMin": "", diff --git a/Editor2DLibrary/SSG/shapes/props/OFBogen22.txt b/Editor2DLibrary/SSG/shapes/props/OFBogen22.txt index 5efad62..f28a1bd 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFBogen22.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFBogen22.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 129.312, + "y": 127.293, "z": 0.0, "xMin": "", "xMax": "", @@ -33,7 +33,7 @@ { "id": "cp2", "x": 984.593, - "y": 880.54, + "y": 866.791, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/OFBogen45.txt b/Editor2DLibrary/SSG/shapes/props/OFBogen45.txt index f3294d9..a2d2577 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFBogen45.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFBogen45.txt @@ -1,4 +1,4 @@ -{ +{ "shapeMode": 0, "name": "APB 110 R 630/45 400", "family": "OFBogen", @@ -13,8 +13,8 @@ "connectionPoints": [ { "id": "cp1", - "x": 0, - "y": 62.531, + "x": 0.0, + "y": 62.096, "z": 0.0, "xMin": "", "xMax": "", @@ -33,7 +33,7 @@ { "id": "cp2", "x": 983.103, - "y": 955.788, + "y": 949.149, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/props/OFBogen67.txt b/Editor2DLibrary/SSG/shapes/props/OFBogen67.txt index c2236e9..dd5b0be 100644 --- a/Editor2DLibrary/SSG/shapes/props/OFBogen67.txt +++ b/Editor2DLibrary/SSG/shapes/props/OFBogen67.txt @@ -14,7 +14,7 @@ { "id": "cp1", "x": 0, - "y": 37.612, + "y": 37.507, "z": 0.0, "xMin": "", "xMax": "", @@ -32,8 +32,8 @@ }, { "id": "cp2", - "x": 974.694, - "y": 985.608, + "x": 974.695, + "y": 982.847, "z": 0.0, "xMin": "", "xMax": "", diff --git a/Editor2DLibrary/SSG/shapes/settings.txt b/Editor2DLibrary/SSG/shapes/settings.txt index 46db968..1360514 100644 --- a/Editor2DLibrary/SSG/shapes/settings.txt +++ b/Editor2DLibrary/SSG/shapes/settings.txt @@ -1 +1 @@ -{"categories":{"c_ILS":{"expanded":false},"c_Kreiselmodule":{"expanded":false},"c_Zusatzmodul":{"expanded":false},"c_Foerderer":{"expanded":false},"c_Kurven":{"expanded":false},"c10":{"expanded":false},"c_Background":{"expanded":false},"c_Parts":{"expanded":false},"c_Session":{"expanded":false},"c_Omniflo":{"expanded":true},"c_Boegen":{"expanded":true},"c_Gerade":{"expanded":true},"c_Weichen_90":{"expanded":true},"c_Weichen_45":{"expanded":true},"c_Weichen_Parallel":{"expanded":true},"c_Weichenkoerper":{"expanded":true},"c_Weichenkombinationen":{"expanded":true},"c_TEFElemente":{"expanded":true},"c_OmnifloBogen":{"expanded":true},"c_Boegen_90":{"expanded":false},"c_OmnifloWeiche":{"expanded":false}},"shapes":{}} \ No newline at end of file +{"categories":{"c_ILS":{"expanded":false},"c_Kreiselmodule":{"expanded":false},"c_Zusatzmodul":{"expanded":false},"c_Foerderer":{"expanded":false},"c_Kurven":{"expanded":false},"c10":{"expanded":false},"c_Background":{"expanded":false},"c_Parts":{"expanded":false},"c_Session":{"expanded":false},"c_Omniflo":{"expanded":true},"c_Boegen":{"expanded":true},"c_Gerade":{"expanded":true},"c_Weichen_90":{"expanded":true},"c_Weichen_45":{"expanded":true},"c_Weichen_Parallel":{"expanded":true},"c_Weichenkoerper":{"expanded":true},"c_Weichenkombinationen":{"expanded":true},"c_TEFElemente":{"expanded":true},"c_OmnifloBogen":{"expanded":true},"c_Boegen_90":{"expanded":true},"c_OmnifloWeiche":{"expanded":false}},"shapes":{}} \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821094040.xml b/Editor2DLibrary/SSG/shapes/svg/821094040.xml index a393f6c..253626c 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821094040.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821094040.xml @@ -1,8 +1,28 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821094101.xml b/Editor2DLibrary/SSG/shapes/svg/821094101.xml index a393f6c..e597a28 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821094101.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821094101.xml @@ -1,8 +1,32 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104021.xml b/Editor2DLibrary/SSG/shapes/svg/821104021.xml index 51a9478..cf93b07 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104021.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104021.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104022.xml b/Editor2DLibrary/SSG/shapes/svg/821104022.xml index 4641049..82977a7 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104022.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104022.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104024+0_B10081.xml b/Editor2DLibrary/SSG/shapes/svg/821104024+0_B10081.xml index 47f2fe2..12661df 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104024+0_B10081.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104024+0_B10081.xml @@ -1,14 +1,36 @@ - - + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104024.xml b/Editor2DLibrary/SSG/shapes/svg/821104024.xml index 8f810b0..5103277 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104024.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104024.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104025+0_B10090.xml b/Editor2DLibrary/SSG/shapes/svg/821104025+0_B10090.xml index e030f01..32a2d30 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104025+0_B10090.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104025+0_B10090.xml @@ -1,11 +1,36 @@ - - - - - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104025+0_B10091.xml b/Editor2DLibrary/SSG/shapes/svg/821104025+0_B10091.xml index 8017ca8..09ce1e3 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104025+0_B10091.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104025+0_B10091.xml @@ -1,11 +1,36 @@ - - - - - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104025.xml b/Editor2DLibrary/SSG/shapes/svg/821104025.xml index 6382b6a..b48a8be 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104025.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104025.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104026+0_B10071.xml b/Editor2DLibrary/SSG/shapes/svg/821104026+0_B10071.xml index 8dda93c..bc124d3 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104026+0_B10071.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104026+0_B10071.xml @@ -1,11 +1,28 @@ - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104026.xml b/Editor2DLibrary/SSG/shapes/svg/821104026.xml index 46c9d87..76dc70f 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104026.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104026.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104027+0_B10080.xml b/Editor2DLibrary/SSG/shapes/svg/821104027+0_B10080.xml index c3bc441..308b70f 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104027+0_B10080.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104027+0_B10080.xml @@ -1,14 +1,36 @@ - - + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104027.xml b/Editor2DLibrary/SSG/shapes/svg/821104027.xml index da7f611..6072b72 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104027.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104027.xml @@ -1,12 +1,17 @@ - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104028.xml b/Editor2DLibrary/SSG/shapes/svg/821104028.xml index 5774ea4..4447c04 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104028.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104028.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104029.xml b/Editor2DLibrary/SSG/shapes/svg/821104029.xml index c27310b..eb2ae41 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104029.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104029.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104030.xml b/Editor2DLibrary/SSG/shapes/svg/821104030.xml index d434478..b2ba4cc 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104030.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104030.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104031+0_B10060.xml b/Editor2DLibrary/SSG/shapes/svg/821104031+0_B10060.xml index 4f7bac4..149f2c2 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104031+0_B10060.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104031+0_B10060.xml @@ -1,11 +1,36 @@ - - - - - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104031+0_B10070.xml b/Editor2DLibrary/SSG/shapes/svg/821104031+0_B10070.xml index 0d348f1..5e2c1ea 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104031+0_B10070.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104031+0_B10070.xml @@ -1,12 +1,36 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104031.xml b/Editor2DLibrary/SSG/shapes/svg/821104031.xml index b2dd90b..f85536c 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104031.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104031.xml @@ -1,12 +1,16 @@ - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104033+0_B10040.xml b/Editor2DLibrary/SSG/shapes/svg/821104033+0_B10040.xml index eca4ac7..6e2a6d8 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104033+0_B10040.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104033+0_B10040.xml @@ -1,13 +1,36 @@ - + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104033+0_B10050.xml b/Editor2DLibrary/SSG/shapes/svg/821104033+0_B10050.xml index 6697d39..d71eb1b 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104033+0_B10050.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104033+0_B10050.xml @@ -1,12 +1,36 @@ - + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104033.xml b/Editor2DLibrary/SSG/shapes/svg/821104033.xml index bf395e7..bd11209 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104033.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104033.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104034.xml b/Editor2DLibrary/SSG/shapes/svg/821104034.xml index 76121db..ad33896 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104034.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104034.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104035.xml b/Editor2DLibrary/SSG/shapes/svg/821104035.xml index 1cabccc..2220c81 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104035.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104035.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104037.xml b/Editor2DLibrary/SSG/shapes/svg/821104037.xml index aa2bdad..7cf89a9 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104037.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104037.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104041.xml b/Editor2DLibrary/SSG/shapes/svg/821104041.xml index 3dde0b2..5940b49 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104041.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104041.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104043.xml b/Editor2DLibrary/SSG/shapes/svg/821104043.xml index cc1b82f..8980fe4 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104043.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104043.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104065.xml b/Editor2DLibrary/SSG/shapes/svg/821104065.xml index 097abb9..adb1f55 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104065.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104065.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/821104066.xml b/Editor2DLibrary/SSG/shapes/svg/821104066.xml index c48e970..3794994 100644 --- a/Editor2DLibrary/SSG/shapes/svg/821104066.xml +++ b/Editor2DLibrary/SSG/shapes/svg/821104066.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/OFBogen180.xml b/Editor2DLibrary/SSG/shapes/svg/OFBogen180.xml index cc1b82f..8980fe4 100644 --- a/Editor2DLibrary/SSG/shapes/svg/OFBogen180.xml +++ b/Editor2DLibrary/SSG/shapes/svg/OFBogen180.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/OFBogen22.xml b/Editor2DLibrary/SSG/shapes/svg/OFBogen22.xml index 6382b6a..b48a8be 100644 --- a/Editor2DLibrary/SSG/shapes/svg/OFBogen22.xml +++ b/Editor2DLibrary/SSG/shapes/svg/OFBogen22.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/OFBogen45.xml b/Editor2DLibrary/SSG/shapes/svg/OFBogen45.xml index b2dd90b..f85536c 100644 --- a/Editor2DLibrary/SSG/shapes/svg/OFBogen45.xml +++ b/Editor2DLibrary/SSG/shapes/svg/OFBogen45.xml @@ -1,12 +1,16 @@ - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/OFBogen67.xml b/Editor2DLibrary/SSG/shapes/svg/OFBogen67.xml index da7f611..ce23cb1 100644 --- a/Editor2DLibrary/SSG/shapes/svg/OFBogen67.xml +++ b/Editor2DLibrary/SSG/shapes/svg/OFBogen67.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Editor2DLibrary/SSG/shapes/svg/OFBogen90.xml b/Editor2DLibrary/SSG/shapes/svg/OFBogen90.xml index bf395e7..bd11209 100644 --- a/Editor2DLibrary/SSG/shapes/svg/OFBogen90.xml +++ b/Editor2DLibrary/SSG/shapes/svg/OFBogen90.xml @@ -1,12 +1,27 @@ - - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SVGs/Eckrad-links.svg b/SVGs/ILS/Eckrad-links.svg similarity index 100% rename from SVGs/Eckrad-links.svg rename to SVGs/ILS/Eckrad-links.svg diff --git a/SVGs/Eckrad-rechts.svg b/SVGs/ILS/Eckrad-rechts.svg similarity index 100% rename from SVGs/Eckrad-rechts.svg rename to SVGs/ILS/Eckrad-rechts.svg diff --git a/SVGs/Eckrad.svg b/SVGs/ILS/Eckrad.svg similarity index 100% rename from SVGs/Eckrad.svg rename to SVGs/ILS/Eckrad.svg diff --git a/SVGs/Gefaellestrecke.svg b/SVGs/ILS/Gefaellestrecke.svg similarity index 100% rename from SVGs/Gefaellestrecke.svg rename to SVGs/ILS/Gefaellestrecke.svg diff --git a/SVGs/Kurve_30.svg b/SVGs/ILS/Kurve_30.svg similarity index 100% rename from SVGs/Kurve_30.svg rename to SVGs/ILS/Kurve_30.svg diff --git a/SVGs/Kurve_30_L_Gefälle.svg b/SVGs/ILS/Kurve_30_L_Gefälle.svg similarity index 100% rename from SVGs/Kurve_30_L_Gefälle.svg rename to SVGs/ILS/Kurve_30_L_Gefälle.svg diff --git a/SVGs/Kurve_30_L_angetrieben.svg b/SVGs/ILS/Kurve_30_L_angetrieben.svg similarity index 100% rename from SVGs/Kurve_30_L_angetrieben.svg rename to SVGs/ILS/Kurve_30_L_angetrieben.svg diff --git a/SVGs/Kurve_30_R_Gefälle.svg b/SVGs/ILS/Kurve_30_R_Gefälle.svg similarity index 100% rename from SVGs/Kurve_30_R_Gefälle.svg rename to SVGs/ILS/Kurve_30_R_Gefälle.svg diff --git a/SVGs/Kurve_30_R_angetrieben.svg b/SVGs/ILS/Kurve_30_R_angetrieben.svg similarity index 100% rename from SVGs/Kurve_30_R_angetrieben.svg rename to SVGs/ILS/Kurve_30_R_angetrieben.svg diff --git a/SVGs/Kurve_60.svg b/SVGs/ILS/Kurve_60.svg similarity index 100% rename from SVGs/Kurve_60.svg rename to SVGs/ILS/Kurve_60.svg diff --git a/SVGs/Kurve_60_L_Gefälle.svg b/SVGs/ILS/Kurve_60_L_Gefälle.svg similarity index 100% rename from SVGs/Kurve_60_L_Gefälle.svg rename to SVGs/ILS/Kurve_60_L_Gefälle.svg diff --git a/SVGs/Kurve_60_L_angetrieben.svg b/SVGs/ILS/Kurve_60_L_angetrieben.svg similarity index 100% rename from SVGs/Kurve_60_L_angetrieben.svg rename to SVGs/ILS/Kurve_60_L_angetrieben.svg diff --git a/SVGs/Kurve_60_R_Gefälle.svg b/SVGs/ILS/Kurve_60_R_Gefälle.svg similarity index 100% rename from SVGs/Kurve_60_R_Gefälle.svg rename to SVGs/ILS/Kurve_60_R_Gefälle.svg diff --git a/SVGs/Kurve_60_R_angetrieben.svg b/SVGs/ILS/Kurve_60_R_angetrieben.svg similarity index 100% rename from SVGs/Kurve_60_R_angetrieben.svg rename to SVGs/ILS/Kurve_60_R_angetrieben.svg diff --git a/SVGs/Kurve_90.svg b/SVGs/ILS/Kurve_90.svg similarity index 100% rename from SVGs/Kurve_90.svg rename to SVGs/ILS/Kurve_90.svg diff --git a/SVGs/Kurve_90_L_Gefälle.svg b/SVGs/ILS/Kurve_90_L_Gefälle.svg similarity index 100% rename from SVGs/Kurve_90_L_Gefälle.svg rename to SVGs/ILS/Kurve_90_L_Gefälle.svg diff --git a/SVGs/Kurve_90_L_angetrieben.svg b/SVGs/ILS/Kurve_90_L_angetrieben.svg similarity index 100% rename from SVGs/Kurve_90_L_angetrieben.svg rename to SVGs/ILS/Kurve_90_L_angetrieben.svg diff --git a/SVGs/Kurve_90_L_eben.svg b/SVGs/ILS/Kurve_90_L_eben.svg similarity index 100% rename from SVGs/Kurve_90_L_eben.svg rename to SVGs/ILS/Kurve_90_L_eben.svg diff --git a/SVGs/Kurve_90_R_Gefälle.svg b/SVGs/ILS/Kurve_90_R_Gefälle.svg similarity index 100% rename from SVGs/Kurve_90_R_Gefälle.svg rename to SVGs/ILS/Kurve_90_R_Gefälle.svg diff --git a/SVGs/Kurve_90_R_angetrieben.svg b/SVGs/ILS/Kurve_90_R_angetrieben.svg similarity index 100% rename from SVGs/Kurve_90_R_angetrieben.svg rename to SVGs/ILS/Kurve_90_R_angetrieben.svg diff --git a/SVGs/Kurve_90_R_eben.svg b/SVGs/ILS/Kurve_90_R_eben.svg similarity index 100% rename from SVGs/Kurve_90_R_eben.svg rename to SVGs/ILS/Kurve_90_R_eben.svg diff --git a/SVGs/Motorstation-gezeichnet-links_Mpath.svg b/SVGs/ILS/Motorstation-gezeichnet-links_Mpath.svg similarity index 100% rename from SVGs/Motorstation-gezeichnet-links_Mpath.svg rename to SVGs/ILS/Motorstation-gezeichnet-links_Mpath.svg diff --git a/SVGs/Motorstation-gezeichnet-rechts_Mpath.svg b/SVGs/ILS/Motorstation-gezeichnet-rechts_Mpath.svg similarity index 100% rename from SVGs/Motorstation-gezeichnet-rechts_Mpath.svg rename to SVGs/ILS/Motorstation-gezeichnet-rechts_Mpath.svg diff --git a/SVGs/Motorstation-gezeichnet_Mpath.svg b/SVGs/ILS/Motorstation-gezeichnet_Mpath.svg similarity index 100% rename from SVGs/Motorstation-gezeichnet_Mpath.svg rename to SVGs/ILS/Motorstation-gezeichnet_Mpath.svg diff --git a/SVGs/OF_Gerade.svg b/SVGs/ILS/OF_Gerade.svg similarity index 100% rename from SVGs/OF_Gerade.svg rename to SVGs/ILS/OF_Gerade.svg diff --git a/SVGs/PinBand.svg b/SVGs/ILS/PinBand.svg similarity index 100% rename from SVGs/PinBand.svg rename to SVGs/ILS/PinBand.svg diff --git a/SVGs/Spannstation-gezeichnet-links_Spath.svg b/SVGs/ILS/Spannstation-gezeichnet-links_Spath.svg similarity index 100% rename from SVGs/Spannstation-gezeichnet-links_Spath.svg rename to SVGs/ILS/Spannstation-gezeichnet-links_Spath.svg diff --git a/SVGs/Spannstation-gezeichnet-rechts_Spath.svg b/SVGs/ILS/Spannstation-gezeichnet-rechts_Spath.svg similarity index 100% rename from SVGs/Spannstation-gezeichnet-rechts_Spath.svg rename to SVGs/ILS/Spannstation-gezeichnet-rechts_Spath.svg diff --git a/SVGs/Spannstation-gezeichnet_Spath.svg b/SVGs/ILS/Spannstation-gezeichnet_Spath.svg similarity index 100% rename from SVGs/Spannstation-gezeichnet_Spath.svg rename to SVGs/ILS/Spannstation-gezeichnet_Spath.svg diff --git a/SVGs/StandardBand.svg b/SVGs/ILS/StandardBand.svg similarity index 100% rename from SVGs/StandardBand.svg rename to SVGs/ILS/StandardBand.svg diff --git a/SVGs/Steigung_auf.svg b/SVGs/ILS/Steigung_auf.svg similarity index 100% rename from SVGs/Steigung_auf.svg rename to SVGs/ILS/Steigung_auf.svg diff --git a/SVGs/VarioFörderer.svg b/SVGs/ILS/VarioFörderer.svg similarity index 100% rename from SVGs/VarioFörderer.svg rename to SVGs/ILS/VarioFörderer.svg diff --git a/SVGs/VarioFörderer_links.svg b/SVGs/ILS/VarioFörderer_links.svg similarity index 100% rename from SVGs/VarioFörderer_links.svg rename to SVGs/ILS/VarioFörderer_links.svg diff --git a/SVGs/VarioFörderer_rechts.svg b/SVGs/ILS/VarioFörderer_rechts.svg similarity index 100% rename from SVGs/VarioFörderer_rechts.svg rename to SVGs/ILS/VarioFörderer_rechts.svg diff --git a/SVGs/Weiche_aktiv.svg b/SVGs/ILS/Weiche_aktiv.svg similarity index 100% rename from SVGs/Weiche_aktiv.svg rename to SVGs/ILS/Weiche_aktiv.svg diff --git a/SVGs/Weiche_passiv.svg b/SVGs/ILS/Weiche_passiv.svg similarity index 100% rename from SVGs/Weiche_passiv.svg rename to SVGs/ILS/Weiche_passiv.svg diff --git a/SVGs/icon_add_grid_32.png b/SVGs/ILS/icon_add_grid_32.png similarity index 100% rename from SVGs/icon_add_grid_32.png rename to SVGs/ILS/icon_add_grid_32.png diff --git a/SVGs/icon_add_grid_64x64.svg b/SVGs/ILS/icon_add_grid_64x64.svg similarity index 100% rename from SVGs/icon_add_grid_64x64.svg rename to SVGs/ILS/icon_add_grid_64x64.svg diff --git a/SVGs/icon_dwg_import_32.png b/SVGs/ILS/icon_dwg_import_32.png similarity index 100% rename from SVGs/icon_dwg_import_32.png rename to SVGs/ILS/icon_dwg_import_32.png diff --git a/SVGs/icon_dwg_import_64x64.svg b/SVGs/ILS/icon_dwg_import_64x64.svg similarity index 100% rename from SVGs/icon_dwg_import_64x64.svg rename to SVGs/ILS/icon_dwg_import_64x64.svg diff --git a/SVGs/icon_export_csv_32.png b/SVGs/ILS/icon_export_csv_32.png similarity index 100% rename from SVGs/icon_export_csv_32.png rename to SVGs/ILS/icon_export_csv_32.png diff --git a/SVGs/icon_export_csv_64x64.svg b/SVGs/ILS/icon_export_csv_64x64.svg similarity index 100% rename from SVGs/icon_export_csv_64x64.svg rename to SVGs/ILS/icon_export_csv_64x64.svg diff --git a/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R550_45_232_821104026_optimiert.svg b/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R550_45_232_821104026_optimiert.svg index 99c1e2c..1baf909 100644 --- a/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R550_45_232_821104026_optimiert.svg +++ b/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R550_45_232_821104026_optimiert.svg @@ -4,4 +4,4 @@ - + diff --git a/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R550_67_5_432_821104027_optimiert.svg b/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R550_67_5_432_821104027_optimiert.svg index e8cbd05..2da371a 100644 --- a/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R550_67_5_432_821104027_optimiert.svg +++ b/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R550_67_5_432_821104027_optimiert.svg @@ -1,6 +1,6 @@ - + - - + + diff --git a/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R630_45_400_821104031_optimiert.svg b/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R630_45_400_821104031_optimiert.svg index 68f6850..ee27f93 100644 --- a/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R630_45_400_821104031_optimiert.svg +++ b/SVGs/Omniflo/Bogen/NewSVG/Optimiert/APB_110_R630_45_400_821104031_optimiert.svg @@ -1,6 +1,6 @@ - + - + diff --git a/SVGs/Omniflo/Bogen/NewSVG/Original/APB_110_R550_67_5_432_821104027_new.svg b/SVGs/Omniflo/Bogen/NewSVG/Original/APB_110_R550_67_5_432_821104027_new.svg index 20585c9..b990eb2 100644 --- a/SVGs/Omniflo/Bogen/NewSVG/Original/APB_110_R550_67_5_432_821104027_new.svg +++ b/SVGs/Omniflo/Bogen/NewSVG/Original/APB_110_R550_67_5_432_821104027_new.svg @@ -6,11 +6,11 @@ - - - - - - + + + + + + diff --git a/SVGs/Omniflo/Bogen/NewSVG/Original/APB_110_R630_45_400_821104031_new.svg b/SVGs/Omniflo/Bogen/NewSVG/Original/APB_110_R630_45_400_821104031_new.svg index 45c676c..686892d 100644 --- a/SVGs/Omniflo/Bogen/NewSVG/Original/APB_110_R630_45_400_821104031_new.svg +++ b/SVGs/Omniflo/Bogen/NewSVG/Original/APB_110_R630_45_400_821104031_new.svg @@ -6,11 +6,11 @@ - - - - - - + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10040_TEFBogen_90_R725.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10040_TEFBogen_90_R725.svg new file mode 100644 index 0000000..0a86354 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10040_TEFBogen_90_R725.svg @@ -0,0 +1,4 @@ + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10050_TEFBogen_90_R535.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10050_TEFBogen_90_R535.svg new file mode 100644 index 0000000..1fd5bd6 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10050_TEFBogen_90_R535.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10060_TEFBogen_45_R725.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10060_TEFBogen_45_R725.svg new file mode 100644 index 0000000..32f57dc --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10060_TEFBogen_45_R725.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10070_TEFBogen_45_R535.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10070_TEFBogen_45_R535.svg new file mode 100644 index 0000000..f317a4b --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10070_TEFBogen_45_R535.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10071_TEFBogen_45_R450.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10071_TEFBogen_45_R450.svg new file mode 100644 index 0000000..4044a53 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10071_TEFBogen_45_R450.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10080_TEFBogen_67_5_R400.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10080_TEFBogen_67_5_R400.svg new file mode 100644 index 0000000..2e3bda3 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10080_TEFBogen_67_5_R400.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10081_TEFBogen_67_5_R250.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10081_TEFBogen_67_5_R250.svg new file mode 100644 index 0000000..e599e8d --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10081_TEFBogen_67_5_R250.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10090_TEFBogen_22_5_R450.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10090_TEFBogen_22_5_R450.svg new file mode 100644 index 0000000..c9deda8 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10090_TEFBogen_22_5_R450.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10091_TEFBogen_22_5_R650.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10091_TEFBogen_22_5_R650.svg new file mode 100644 index 0000000..e489b20 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/0_B10091_TEFBogen_22_5_R650.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250.svg new file mode 100644 index 0000000..607519e --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450.svg new file mode 100644 index 0000000..81d645e --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450.svg @@ -0,0 +1,13 @@ + + + + + + + + + + \ No newline at end of file diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650.svg new file mode 100644 index 0000000..9a88084 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450.svg new file mode 100644 index 0000000..334e711 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400.svg new file mode 100644 index 0000000..ad55e05 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725.svg new file mode 100644 index 0000000..41d8753 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535.svg new file mode 100644 index 0000000..343eb6d --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_90_800_800_821104033_mit_0_B10040_TEFBogen_90_R725.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_90_800_800_821104033_mit_0_B10040_TEFBogen_90_R725.svg new file mode 100644 index 0000000..114190a --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_90_800_800_821104033_mit_0_B10040_TEFBogen_90_R725.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535.svg b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535.svg new file mode 100644 index 0000000..bd865b6 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/Alt-Mittellinie/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250_optimiert1.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250_optimiert1.svg new file mode 100644 index 0000000..9ab3528 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250_optimiert1.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450_optimiert1.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450_optimiert1.svg new file mode 100644 index 0000000..15a669f --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450_optimiert1.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650_optimiert1.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650_optimiert1.svg new file mode 100644 index 0000000..fdc4e77 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650_optimiert1.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450_optimiert1.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450_optimiert1.svg new file mode 100644 index 0000000..b2fc8cb --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450_optimiert1.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400_optimiert1.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400_optimiert1.svg new file mode 100644 index 0000000..e23d940 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400_optimiert1.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725_optimiert1.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725_optimiert1.svg new file mode 100644 index 0000000..f3404be --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725_optimiert1.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535_optimiert1.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535_optimiert1.svg new file mode 100644 index 0000000..2d69e43 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535_optimiert1.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_90_800_800_821104033_mit_0_B10040_TEFBogen_90_R725_optimiert1.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_90_800_800_821104033_mit_0_B10040_TEFBogen_90_R725_optimiert1.svg new file mode 100644 index 0000000..f86264f --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_90_800_800_821104033_mit_0_B10040_TEFBogen_90_R725_optimiert1.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535_optimiert1.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535_optimiert1.svg new file mode 100644 index 0000000..8d13535 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Optimiert/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535_optimiert1.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250_new.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250_new.svg new file mode 100644 index 0000000..772c725 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250_new.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450_new.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450_new.svg new file mode 100644 index 0000000..e560298 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450_new.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650_new.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650_new.svg new file mode 100644 index 0000000..b4fde50 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650_new.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450_new.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450_new.svg new file mode 100644 index 0000000..77e296d --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450_new.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400_new.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400_new.svg new file mode 100644 index 0000000..6f68269 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400_new.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725_new.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725_new.svg new file mode 100644 index 0000000..80ec7af --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725_new.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535_new.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535_new.svg new file mode 100644 index 0000000..95a19d8 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535_new.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_90_800_800_821104033_mit_0_B10040_TEFBogen_90_R725_new.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_90_800_800_821104033_mit_0_B10040_TEFBogen_90_R725_new.svg new file mode 100644 index 0000000..57c0d09 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_90_800_800_821104033_mit_0_B10040_TEFBogen_90_R725_new.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535_new.svg b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535_new.svg new file mode 100644 index 0000000..98ede57 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/NewSVG/Original/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535_new.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/python/OFBogen/1_SVGErfassung_updated_new_input.json b/SVGs/Omniflo/python/OFBogen/1_SVGErfassung_updated_new_input.json new file mode 100644 index 0000000..835eb0b --- /dev/null +++ b/SVGs/Omniflo/python/OFBogen/1_SVGErfassung_updated_new_input.json @@ -0,0 +1,228 @@ +[ + { + "SVGname": "APB_110_R400_45_400_821104021.svg", + "Sivasnr": "821104021", + "Winkel":45, + "center_line_width_mm": 669.491, + "center_line_height_mm": 399.505, + "Objekt_width_mm":684.367, + "Objekt_height_mm":435.421 + }, + { + "SVGname": "APB_110_R400_67_5_339_821104024.svg", + "Sivasnr": "821104024", + "Winkel":67.5, + "center_line_width_mm": 507.820, + "center_line_height_mm": 339.315, + "Objekt_width_mm":527.258, + "Objekt_height_mm":368.405 + }, + { + "SVGname": "APB_110_R400_90_500_821104022.svg", + "Sivasnr": "821104022", + "Winkel":90, + "center_line_width_mm": 500, + "center_line_height_mm": 500, + "Objekt_width_mm":521.040, + "Objekt_height_mm":521.040 + }, + { + "SVGname": "APB_110_R500_90_550_550_821104030.svg", + "Sivasnr": "821104030", + "Winkel":90, + "center_line_width_mm": 550, + "center_line_height_mm": 550, + "Objekt_width_mm":571.040, + "Objekt_height_mm":571.040 + }, + { + "SVGname": "APB_110_R550_22_5_84_821104025.svg", + "Sivasnr": "821104025", + "Winkel":22.5, + "center_line_width_mm": 514.491, + "center_line_height_mm": 122.230, + "Objekt_width_mm":522.542, + "Objekt_height_mm":162.707 + }, + { + "SVGname": "APB_110_R550_22_5_84_821104025.svg", + "Sivasnr": "OFBogen22", + "Winkel":22.5, + "center_line_width_mm": 514.491, + "center_line_height_mm": 122.230, + "Objekt_width_mm":522.542, + "Objekt_height_mm":162.707 + }, + { + "SVGname": "APB_110_R550_45_191_821104029.svg", + "Sivasnr": "821104029", + "Winkel":45, + "center_line_width_mm": 551.606, + "center_line_height_mm": 190.792 , + "Objekt_width_mm":566.483, + "Objekt_height_mm":226.709 + }, + { + "SVGname": "APB_110_R550_45_205_821104037.svg", + "Sivasnr": "821104037", + "Winkel":45, + "center_line_width_mm": 537.249, + "center_line_height_mm": 204.932, + "Objekt_width_mm":552.126, + "Objekt_height_mm":240.849 + }, + { + "SVGname": "APB_110_R550_45_232_821104026.svg", + "Sivasnr": "821104026", + "Winkel":45, + "center_line_width_mm": 595.265, + "center_line_height_mm": 265.998, + "Objekt_width_mm":610.142, + "Objekt_height_mm":301.914 + }, + { + "SVGname": "APB_110_R550_67_5_420_821104028.svg", + "Sivasnr": "821104028", + "Winkel":67.5, + "center_line_width_mm": 582.427, + "center_line_height_mm": 419.902, + "Objekt_width_mm":601.865, + "Objekt_height_mm":448.992 + }, + { + "SVGname": "APB_110_R550_67_5_432_821104027.svg", + "Sivasnr": "821104027", + "Winkel":67.5, + "center_line_width_mm": 748.658, + "center_line_height_mm": 530.305, + "Objekt_width_mm":768.095, + "Objekt_height_mm":559.396 + }, + { + "SVGname": "APB_110_R550_67_5_432_821104027.svg", + "Sivasnr": "OFBogen67", + "Winkel":67.5, + "center_line_width_mm": 748.658, + "center_line_height_mm": 530.305, + "Objekt_width_mm":768.095, + "Objekt_height_mm":559.396 + }, + { + "SVGname": "APB_110_R550_67_5_L_185_170_821104065.svg", + "Sivasnr": "821104065", + "Winkel":67.5, + "center_line_width_mm": 758.190, + "center_line_height_mm": 496.584, + "Objekt_width_mm":777.628, + "Objekt_height_mm":525.674 + }, + { + "SVGname": "APB_110_R550_90_900_605_821104066.svg", + "Sivasnr": "821104066", + "Winkel":90, + "center_line_width_mm": 900, + "center_line_height_mm": 605, + "Objekt_width_mm":921.040, + "Objekt_height_mm":626.040 + }, + { + "SVGname": "APB_110_R630_45_400_821104031.svg", + "Sivasnr": "821104031", + "Winkel":45, + "center_line_width_mm": 865.613, + "center_line_height_mm": 300.559, + "Objekt_width_mm":880.491, + "Objekt_height_mm":336.475 + }, + { + "SVGname": "APB_110_R630_45_400_821104031.svg", + "Sivasnr": "OFBogen45", + "Winkel":45, + "center_line_width_mm": 865.613, + "center_line_height_mm": 300.559, + "Objekt_width_mm":880.491, + "Objekt_height_mm":336.475 + }, + { + "SVGname": "APB_110_R630_90_800_800_821104033.svg", + "Sivasnr": "821104033", + "Winkel":90, + "center_line_width_mm": 800, + "center_line_height_mm": 800, + "Objekt_width_mm":821.040, + "Objekt_height_mm":821.040 + }, + { + "SVGname": "APB_110_R630_90_800_800_821104033.svg", + "Sivasnr": "OFBogen90", + "Winkel":90, + "center_line_width_mm": 800, + "center_line_height_mm": 800, + "Objekt_width_mm":821.040, + "Objekt_height_mm":821.040 + }, + + { + "SVGname": "APB_110_R630_90_850_690_821104041.svg", + "Sivasnr": "821104041", + "Winkel":90, + "center_line_width_mm": 690, + "center_line_height_mm": 850, + "Objekt_width_mm":711.040, + "Objekt_height_mm":871.040 + }, + { + "SVGname": "APB_110_R630_90_850_870_821104035.svg", + "Sivasnr": "821104035", + "Winkel":90, + "center_line_width_mm": 850, + "center_line_height_mm": 870, + "Objekt_width_mm":871.04, + "Objekt_height_mm":891.04 + }, + { + "SVGname": "APB_110_R630_90_850_890_821104034.svg", + "Sivasnr": "821104034", + "Winkel":90, + "center_line_width_mm": 890, + "center_line_height_mm": 850, + "Objekt_width_mm":911.040, + "Objekt_height_mm":871.040 + }, + { + "SVGname": "APB_110_R650_180_L_150_821104043.svg", + "Sivasnr": "821104043", + "Winkel":180, + "center_line_width_mm": 800, + "center_line_height_mm": 1300, + "Objekt_width_mm":821.040, + "Objekt_height_mm":1342.080 + }, + { + "SVGname": "APB_110_R650_180_L_150_821104043.svg", + "Sivasnr": "OFBogen180", + "Winkel":180, + "center_line_width_mm": 800, + "center_line_height_mm": 1300, + "Objekt_width_mm":821.040, + "Objekt_height_mm":1342.080 + }, + { + "SVGname": "APB_60_R515_90_650_821094040.svg", + "Sivasnr": "821094040", + "Winkel":90, + "center_line_width_mm": 650.0, + "center_line_height_mm": 650.0, + "Objekt_width_mm": 671.040, + "Objekt_height_mm": 671.040 + }, + { + "SVGname": "APB_60_R515_90_810_821094101.svg", + "Sivasnr": "821094101", + "Winkel":90, + "center_line_width_mm": 810.0, + "center_line_height_mm": 810.0, + "Objekt_width_mm": 831.04, + "Objekt_height_mm": 831.04 + } +] \ No newline at end of file diff --git a/SVGs/Omniflo/python/OFBogen/1_SVGErfassung_updated_new_output.json b/SVGs/Omniflo/python/OFBogen/1_SVGErfassung_updated_new_output.json new file mode 100644 index 0000000..96adb4e --- /dev/null +++ b/SVGs/Omniflo/python/OFBogen/1_SVGErfassung_updated_new_output.json @@ -0,0 +1,277 @@ +[ + { + "SVGname": "APB_110_R400_45_400_821104021.svg", + "Sivasnr": "821104021", + "Winkel": 45.0, + "center_line_width_mm": 669.491, + "center_line_height_mm": 399.505, + "Objekt_width_mm": 684.367, + "Objekt_height_mm": 435.421, + "calculated_objekt_width_mm": 684.369, + "calculated_objekt_height_mm": 435.423 + }, + { + "SVGname": "APB_110_R400_67_5_339_821104024.svg", + "Sivasnr": "821104024", + "Winkel": 67.5, + "center_line_width_mm": 507.82, + "center_line_height_mm": 339.315, + "Objekt_width_mm": 527.258, + "Objekt_height_mm": 368.405, + "calculated_objekt_width_mm": 527.258, + "calculated_objekt_height_mm": 368.407 + }, + { + "SVGname": "APB_110_R400_90_500_821104022.svg", + "Sivasnr": "821104022", + "Winkel": 90.0, + "center_line_width_mm": 500.0, + "center_line_height_mm": 500.0, + "Objekt_width_mm": 521.04, + "Objekt_height_mm": 521.04, + "calculated_objekt_width_mm": 521.04, + "calculated_objekt_height_mm": 521.04 + }, + { + "SVGname": "APB_110_R500_90_550_550_821104030.svg", + "Sivasnr": "821104030", + "Winkel": 90.0, + "center_line_width_mm": 550.0, + "center_line_height_mm": 550.0, + "Objekt_width_mm": 571.04, + "Objekt_height_mm": 571.04, + "calculated_objekt_width_mm": 571.04, + "calculated_objekt_height_mm": 571.04 + }, + { + "SVGname": "APB_110_R550_22_5_84_821104025.svg", + "Sivasnr": "821104025", + "Winkel": 22.5, + "center_line_width_mm": 514.491, + "center_line_height_mm": 122.23, + "Objekt_width_mm": 522.542, + "Objekt_height_mm": 162.707, + "calculated_objekt_width_mm": 522.543, + "calculated_objekt_height_mm": 162.708 + }, + { + "SVGname": "APB_110_R550_22_5_84_821104025.svg", + "Sivasnr": "OFBogen22", + "Winkel": 22.5, + "center_line_width_mm": 514.491, + "center_line_height_mm": 122.23, + "Objekt_width_mm": 522.542, + "Objekt_height_mm": 162.707, + "calculated_objekt_width_mm": 522.543, + "calculated_objekt_height_mm": 162.708 + }, + { + "SVGname": "APB_110_R550_45_191_821104029.svg", + "Sivasnr": "821104029", + "Winkel": 45.0, + "center_line_width_mm": 551.606, + "center_line_height_mm": 190.792, + "Objekt_width_mm": 566.483, + "Objekt_height_mm": 226.709, + "calculated_objekt_width_mm": 566.484, + "calculated_objekt_height_mm": 226.71 + }, + { + "SVGname": "APB_110_R550_45_205_821104037.svg", + "Sivasnr": "821104037", + "Winkel": 45.0, + "center_line_width_mm": 537.249, + "center_line_height_mm": 204.932, + "Objekt_width_mm": 552.126, + "Objekt_height_mm": 240.849, + "calculated_objekt_width_mm": 552.127, + "calculated_objekt_height_mm": 240.85 + }, + { + "SVGname": "APB_110_R550_45_232_821104026.svg", + "Sivasnr": "821104026", + "Winkel": 45.0, + "center_line_width_mm": 595.265, + "center_line_height_mm": 265.998, + "Objekt_width_mm": 610.142, + "Objekt_height_mm": 301.914, + "calculated_objekt_width_mm": 610.143, + "calculated_objekt_height_mm": 301.916 + }, + { + "SVGname": "APB_110_R550_67_5_420_821104028.svg", + "Sivasnr": "821104028", + "Winkel": 67.5, + "center_line_width_mm": 582.427, + "center_line_height_mm": 419.902, + "Objekt_width_mm": 601.865, + "Objekt_height_mm": 448.992, + "calculated_objekt_width_mm": 601.865, + "calculated_objekt_height_mm": 448.994 + }, + { + "SVGname": "APB_110_R550_67_5_432_821104027.svg", + "Sivasnr": "821104027", + "Winkel": 67.5, + "center_line_width_mm": 748.658, + "center_line_height_mm": 530.305, + "Objekt_width_mm": 768.095, + "Objekt_height_mm": 559.396, + "calculated_objekt_width_mm": 768.096, + "calculated_objekt_height_mm": 559.397 + }, + { + "SVGname": "APB_110_R550_67_5_432_821104027.svg", + "Sivasnr": "OFBogen67", + "Winkel": 67.5, + "center_line_width_mm": 748.658, + "center_line_height_mm": 530.305, + "Objekt_width_mm": 768.095, + "Objekt_height_mm": 559.396, + "calculated_objekt_width_mm": 768.096, + "calculated_objekt_height_mm": 559.397 + }, + { + "SVGname": "APB_110_R550_67_5_L_185_170_821104065.svg", + "Sivasnr": "821104065", + "Winkel": 67.5, + "center_line_width_mm": 758.19, + "center_line_height_mm": 496.584, + "Objekt_width_mm": 777.628, + "Objekt_height_mm": 525.674, + "calculated_objekt_width_mm": 777.628, + "calculated_objekt_height_mm": 525.676 + }, + { + "SVGname": "APB_110_R550_90_900_605_821104066.svg", + "Sivasnr": "821104066", + "Winkel": 90.0, + "center_line_width_mm": 900.0, + "center_line_height_mm": 605.0, + "Objekt_width_mm": 921.04, + "Objekt_height_mm": 626.04, + "calculated_objekt_width_mm": 921.04, + "calculated_objekt_height_mm": 626.04 + }, + { + "SVGname": "APB_110_R630_45_400_821104031.svg", + "Sivasnr": "821104031", + "Winkel": 45.0, + "center_line_width_mm": 865.613, + "center_line_height_mm": 300.559, + "Objekt_width_mm": 880.491, + "Objekt_height_mm": 336.475, + "calculated_objekt_width_mm": 880.491, + "calculated_objekt_height_mm": 336.477 + }, + { + "SVGname": "APB_110_R630_45_400_821104031.svg", + "Sivasnr": "OFBogen45", + "Winkel": 45.0, + "center_line_width_mm": 865.613, + "center_line_height_mm": 300.559, + "Objekt_width_mm": 880.491, + "Objekt_height_mm": 336.475, + "calculated_objekt_width_mm": 880.491, + "calculated_objekt_height_mm": 336.477 + }, + { + "SVGname": "APB_110_R630_90_800_800_821104033.svg", + "Sivasnr": "821104033", + "Winkel": 90.0, + "center_line_width_mm": 800.0, + "center_line_height_mm": 800.0, + "Objekt_width_mm": 821.04, + "Objekt_height_mm": 821.04, + "calculated_objekt_width_mm": 821.04, + "calculated_objekt_height_mm": 821.04 + }, + { + "SVGname": "APB_110_R630_90_800_800_821104033.svg", + "Sivasnr": "OFBogen90", + "Winkel": 90.0, + "center_line_width_mm": 800.0, + "center_line_height_mm": 800.0, + "Objekt_width_mm": 821.04, + "Objekt_height_mm": 821.04, + "calculated_objekt_width_mm": 821.04, + "calculated_objekt_height_mm": 821.04 + }, + { + "SVGname": "APB_110_R630_90_850_690_821104041.svg", + "Sivasnr": "821104041", + "Winkel": 90.0, + "center_line_width_mm": 690.0, + "center_line_height_mm": 850.0, + "Objekt_width_mm": 711.04, + "Objekt_height_mm": 871.04, + "calculated_objekt_width_mm": 711.04, + "calculated_objekt_height_mm": 871.04 + }, + { + "SVGname": "APB_110_R630_90_850_870_821104035.svg", + "Sivasnr": "821104035", + "Winkel": 90.0, + "center_line_width_mm": 850.0, + "center_line_height_mm": 870.0, + "Objekt_width_mm": 871.04, + "Objekt_height_mm": 891.04, + "calculated_objekt_width_mm": 871.04, + "calculated_objekt_height_mm": 891.04 + }, + { + "SVGname": "APB_110_R630_90_850_890_821104034.svg", + "Sivasnr": "821104034", + "Winkel": 90.0, + "center_line_width_mm": 890.0, + "center_line_height_mm": 850.0, + "Objekt_width_mm": 911.04, + "Objekt_height_mm": 871.04, + "calculated_objekt_width_mm": 911.04, + "calculated_objekt_height_mm": 871.04 + }, + { + "SVGname": "APB_110_R650_180_L_150_821104043.svg", + "Sivasnr": "821104043", + "Winkel": 180.0, + "center_line_width_mm": 800.0, + "center_line_height_mm": 1300.0, + "Objekt_width_mm": 821.04, + "Objekt_height_mm": 1342.08, + "calculated_objekt_width_mm": 821.04, + "calculated_objekt_height_mm": 1342.08 + }, + { + "SVGname": "APB_110_R650_180_L_150_821104043.svg", + "Sivasnr": "OFBogen180", + "Winkel": 180.0, + "center_line_width_mm": 800.0, + "center_line_height_mm": 1300.0, + "Objekt_width_mm": 821.04, + "Objekt_height_mm": 1342.08, + "calculated_objekt_width_mm": 821.04, + "calculated_objekt_height_mm": 1342.08 + }, + { + "SVGname": "APB_60_R515_90_650_821094040.svg", + "Sivasnr": "821094040", + "Winkel": 90.0, + "center_line_width_mm": 650.0, + "center_line_height_mm": 650.0, + "Objekt_width_mm": 671.04, + "Objekt_height_mm": 671.04, + "calculated_objekt_width_mm": 671.04, + "calculated_objekt_height_mm": 671.04 + }, + { + "SVGname": "APB_60_R515_90_810_821094101.svg", + "Sivasnr": "821094101", + "Winkel": 90.0, + "center_line_width_mm": 810.0, + "center_line_height_mm": 810.0, + "Objekt_width_mm": 831.04, + "Objekt_height_mm": 831.04, + "calculated_objekt_width_mm": 831.04, + "calculated_objekt_height_mm": 831.04 + } +] \ No newline at end of file diff --git a/SVGs/Omniflo/python/OFBogen/1_calculate_ture_width_and_height_dimensions_with_profile_width.py b/SVGs/Omniflo/python/OFBogen/1_calculate_ture_width_and_height_dimensions_with_profile_width.py new file mode 100644 index 0000000..afcfe06 --- /dev/null +++ b/SVGs/Omniflo/python/OFBogen/1_calculate_ture_width_and_height_dimensions_with_profile_width.py @@ -0,0 +1,151 @@ +''' Key Analysis Points: + + Data Safety: + Uses safe_float() to handle potential data conversion issues + Creates copies of items to avoid modifying original data + Geometric Calculations: + Converts angles to radians for trigonometric functions + Performs width/height calculations based on center line measurements and angles + Rounds results to 3 decimal places for consistency + Validation: + Compares calculated values with original values + Flags discrepancies with "Please verify" status + Provides detailed difference metrics + Error Handling: + Preserves original data when processing fails + Tracks and reports all errors + Provides comprehensive statistics + Output: + Generates a new JSON file with calculated fields + Provides detailed console output for verification + Maintains original structure while adding new calculated fields + +The script is designed to process SVG measurement data, perform geometric validations, and produce an enhanced dataset while providing thorough feedback about the processing results. ''' +import json +import math + +def safe_float(value, default=0.0): + """Safely convert value to float, return default if conversion fails""" + try: + return float(value) if value != '' else default + except (ValueError, TypeError): + return default + +def calculate_attributes(item): + """Calculate and add new attributes to the item based on geometric calculations""" + # Create a copy of the item to avoid modifying the original + processed_item = item.copy() + + # Ensure all numeric fields have valid values using safe_float + processed_item["center_line_width_mm"] = safe_float(item.get("center_line_width_mm", 0)) + processed_item["center_line_height_mm"] = safe_float(item.get("center_line_height_mm", 0)) + processed_item["Objekt_width_mm"] = safe_float(item.get("Objekt_width_mm", 0)) + processed_item["Objekt_height_mm"] = safe_float(item.get("Objekt_height_mm", 0)) + processed_item["Winkel"] = safe_float(item.get("Winkel", 0)) + + # Convert angle to radians for trigonometric calculations + winkel_rad = math.radians(processed_item["Winkel"]) + sin_value = math.sin(winkel_rad) + cos_value = math.cos(winkel_rad) + + # Calculate new dimensions with 3 decimal places precision + if processed_item["Winkel"]!=180: + calculated_width = processed_item["center_line_width_mm"] + sin_value * 21.040 + calculated_height = processed_item["center_line_height_mm"] + 21.040 + cos_value * 21.040 + else: + calculated_width = processed_item["center_line_width_mm"]+21.040 + calculated_height = processed_item["center_line_height_mm"]+ 21.040 + 21.040 + + + processed_item["calculated_objekt_width_mm"] = round(calculated_width, 3) + processed_item["calculated_objekt_height_mm"] = round(calculated_height, 3) + + # Calculate differences between original and calculated values + width_diff = round(processed_item["Objekt_width_mm"] - processed_item["calculated_objekt_width_mm"], 3) + height_diff = round(processed_item["Objekt_height_mm"] - processed_item["calculated_objekt_height_mm"], 3) + + # Prepare comparison results for console output (not saved to JSON) + comparison_results = { + "width": { + "calculated": processed_item["calculated_objekt_width_mm"], + "original": processed_item["Objekt_width_mm"], + "difference": width_diff, + "status": "OK" if abs(width_diff) < 0.001 else "Please verify" + }, + "height": { + "calculated": processed_item["calculated_objekt_height_mm"], + "original": processed_item["Objekt_height_mm"], + "difference": height_diff, + "status": "OK" if abs(height_diff) < 0.001 else "Please verify" + } + } + + return processed_item, comparison_results + +def process_json_file(input_file, output_file): + """Main function to process JSON file and generate output""" + # Read input file + try: + with open(input_file, 'r', encoding='utf-8') as f: + data = json.load(f) + except FileNotFoundError: + print(f"Error: Input file '{input_file}' not found") + return + except json.JSONDecodeError as e: + print(f"JSON parsing error: {e}") + return + + # Verify data is a list + if not isinstance(data, list): + print("Error: JSON data should be an array") + return + + # Process data + processed_data = [] + error_items = [] + + print("\nStarting JSON data processing...\n") + + for idx, item in enumerate(data, start=1): + try: + processed_item, comparison = calculate_attributes(item) + processed_data.append(processed_item) + + # Print comparison results to console + print(f"Item {idx} [{item.get('SVGname', 'Unnamed')}] comparison results:") + print(f" Width: Calculated={comparison['width']['calculated']} | Original={comparison['width']['original']} | Difference={comparison['width']['difference']} | {comparison['width']['status']}") + print(f" Height: Calculated={comparison['height']['calculated']} | Original={comparison['height']['original']} | Difference={comparison['height']['difference']} | {comparison['height']['status']}") + print("-" * 60) + + except Exception as e: + error_items.append((idx, str(e))) + # Preserve original data (without any processed fields) + processed_data.append(item) + # Print error message to console + print(f"Error processing item {idx} [{item.get('SVGname', 'Unnamed')}]: {str(e)}") + print("-" * 60) + + # Write output file + try: + with open(output_file, 'w', encoding='utf-8') as f: + json.dump(processed_data, f, indent=4, ensure_ascii=False) + print(f"\nProcessing complete. Results saved to {output_file}") + except IOError as e: + print(f"Error writing output file: {e}") + return + + # Print statistics + total_items = len(data) + success_items = total_items - len(error_items) + + print("\nProcessing statistics:") + print(f"Total items: {total_items}") + print(f"Successfully processed: {success_items}") + print(f"Failed items: {len(error_items)}") + +# Example usage +if __name__ == "__main__": + input_filename = "1_SVGErfassung_updated_new_input.json" # Replace with your input filename + output_filename = "1_SVGErfassung_updated_new_output.json" # Replace with desired output filename + + process_json_file(input_filename, output_filename) \ No newline at end of file diff --git a/SVGs/Omniflo/python/OFBogen/2_calculated_px_cps_output.json b/SVGs/Omniflo/python/OFBogen/2_calculated_px_cps_output.json new file mode 100644 index 0000000..5b473c8 --- /dev/null +++ b/SVGs/Omniflo/python/OFBogen/2_calculated_px_cps_output.json @@ -0,0 +1,752 @@ +[ + { + "SVGname": "APB_110_R400_45_400_821104021.svg", + "Sivasnr": "821104021", + "Winkel": 45.0, + "center_line_width_mm": 669.491, + "center_line_height_mm": 399.505, + "Objekt_width_mm": 684.367, + "Objekt_height_mm": 435.421, + "calculated_objekt_width_mm": 684.369, + "calculated_objekt_height_mm": 435.423, + "Objekt_width_px": 2586.565, + "Objekt_height_px": 1645.674, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 638.912, + "scale_factor": 1.4612043, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 48.119, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 978.263, + "y": 961.795, + "direction": 135.0 + } + ] + }, + { + "SVGname": "APB_110_R400_67_5_339_821104024.svg", + "Sivasnr": "821104024", + "Winkel": 67.5, + "center_line_width_mm": 507.82, + "center_line_height_mm": 339.315, + "Objekt_width_mm": 527.258, + "Objekt_height_mm": 368.405, + "calculated_objekt_width_mm": 527.258, + "calculated_objekt_height_mm": 368.407, + "Objekt_width_px": 1992.772, + "Objekt_height_px": 1392.387, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 700.764, + "scale_factor": 1.8966047, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 56.944, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 963.134, + "y": 975.294, + "direction": 157.5 + } + ] + }, + { + "SVGname": "APB_110_R400_90_500_821104022.svg", + "Sivasnr": "821104022", + "Winkel": 90.0, + "center_line_width_mm": 500.0, + "center_line_height_mm": 500.0, + "Objekt_width_mm": 521.04, + "Objekt_height_mm": 521.04, + "calculated_objekt_width_mm": 521.04, + "calculated_objekt_height_mm": 521.04, + "Objekt_width_px": 1969.271, + "Objekt_height_px": 1969.271, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 1000.0, + "scale_factor": 1.919238, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 40.381, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 959.619, + "y": 1000.0, + "direction": 180.0 + } + ] + }, + { + "SVGname": "APB_110_R500_90_550_550_821104030.svg", + "Sivasnr": "821104030", + "Winkel": 90.0, + "center_line_width_mm": 550.0, + "center_line_height_mm": 550.0, + "Objekt_width_mm": 571.04, + "Objekt_height_mm": 571.04, + "calculated_objekt_width_mm": 571.04, + "calculated_objekt_height_mm": 571.04, + "Objekt_width_px": 2158.246, + "Objekt_height_px": 2158.246, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 1000.0, + "scale_factor": 1.751191, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 36.845, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 963.155, + "y": 1000.0, + "direction": 180.0 + } + ] + }, + { + "SVGname": "APB_110_R550_22_5_84_821104025.svg", + "Sivasnr": "821104025", + "Winkel": 22.5, + "center_line_width_mm": 514.491, + "center_line_height_mm": 122.23, + "Objekt_width_mm": 522.542, + "Objekt_height_mm": 162.707, + "calculated_objekt_width_mm": 522.543, + "calculated_objekt_height_mm": 162.708, + "Objekt_width_px": 1974.947, + "Objekt_height_px": 614.951, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 316.315, + "scale_factor": 1.9137218, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 127.293, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 984.593, + "y": 866.791, + "direction": 112.5 + } + ] + }, + { + "SVGname": "APB_110_R550_22_5_84_821104025.svg", + "Sivasnr": "OFBogen22", + "Winkel": 22.5, + "center_line_width_mm": 514.491, + "center_line_height_mm": 122.23, + "Objekt_width_mm": 522.542, + "Objekt_height_mm": 162.707, + "calculated_objekt_width_mm": 522.543, + "calculated_objekt_height_mm": 162.708, + "Objekt_width_px": 1974.947, + "Objekt_height_px": 614.951, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 316.315, + "scale_factor": 1.9137218, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 127.293, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 984.593, + "y": 866.791, + "direction": 112.5 + } + ] + }, + { + "SVGname": "APB_110_R550_45_191_821104029.svg", + "Sivasnr": "821104029", + "Winkel": 45.0, + "center_line_width_mm": 551.606, + "center_line_height_mm": 190.792, + "Objekt_width_mm": 566.483, + "Objekt_height_mm": 226.709, + "calculated_objekt_width_mm": 566.484, + "calculated_objekt_height_mm": 226.71, + "Objekt_width_px": 2141.022, + "Objekt_height_px": 856.847, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 402.877, + "scale_factor": 1.765278, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 92.191, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 973.738, + "y": 928.18, + "direction": 135.0 + } + ] + }, + { + "SVGname": "APB_110_R550_45_205_821104037.svg", + "Sivasnr": "821104037", + "Winkel": 45.0, + "center_line_width_mm": 537.249, + "center_line_height_mm": 204.932, + "Objekt_width_mm": 552.126, + "Objekt_height_mm": 240.849, + "calculated_objekt_width_mm": 552.127, + "calculated_objekt_height_mm": 240.85, + "Objekt_width_px": 2086.76, + "Objekt_height_px": 910.289, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 438.894, + "scale_factor": 1.8111808, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 86.826, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 973.055, + "y": 932.517, + "direction": 135.0 + } + ] + }, + { + "SVGname": "APB_110_R550_45_232_821104026.svg", + "Sivasnr": "821104026", + "Winkel": 45.0, + "center_line_width_mm": 595.265, + "center_line_height_mm": 265.998, + "Objekt_width_mm": 610.142, + "Objekt_height_mm": 301.914, + "calculated_objekt_width_mm": 610.143, + "calculated_objekt_height_mm": 301.916, + "Objekt_width_px": 2306.032, + "Objekt_height_px": 1141.084, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 497.499, + "scale_factor": 1.6389627, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 69.314, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 975.617, + "y": 945.619, + "direction": 135.0 + } + ] + }, + { + "SVGname": "APB_110_R550_67_5_420_821104028.svg", + "Sivasnr": "821104028", + "Winkel": 67.5, + "center_line_width_mm": 582.427, + "center_line_height_mm": 419.902, + "Objekt_width_mm": 601.865, + "Objekt_height_mm": 448.992, + "calculated_objekt_width_mm": 601.865, + "calculated_objekt_height_mm": 448.994, + "Objekt_width_px": 2274.749, + "Objekt_height_px": 1696.965, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 748.047, + "scale_factor": 1.6615022, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 46.732, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 967.704, + "y": 979.385, + "direction": 157.5 + } + ] + }, + { + "SVGname": "APB_110_R550_67_5_432_821104027.svg", + "Sivasnr": "821104027", + "Winkel": 67.5, + "center_line_width_mm": 748.658, + "center_line_height_mm": 530.305, + "Objekt_width_mm": 768.095, + "Objekt_height_mm": 559.396, + "calculated_objekt_width_mm": 768.096, + "calculated_objekt_height_mm": 559.397, + "Objekt_width_px": 2903.015, + "Objekt_height_px": 2114.237, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 730.336, + "scale_factor": 1.3019223, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 37.507, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 974.695, + "y": 982.847, + "direction": 157.5 + } + ] + }, + { + "SVGname": "APB_110_R550_67_5_432_821104027.svg", + "Sivasnr": "OFBogen67", + "Winkel": 67.5, + "center_line_width_mm": 748.658, + "center_line_height_mm": 530.305, + "Objekt_width_mm": 768.095, + "Objekt_height_mm": 559.396, + "calculated_objekt_width_mm": 768.096, + "calculated_objekt_height_mm": 559.397, + "Objekt_width_px": 2903.015, + "Objekt_height_px": 2114.237, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 730.336, + "scale_factor": 1.3019223, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 37.507, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 974.695, + "y": 982.847, + "direction": 157.5 + } + ] + }, + { + "SVGname": "APB_110_R550_67_5_L_185_170_821104065.svg", + "Sivasnr": "821104065", + "Winkel": 67.5, + "center_line_width_mm": 758.19, + "center_line_height_mm": 496.584, + "Objekt_width_mm": 777.628, + "Objekt_height_mm": 525.674, + "calculated_objekt_width_mm": 777.628, + "calculated_objekt_height_mm": 525.676, + "Objekt_width_px": 2939.045, + "Objekt_height_px": 1986.785, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 678.042, + "scale_factor": 1.2859619, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 39.904, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 975.003, + "y": 981.716, + "direction": 157.5 + } + ] + }, + { + "SVGname": "APB_110_R550_90_900_605_821104066.svg", + "Sivasnr": "821104066", + "Winkel": 90.0, + "center_line_width_mm": 900.0, + "center_line_height_mm": 605.0, + "Objekt_width_mm": 921.04, + "Objekt_height_mm": 626.04, + "calculated_objekt_width_mm": 921.04, + "calculated_objekt_height_mm": 626.04, + "Objekt_width_px": 3481.071, + "Objekt_height_px": 2366.118, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 681.6, + "scale_factor": 1.0857292, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 33.515, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 977.156, + "y": 997.227, + "direction": 180.0 + } + ] + }, + { + "SVGname": "APB_110_R630_45_400_821104031.svg", + "Sivasnr": "821104031", + "Winkel": 45.0, + "center_line_width_mm": 865.613, + "center_line_height_mm": 300.559, + "Objekt_width_mm": 880.491, + "Objekt_height_mm": 336.475, + "calculated_objekt_width_mm": 880.491, + "calculated_objekt_height_mm": 336.477, + "Objekt_width_px": 3327.816, + "Objekt_height_px": 1271.707, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 384.818, + "scale_factor": 1.13573, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 62.096, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 983.103, + "y": 949.149, + "direction": 135.0 + } + ] + }, + { + "SVGname": "APB_110_R630_45_400_821104031.svg", + "Sivasnr": "OFBogen45", + "Winkel": 45.0, + "center_line_width_mm": 865.613, + "center_line_height_mm": 300.559, + "Objekt_width_mm": 880.491, + "Objekt_height_mm": 336.475, + "calculated_objekt_width_mm": 880.491, + "calculated_objekt_height_mm": 336.477, + "Objekt_width_px": 3327.816, + "Objekt_height_px": 1271.707, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 384.818, + "scale_factor": 1.13573, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 62.096, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 983.103, + "y": 949.149, + "direction": 135.0 + } + ] + }, + { + "SVGname": "APB_110_R630_90_800_800_821104033.svg", + "Sivasnr": "821104033", + "Winkel": 90.0, + "center_line_width_mm": 800.0, + "center_line_height_mm": 800.0, + "Objekt_width_mm": 821.04, + "Objekt_height_mm": 821.04, + "calculated_objekt_width_mm": 821.04, + "calculated_objekt_height_mm": 821.04, + "Objekt_width_px": 3103.121, + "Objekt_height_px": 3103.121, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 1000.0, + "scale_factor": 1.217967, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 25.626, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 974.374, + "y": 1000.0, + "direction": 180.0 + } + ] + }, + { + "SVGname": "APB_110_R630_90_800_800_821104033.svg", + "Sivasnr": "OFBogen90", + "Winkel": 90.0, + "center_line_width_mm": 800.0, + "center_line_height_mm": 800.0, + "Objekt_width_mm": 821.04, + "Objekt_height_mm": 821.04, + "calculated_objekt_width_mm": 821.04, + "calculated_objekt_height_mm": 821.04, + "Objekt_width_px": 3103.121, + "Objekt_height_px": 3103.121, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 1000.0, + "scale_factor": 1.217967, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 25.626, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 974.374, + "y": 1000.0, + "direction": 180.0 + } + ] + }, + { + "SVGname": "APB_110_R630_90_850_690_821104041.svg", + "Sivasnr": "821104041", + "Winkel": 90.0, + "center_line_width_mm": 690.0, + "center_line_height_mm": 850.0, + "Objekt_width_mm": 711.04, + "Objekt_height_mm": 871.04, + "calculated_objekt_width_mm": 711.04, + "calculated_objekt_height_mm": 871.04, + "Objekt_width_px": 2687.376, + "Objekt_height_px": 3292.096, + "calculated_SVG_height_px": 1000, + "calculated_SVG_width_px": 3.0866042377540064e+16, + "scale_factor": 1.1480529, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 24.155, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 0.0, + "y": 1000.0, + "direction": 180.0 + } + ] + }, + { + "SVGname": "APB_110_R630_90_850_870_821104035.svg", + "Sivasnr": "821104035", + "Winkel": 90.0, + "center_line_width_mm": 850.0, + "center_line_height_mm": 870.0, + "Objekt_width_mm": 871.04, + "Objekt_height_mm": 891.04, + "calculated_objekt_width_mm": 871.04, + "calculated_objekt_height_mm": 891.04, + "Objekt_width_px": 3292.096, + "Objekt_height_px": 3367.686, + "calculated_SVG_height_px": 1000, + "calculated_SVG_width_px": 3.0866042377540224e+16, + "scale_factor": 1.1222841, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 23.613, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 0.0, + "y": 1000.0, + "direction": 180.0 + } + ] + }, + { + "SVGname": "APB_110_R630_90_850_890_821104034.svg", + "Sivasnr": "821104034", + "Winkel": 90.0, + "center_line_width_mm": 890.0, + "center_line_height_mm": 850.0, + "Objekt_width_mm": 911.04, + "Objekt_height_mm": 871.04, + "calculated_objekt_width_mm": 911.04, + "calculated_objekt_height_mm": 871.04, + "Objekt_width_px": 3443.276, + "Objekt_height_px": 3292.096, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 957.984, + "scale_factor": 1.0976466, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 24.107, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 976.905, + "y": 998.027, + "direction": 180.0 + } + ] + }, + { + "SVGname": "APB_110_R650_180_L_150_821104043.svg", + "Sivasnr": "821104043", + "Winkel": 180.0, + "center_line_width_mm": 800.0, + "center_line_height_mm": 1300.0, + "Objekt_width_mm": 821.04, + "Objekt_height_mm": 1342.08, + "calculated_objekt_width_mm": 821.04, + "calculated_objekt_height_mm": 1342.08, + "Objekt_width_px": 3103.121, + "Objekt_height_px": 5072.391, + "calculated_SVG_height_px": 1000, + "calculated_SVG_width_px": 613.657, + "scale_factor": 0.7451121, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 15.677, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 0, + "y": 984.323, + "direction": 270.0 + } + ] + }, + { + "SVGname": "APB_110_R650_180_L_150_821104043.svg", + "Sivasnr": "OFBogen180", + "Winkel": 180.0, + "center_line_width_mm": 800.0, + "center_line_height_mm": 1300.0, + "Objekt_width_mm": 821.04, + "Objekt_height_mm": 1342.08, + "calculated_objekt_width_mm": 821.04, + "calculated_objekt_height_mm": 1342.08, + "Objekt_width_px": 3103.121, + "Objekt_height_px": 5072.391, + "calculated_SVG_height_px": 1000, + "calculated_SVG_width_px": 613.657, + "scale_factor": 0.7451121, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 15.677, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 0, + "y": 984.323, + "direction": 270.0 + } + ] + }, + { + "SVGname": "APB_60_R515_90_650_821094040.svg", + "Sivasnr": "821094040", + "Winkel": 90.0, + "center_line_width_mm": 650.0, + "center_line_height_mm": 650.0, + "Objekt_width_mm": 671.04, + "Objekt_height_mm": 671.04, + "calculated_objekt_width_mm": 671.04, + "calculated_objekt_height_mm": 671.04, + "Objekt_width_px": 2536.196, + "Objekt_height_px": 2536.196, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 1000.0, + "scale_factor": 1.490224, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 31.354, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 968.646, + "y": 1000.0, + "direction": 180.0 + } + ] + }, + { + "SVGname": "APB_60_R515_90_810_821094101.svg", + "Sivasnr": "821094101", + "Winkel": 90.0, + "center_line_width_mm": 810.0, + "center_line_height_mm": 810.0, + "Objekt_width_mm": 831.04, + "Objekt_height_mm": 831.04, + "calculated_objekt_width_mm": 831.04, + "calculated_objekt_height_mm": 831.04, + "Objekt_width_px": 3140.916, + "Objekt_height_px": 3140.916, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 1000.0, + "scale_factor": 1.203312, + "connectionPoints": [ + { + "id": "cp1", + "x": 0, + "y": 25.318, + "direction": 270.0 + }, + { + "id": "cp2", + "x": 974.683, + "y": 1000.0, + "direction": 180.0 + } + ] + } +] \ No newline at end of file diff --git a/SVGs/Omniflo/python/OFBogen/2_calculations_to_standardize_the_dimensions_and_add_connection_points.py b/SVGs/Omniflo/python/OFBogen/2_calculations_to_standardize_the_dimensions_and_add_connection_points.py new file mode 100644 index 0000000..611ec31 --- /dev/null +++ b/SVGs/Omniflo/python/OFBogen/2_calculations_to_standardize_the_dimensions_and_add_connection_points.py @@ -0,0 +1,175 @@ +''' This Python script processes JSON data containing SVG object measurements and performs several calculations to standardize the dimensions and add connection points. Here's the main logic: + + Data Processing: + Converts all numeric fields to floats + Determines the dominant dimension (width or height) and scales it to 1000px + Calculates the other dimension proportionally + Computes two connection points (cp1 and cp2) with their coordinates and directions + Error Checking: + Validates that connection points stay within the 1000px boundary + Provides detailed error reporting + Scaling Logic: + Uses different scaling approaches based on whether width or height is larger + Maintains aspect ratio while standardizing dimensions ''' +import json +import math + +def process_json_item(item): + # Ensure all numeric fields are floats + item["Winkel"] = float(item["Winkel"]) + item["center_line_width_mm"] = float(item["center_line_width_mm"]) + item["center_line_height_mm"] = float(item["center_line_height_mm"]) + item["Objekt_width_mm"] = float(item["Objekt_width_mm"]) + item["Objekt_height_mm"] = float(item["Objekt_height_mm"]) + item["calculated_objekt_width_mm"] = float(item["calculated_objekt_width_mm"]) + item["calculated_objekt_height_mm"] = float(item["calculated_objekt_height_mm"]) + + # Calculate the direct mm to px conversions (requested additions) + item["Objekt_width_px"] = round(item["Objekt_width_mm"] * 3.7795, 3) + item["Objekt_height_px"] = round(item["Objekt_height_mm"] * 3.7795, 3) + + winkel_rad = math.radians(item["Winkel"]) + sin_value = math.sin(winkel_rad) + cos_value = math.cos(winkel_rad) + + + # Determine which dimension is larger + if item["Objekt_width_mm"] == item["Objekt_height_mm"]: + # "Width =Height" + scale = round(1000 / item["Objekt_width_mm"], 6) + item["calculated_SVG_width_px"] = 1000 + item["calculated_SVG_height_px"] = round(item["Objekt_height_mm"] * scale, 3) + scale_RD_H = 1000 / item["calculated_SVG_height_px"] + scale_RD_W = 1 + elif item["Objekt_width_mm"] > item["Objekt_height_mm"]: + # Width is larger, set calculated_SVG width to 1000px + scale = round(1000 / item["Objekt_width_mm"], 7) + item["calculated_SVG_width_px"] = 1000 + if item["Winkel"]==180: + item["calculated_SVG_height_px"] = round(item["Objekt_height_mm"] * scale+3.78/2, 3) + else: + item["calculated_SVG_height_px"] = round(item["Objekt_height_mm"] * scale+3.78/2/sin_value, 3) + scale_RD_H = round(1000 / item["calculated_SVG_height_px"], 6) + scale_RD_W = 1 + else: + # Height is larger, set calculated_SVG height to 1000px + scale = round(1000 / item["Objekt_height_mm"], 7) + item["calculated_SVG_height_px"] = 1000 + if item["Winkel"]==180: + item["calculated_SVG_width_px"] = round(item["Objekt_width_mm"] * scale+3.78/2, 3) + else: + item["calculated_SVG_width_px"] = round(item["Objekt_width_mm"] * scale+3.78/2/cos_value, 3) + scale_RD_W = round(1000 / item["calculated_SVG_width_px"], 6) + scale_RD_H = 1 + + item["scale_factor"] = scale # Add scale factor + + # Calculate connection points + cp1_y = round(21.040 * scale*scale_RD_H, 3) + if item["calculated_SVG_height_px"] == item["calculated_SVG_width_px"]: + cp2_x = round(item["center_line_width_mm"] * scale * scale_RD_W, 3) + cp2_y = round((21.040 + item["center_line_height_mm"]) * scale * scale_RD_H, 3) + elif item["calculated_SVG_height_px"] == 1000 and item["calculated_SVG_width_px"] != 1000: + if item["Winkel"]==180: + cp2_x = 0 + else: + cp2_x = round((item["center_line_width_mm"] * scale) * scale_RD_W, 3) + cp2_y = round(((21.040 + item["center_line_height_mm"]) * scale) * scale_RD_H, 3) + else: + cp2_x = round((item["center_line_width_mm"] * scale) * scale_RD_W, 3) + cp2_y = round(((21.040 + item["center_line_height_mm"]) * scale) * scale_RD_H, 3) + + cp2_direction = round(90 + item["Winkel"], 1) # Keep 1 decimal place + + # Add connection points attributes + item["connectionPoints"] = [ + { + "id": "cp1", + "x": 0, + "y": cp1_y, + "direction": 270.0 + }, + { + "id": "cp2", + "x": cp2_x, + "y": cp2_y, + "direction": cp2_direction + } + ] + + return item + +def check_connection_points(item): + """Check if connection point coordinates exceed 1000""" + errors = [] + for cp in item.get("connectionPoints", []): + if cp["x"] > 1000 or cp["y"] > 1000: + errors.append(f"Connection point {cp['id']} exceeds range: x={cp['x']}, y={cp['y']}") + return errors + +def process_json_file(input_file, output_file): + try: + # Read input file + with open(input_file, 'r', encoding='utf-8') as f: + data = json.load(f) + + # Verify data is a list + if not isinstance(data, list): + print("Error: JSON data should be an array") + return + + # Process each item + processed_data = [] + error_reports = [] + + for idx, item in enumerate(data, start=1): + try: + processed_item = process_json_item(item) + + # Check connection point coordinates + errors = check_connection_points(processed_item) + if errors: + error_msg = f"Item {idx} [{item.get('SVGname')}] coordinate errors:" + for err in errors: + error_msg += f"\n - {err}" + error_reports.append(error_msg) + + processed_data.append(processed_item) + except Exception as e: + error_msg = f"Error processing item {idx} [{item.get('SVGname')}]: {str(e)}" + error_reports.append(error_msg) + processed_data.append(item) # Keep original data + + # Write output file + with open(output_file, 'w', encoding='utf-8') as f: + json.dump(processed_data, f, indent=4, ensure_ascii=False) + + print(f"Processing complete. Results saved to {output_file}") + + # Print error reports + if error_reports: + print("\n" + "="*50) + print("Coordinate Validation Error Report:") + print("="*50) + for report in error_reports: + print("\n" + report) + print("\n" + "="*50) + print(f"Found {len(error_reports)} coordinate issues") + print("="*50) + else: + print("\nAll connection point coordinates validated successfully - no out-of-range issues found") + + except FileNotFoundError: + print(f"Error: Input file '{input_file}' not found") + except json.JSONDecodeError as e: + print(f"JSON parsing error: {e}") + except Exception as e: + print(f"Error during processing: {e}") + +# Example usage +if __name__ == "__main__": + input_filename = "1_SVGErfassung_updated_new_output.json" + output_filename = "2_calculated_px_cps_output.json" + + process_json_file(input_filename, output_filename) + process_json_file(input_filename, output_filename) \ No newline at end of file diff --git a/SVGs/Omniflo/python/OFBogen/3_update_dimensions_and_connection_points_in_props.py b/SVGs/Omniflo/python/OFBogen/3_update_dimensions_and_connection_points_in_props.py new file mode 100644 index 0000000..df1bd36 --- /dev/null +++ b/SVGs/Omniflo/python/OFBogen/3_update_dimensions_and_connection_points_in_props.py @@ -0,0 +1,134 @@ +''' Script Analysis + +This Python script processes JSON and TXT files to update dimensions and connection points in SVG-related data. Here's the main logic: + Input Handling: + Reads a JSON file containing reference data + Processes all TXT files in a specified directory + Data Processing: + Creates a mapping between Sivasnr (from filenames) and JSON data + For each matching TXT file: + Updates width and height based on JSON data (converting mm to px) + Updates connection points (x, y, direction) from JSON data + Preserves the original file structure while updating specific values + Reporting: + Prints detailed change reports to console + Skips files without matching JSON data ''' +import json +import os +import glob +from datetime import datetime + +def process_files(json_file_path, txt_files_dir): + # Create a log file with timestamp + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + log_file_path = os.path.join(txt_files_dir, f"modification_report_OFBogen_{timestamp}.txt") + + # Read JSON file + with open(json_file_path, 'r', encoding='utf-8') as f: + json_data = json.load(f) + + # Create Sivasnr to JSON data mapping + sivasnr_mapping = {item["Sivasnr"]: item for item in json_data} + + # Prepare report content + report_content = [] + report_content.append(f"Modification Report - {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") + report_content.append("="*50 + "\n") + + # Process all TXT files + for txt_file_path in glob.glob(os.path.join(txt_files_dir, '*.txt')): + # Extract Sivasnr from filename + sivasnr = os.path.splitext(os.path.basename(txt_file_path))[0] + + # Check if corresponding JSON data exists + if sivasnr in sivasnr_mapping: + json_item = sivasnr_mapping[sivasnr] + + # Read TXT file content (using utf-8-sig to handle BOM) + with open(txt_file_path, 'r', encoding='utf-8-sig') as f: + txt_content = json.load(f) + + # Prepare entry for this file + file_entry = [] + file_entry.append(f"\nProcessing file: {txt_file_path}") + file_entry.append("="*50) + + # Record old values + old_width = txt_content["width"] + old_height = txt_content["height"] + old_cps = {cp["id"]: {"x": cp["x"], "y": cp["y"], "direction": cp["direction"]} + for cp in txt_content["connectionPoints"]} + + # Update width and height + new_width = round(json_item["Objekt_width_mm"] * 3.7795, 3) + new_height = round(json_item["Objekt_height_mm"] * 3.7795, 3) + txt_content["width"] = new_width + txt_content["height"] = new_height + + # Update connectionPoints + cp_changes = [] + for cp in txt_content["connectionPoints"]: + cp_id = cp["id"] + # Find corresponding connection point in JSON data + json_cp = next((item for item in json_item["connectionPoints"] if item["id"] == cp_id), None) + if json_cp: + # Record old values + old_x = cp["x"] + old_y = cp["y"] + old_dir = cp["direction"] + + # Update values + cp["x"] = json_cp["x"] + cp["y"] = json_cp["y"] + cp["direction"] = json_cp["direction"] + + # Record changes + cp_changes.append({ + "id": cp_id, + "x": (old_x, cp["x"]), + "y": (old_y, cp["y"]), + "direction": (old_dir, cp["direction"]) + }) + + # Write back to TXT file + with open(txt_file_path, 'w', encoding='utf-8') as f: + json.dump(txt_content, f, indent=2, ensure_ascii=False) + + # Add to report + file_entry.append("[Dimension Changes]") + file_entry.append(f"width: {old_width} → {new_width}") + file_entry.append(f"height: {old_height} → {new_height}") + + if cp_changes: + file_entry.append("\n[Connection Point Changes]") + for change in cp_changes: + file_entry.append(f"Connection point {change['id']}:") + file_entry.append(f" x: {change['x'][0]} → {change['x'][1]}") + file_entry.append(f" y: {change['y'][0]} → {change['y'][1]}") + file_entry.append(f" direction: {change['direction'][0]} → {change['direction'][1]}") + + file_entry.append(f"\nFile {txt_file_path} processed successfully") + file_entry.append("="*50) + + # Add this file's entry to main report + report_content.extend(file_entry) + + # Also print to console + print("\n" + "\n".join(file_entry)) + else: + print(f"\nSkipping file {txt_file_path} (no matching JSON data found)") + + # Write the report file if any changes were made + if len(report_content) > 2: # More than just the header + with open(log_file_path, 'w', encoding='utf-8') as f: + f.write("\n".join(report_content)) + print(f"\nModification report saved to: {log_file_path}") + else: + print("\nNo files were modified - no report generated") + +# Example usage +if __name__ == "__main__": + json_file_path = "2_calculated_px_cps_output.json" + txt_files_dir = "C:/Program Files/RuleDesigner/RDConfigurator Fusion/WebApi/Editor2D/SSG/shapes/props" + process_files(json_file_path, txt_files_dir) + print("\nAll files processed!") \ No newline at end of file diff --git a/SVGs/Omniflo/python/OFBogen/4_OFBogen_SVG_XML_Modifier_Script.py b/SVGs/Omniflo/python/OFBogen/4_OFBogen_SVG_XML_Modifier_Script.py new file mode 100644 index 0000000..67121c5 --- /dev/null +++ b/SVGs/Omniflo/python/OFBogen/4_OFBogen_SVG_XML_Modifier_Script.py @@ -0,0 +1,150 @@ +""" +SVG XML Batch Modifier Script + +This script: +1. Reads a JSON array of items +2. For each item, extracts the "Sivasnr" value +3. Locates and modifies the corresponding XML file +4. Provides comprehensive reporting +""" + +import json +import os +import xml.etree.ElementTree as ET +from xml.etree.ElementTree import Element, SubElement, tostring + +def process_xml_file(xml_path): + """ + Process a single XML file with proper namespace handling + Returns modification statistics + """ + try: + tree = ET.parse(xml_path) + root = tree.getroot() + + # Register and handle SVG namespace + ET.register_namespace('', 'http://www.w3.org/2000/svg') + namespaces = {'svg': 'http://www.w3.org/2000/svg'} + + stats = { + 'ffe31b_groups': 0, + 'ec2525_groups': 0, + 'elements_modified': 0, + 'modified': False + } + + # Process all group elements + for g in root.findall('.//svg:g', namespaces): + stroke = g.get('stroke') + + if stroke == "#ffe31b": + stats['ffe31b_groups'] += 1 + + if 'stroke-width' in g.attrib: + del g.attrib['stroke-width'] + stats['modified'] = True + if 'stroke-miterlimit' in g.attrib: + del g.attrib['stroke-miterlimit'] + stats['modified'] = True + + for child in g.findall('.//svg:path', namespaces): + child.set('stroke-width', '1px') + stats['elements_modified'] += 1 + stats['modified'] = True + + elif stroke == "#ec2525": + stats['ec2525_groups'] += 1 + + for attr in ['stroke', 'stroke-width', 'stroke-linejoin']: + if attr in g.attrib: + del g.attrib[attr] + stats['modified'] = True + + for child in g.findall('.//svg:path[@stroke-width="1px"]', namespaces): + del child.attrib['stroke-width'] + child.set('style', 'stroke:#ec2525;stroke-width:2px') + stats['elements_modified'] += 1 + stats['modified'] = True + + # Save changes if modified + if stats['modified']: + xml_str = ET.tostring(root, encoding='unicode') + xml_str = xml_str.replace('><', '>\n<').replace('', '\n') + + with open(xml_path, 'w', encoding='utf-8') as f: + f.write(xml_str) + + return stats + + except Exception as e: + print(f" Error processing file: {str(e)}") + return None + +def main(): + """ + Main processing function + """ + # Configure paths + json_file_path = r"C:\Users\y.wang\Documents\SSG-Ruledesigner-Konfigurator\SVGs\Omniflo\python\OFBogen\1_SVGErfassung_updated_new_input.json" + svg_folder_path = r"C:\Program Files\RuleDesigner\RDConfigurator Fusion\WebApi\Editor2D\SSG\shapes\svg" + + try: + # Read and parse JSON file + with open(json_file_path, 'r', encoding='utf-8') as f: + data = json.load(f) + + # Verify we have a list of items + if not isinstance(data, list): + print("Error: JSON data should be an array of items") + return + + print(f"\nFound {len(data)} items in JSON file") + + # Process each item in the JSON array + for index, item in enumerate(data, 1): + if not isinstance(item, dict): + print(f"\nItem {index}: Not a dictionary, skipping") + continue + + sivasnr = item.get("Sivasnr") + if not sivasnr: + print(f"\nItem {index}: Missing 'Sivasnr' value, skipping") + continue + + print(f"\nProcessing item {index}: Sivasnr = {sivasnr}") + + # Build XML filename and path + xml_filename = f"{sivasnr}.xml" + xml_path = os.path.join(svg_folder_path, xml_filename) + + if not os.path.exists(xml_path): + print(f" XML file not found: {xml_path}") + continue + + print(f" Found XML file: {xml_path}") + + # Process the XML file + stats = process_xml_file(xml_path) + + if stats is None: + print(" Processing failed") + elif stats['modified']: + print(" File successfully modified") + print(f" - #ffe31b groups: {stats['ffe31b_groups']}") + print(f" - #ec2525 groups: {stats['ec2525_groups']}") + print(f" - Elements modified: {stats['elements_modified']}") + else: + print(" No modifications needed") + + print("\nProcessing complete") + + except FileNotFoundError: + print("\nError: JSON file not found") + except json.JSONDecodeError: + print("\nError: Invalid JSON format") + except Exception as e: + print(f"\nUnexpected error: {str(e)}") + +if __name__ == "__main__": + print("SVG XML Batch Modifier - Starting execution") + main() \ No newline at end of file diff --git a/SVGs/Omniflo/python/TEFBogen/.vscode/launch.json b/SVGs/Omniflo/python/TEFBogen/.vscode/launch.json new file mode 100644 index 0000000..552f3ae --- /dev/null +++ b/SVGs/Omniflo/python/TEFBogen/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python Debugger: Current File", + "type": "debugpy", + "request": "launch", + "program": "${file}", + "args": ["1_TEF_Boegen_input.json"], + "console": "integratedTerminal" + } + ] +} \ No newline at end of file diff --git a/SVGs/Omniflo/python/TEFBogen/1_TEF_Boegen_input.json b/SVGs/Omniflo/python/TEFBogen/1_TEF_Boegen_input.json new file mode 100644 index 0000000..9b16066 --- /dev/null +++ b/SVGs/Omniflo/python/TEFBogen/1_TEF_Boegen_input.json @@ -0,0 +1,166 @@ + + + [{ + "Sivasnr": "821104033+0_B10040", + "ProfilTyp": "APB 110 R 630/90° – 800/800 mit TEF Aussen", + "Radius": 630, + "KurvenWinkel": 90, + "Gruppe_width_mm":931.30, + "Gruppe_height_mm":931.30, + "OFBogen_center_line_width_mm": 800, + "OFBogen_center_line_height_mm": 800, + "TEFBogen_center_line_width_mm": 900, + "TEFBogen_center_line_height_mm": 900, + "OFBogen_CP1_x_mm":0, + "TEFBogen_CP1_x_mm":0, + "OFBogen_CP1_y_mm":131.30, + "TEFBogen_CP1_y_mm":31.30, + "SivasnrTEF": "0_B10040", + "Antriebsart":1 + }, + { + "Sivasnr": "821104033+0_B10050", + "ProfilTyp": "APB 110 R 630/90° – 800/800 mit TEF Innen", + "Radius": 630, + "KurvenWinkel": 90, + "Gruppe_width_mm":821.040, + "Gruppe_height_mm":821.040, + "OFBogen_center_line_width_mm": 800, + "OFBogen_center_line_height_mm": 800, + "TEFBogen_center_line_width_mm": 700, + "TEFBogen_center_line_height_mm": 700, + "OFBogen_CP1_x_mm":0, + "TEFBogen_CP1_x_mm":0, + "OFBogen_CP1_y_mm":21.040, + "TEFBogen_CP1_y_mm":121.040, + "SivasnrTEF": "0_B10050", + "Antriebsart":1 + }, + { + "Sivasnr": "821104025+0_B10090", + "ProfilTyp": "APB 110 R 550/22,5° – 84/522 mit TEF Innen", + "Radius": 550, + "KurvenWinkel": 22.5, + "Gruppe_width_mm":537.544, + "Gruppe_height_mm":232.057, + "OFBogen_center_line_width_mm": 514.491, + "OFBogen_center_line_height_mm": 122.230, + "TEFBogen_center_line_width_mm": 412.692, + "TEFBogen_center_line_height_mm": 82.090, + "OFBogen_CP1_x_mm":15.002, + "TEFBogen_CP1_x_mm":0, + "OFBogen_CP1_y_mm":21.040, + "TEFBogen_CP1_y_mm":121.049, + "SivasnrTEF": "0_B10090", + "Antriebsart":1 + }, + { + "Sivasnr": "821104025+0_B10091", + "ProfilTyp": "APB 110 R 550/22,5° – 84/522 mit TEF Aussen", + "Radius": 550, + "KurvenWinkel": 22.5, + "Gruppe_width_mm":655.564, + "Gruppe_height_mm":272.978, + "OFBogen_center_line_width_mm": 514.491, + "OFBogen_center_line_height_mm": 122.230, + "TEFBogen_center_line_width_mm": 643.589, + "TEFBogen_center_line_height_mm": 125.683, + "OFBogen_CP1_x_mm":100.867, + "TEFBogen_CP1_x_mm":0, + "OFBogen_CP1_y_mm":131.310, + "TEFBogen_CP1_y_mm":31.300, + "SivasnrTEF": "0_B10091", + "Antriebsart":2 + + }, + { + "Sivasnr": "821104026+0_B10071", + "ProfilTyp": "APB 110 R 550/45° – 232/610 mit TEF Innen", + "Radius": 550, + "KurvenWinkel": 45, + "Gruppe_width_mm":610.142, + "Gruppe_height_mm":308.217, + "OFBogen_center_line_width_mm": 595.265, + "OFBogen_center_line_height_mm": 265.998, + "TEFBogen_center_line_width_mm": 398.432, + "TEFBogen_center_line_height_mm": 165.036, + "OFBogen_CP1_x_mm":0, + "TEFBogen_CP1_x_mm":54.446, + "OFBogen_CP1_y_mm":21.040, + "TEFBogen_CP1_y_mm":121.049, + "SivasnrTEF": "0_B10071", + "Antriebsart":1 + }, + { + "Sivasnr": "821104031+0_B10060", + "ProfilTyp": "APB 110 R 630/45° – 400/825 mit TEF Aussen", + "Radius": 630, + "KurvenWinkel": 45, + "Gruppe_width_mm":958.874, + "Gruppe_height_mm":446.746, + "OFBogen_center_line_width_mm": 865.614, + "OFBogen_center_line_height_mm": 300.559, + "TEFBogen_center_line_width_mm": 936.741, + "TEFBogen_center_line_height_mm":329.985, + "OFBogen_CP1_x_mm":0.276, + "TEFBogen_CP1_x_mm":0, + "OFBogen_CP1_y_mm":131.310, + "TEFBogen_CP1_y_mm":31.30, + "SivasnrTEF": "0_B10060", + "Antriebsart":2 + }, + { + "Sivasnr": "821104031+0_B10070", + "ProfilTyp": "APB 110 R 630/45° – 400/825 mit TEF Innen", + "Radius": 630, + "KurvenWinkel": 45, + "Gruppe_width_mm":880.942, + "Gruppe_height_mm":414.496, + "OFBogen_center_line_width_mm": 865.614, + "OFBogen_center_line_height_mm": 300.559, + "TEFBogen_center_line_width_mm": 759.396, + "TEFBogen_center_line_height_mm": 271.313, + "OFBogen_CP1_x_mm":0.453, + "TEFBogen_CP1_x_mm":0, + "OFBogen_CP1_y_mm":21.04, + "TEFBogen_CP1_y_mm":121.049, + "SivasnrTEF": "0_B10070", + "Antriebsart":1 + }, + { + "Sivasnr": "821104024+0_B10081", + "ProfilTyp": "APB 110 R 400/67,5° – 339/508 mit TEF Innen", + "Radius": 400, + "KurvenWinkel": 67.5, + "Gruppe_width_mm":527.258, + "Gruppe_height_mm":368.405, + "OFBogen_center_line_width_mm": 507.820, + "OFBogen_center_line_height_mm": 339.315, + "TEFBogen_center_line_width_mm": 306.339, + "TEFBogen_center_line_height_mm": 198.675, + "OFBogen_CP1_x_mm":0, + "TEFBogen_CP1_x_mm":76.402, + "OFBogen_CP1_y_mm":21.040, + "TEFBogen_CP1_y_mm":121.049, + "SivasnrTEF": "0_B10081", + "Antriebsart":1 + }, + { + "Sivasnr": "821104027+0_B10080", + "ProfilTyp": "APB 110 R 550/67,5° – 488/778 mit TEF Innen", + "Radius": 550, + "KurvenWinkel": 67.5, + "Gruppe_width_mm":768.095, + "Gruppe_height_mm":559.396, + "OFBogen_center_line_width_mm": 748.658, + "OFBogen_center_line_height_mm": 530.305, + "TEFBogen_center_line_width_mm": 469.752, + "TEFBogen_center_line_height_mm": 353.635, + "OFBogen_CP1_x_mm":0, + "TEFBogen_CP1_x_mm":138.902, + "OFBogen_CP1_y_mm":21.040, + "TEFBogen_CP1_y_mm":121.050, + "SivasnrTEF": "0_B10080", + "Antriebsart":1 + } +] \ No newline at end of file diff --git a/SVGs/Omniflo/python/TEFBogen/1_TEF_Boegen_input_processed_output.json b/SVGs/Omniflo/python/TEFBogen/1_TEF_Boegen_input_processed_output.json new file mode 100644 index 0000000..633129a --- /dev/null +++ b/SVGs/Omniflo/python/TEFBogen/1_TEF_Boegen_input_processed_output.json @@ -0,0 +1,506 @@ +[ + { + "Sivasnr": "821104033+0_B10040", + "ProfilTyp": "APB 110 R 630/90° – 800/800 mit TEF Aussen", + "Radius": 630.0, + "KurvenWinkel": 90.0, + "Gruppe_width_mm": 931.3, + "Gruppe_height_mm": 931.3, + "OFBogen_center_line_width_mm": 800.0, + "OFBogen_center_line_height_mm": 800.0, + "TEFBogen_center_line_width_mm": 900.0, + "TEFBogen_center_line_height_mm": 900.0, + "OFBogen_CP1_x_mm": 0.0, + "TEFBogen_CP1_x_mm": 0.0, + "OFBogen_CP1_y_mm": 131.3, + "TEFBogen_CP1_y_mm": 31.3, + "SivasnrTEF": "0_B10040", + "Antriebsart": 1, + "OFBogen_CP2_x_mm": 800.0, + "TEFBogen_CP2_x_mm": 900.0, + "OFBogen_CP2_y_mm": 931.3, + "TEFBogen_CP2_y_mm": 931.3, + "Gruppe_width_px": 3519.848, + "Gruppe_height_px": 3519.848, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 1000.0, + "connectionPoints": [ + { + "id": "cp1", + "x": 0.0, + "y": 140.986, + "direction": 270.0, + "linkClass": "Omniflo" + }, + { + "id": "cp2", + "x": 859.014, + "y": 1000.0, + "direction": 180.0, + "linkClass": "Omniflo" + }, + { + "id": "cp3", + "x": 0.0, + "y": 33.609, + "direction": 270.0, + "linkClass": "OmnifloTEF" + }, + { + "id": "cp4", + "x": 966.391, + "y": 1000.0, + "direction": 180.0, + "linkClass": "OmnifloTEF" + } + ] + }, + { + "Sivasnr": "821104033+0_B10050", + "ProfilTyp": "APB 110 R 630/90° – 800/800 mit TEF Innen", + "Radius": 630.0, + "KurvenWinkel": 90.0, + "Gruppe_width_mm": 821.04, + "Gruppe_height_mm": 821.04, + "OFBogen_center_line_width_mm": 800.0, + "OFBogen_center_line_height_mm": 800.0, + "TEFBogen_center_line_width_mm": 700.0, + "TEFBogen_center_line_height_mm": 700.0, + "OFBogen_CP1_x_mm": 0.0, + "TEFBogen_CP1_x_mm": 0.0, + "OFBogen_CP1_y_mm": 21.04, + "TEFBogen_CP1_y_mm": 121.04, + "SivasnrTEF": "0_B10050", + "Antriebsart": 1, + "OFBogen_CP2_x_mm": 800.0, + "TEFBogen_CP2_x_mm": 700.0, + "OFBogen_CP2_y_mm": 821.04, + "TEFBogen_CP2_y_mm": 821.04, + "Gruppe_width_px": 3103.121, + "Gruppe_height_px": 3103.121, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 1000.0, + "connectionPoints": [ + { + "id": "cp1", + "x": 0.0, + "y": 25.626, + "direction": 270.0, + "linkClass": "Omniflo" + }, + { + "id": "cp2", + "x": 974.374, + "y": 1000.0, + "direction": 180.0, + "linkClass": "Omniflo" + }, + { + "id": "cp3", + "x": 0.0, + "y": 147.423, + "direction": 270.0, + "linkClass": "OmnifloTEF" + }, + { + "id": "cp4", + "x": 852.577, + "y": 1000.0, + "direction": 180.0, + "linkClass": "OmnifloTEF" + } + ] + }, + { + "Sivasnr": "821104025+0_B10090", + "ProfilTyp": "APB 110 R 550/22,5° – 84/522 mit TEF Innen", + "Radius": 550.0, + "KurvenWinkel": 22.5, + "Gruppe_width_mm": 537.544, + "Gruppe_height_mm": 232.057, + "OFBogen_center_line_width_mm": 514.491, + "OFBogen_center_line_height_mm": 122.23, + "TEFBogen_center_line_width_mm": 412.692, + "TEFBogen_center_line_height_mm": 82.09, + "OFBogen_CP1_x_mm": 15.002, + "TEFBogen_CP1_x_mm": 0.0, + "OFBogen_CP1_y_mm": 21.04, + "TEFBogen_CP1_y_mm": 121.049, + "SivasnrTEF": "0_B10090", + "Antriebsart": 1, + "OFBogen_CP2_x_mm": 529.493, + "TEFBogen_CP2_x_mm": 412.692, + "OFBogen_CP2_y_mm": 143.27, + "TEFBogen_CP2_y_mm": 203.139, + "Gruppe_width_px": 2031.648, + "Gruppe_height_px": 877.059, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 433.588, + "connectionPoints": [ + { + "id": "cp1", + "x": 27.908, + "y": 90.272, + "direction": 270.0, + "linkClass": "Omniflo" + }, + { + "id": "cp2", + "x": 985.023, + "y": 614.701, + "direction": 112.5, + "linkClass": "Omniflo" + }, + { + "id": "cp3", + "x": 0.0, + "y": 519.362, + "direction": 270.0, + "linkClass": "OmnifloTEF" + }, + { + "id": "cp4", + "x": 767.736, + "y": 871.57, + "direction": 112.5, + "linkClass": "OmnifloTEF" + } + ] + }, + { + "Sivasnr": "821104025+0_B10091", + "ProfilTyp": "APB 110 R 550/22,5° – 84/522 mit TEF Aussen", + "Radius": 550.0, + "KurvenWinkel": 22.5, + "Gruppe_width_mm": 655.564, + "Gruppe_height_mm": 272.978, + "OFBogen_center_line_width_mm": 514.491, + "OFBogen_center_line_height_mm": 122.23, + "TEFBogen_center_line_width_mm": 643.589, + "TEFBogen_center_line_height_mm": 125.683, + "OFBogen_CP1_x_mm": 100.867, + "TEFBogen_CP1_x_mm": 0.0, + "OFBogen_CP1_y_mm": 131.31, + "TEFBogen_CP1_y_mm": 31.3, + "SivasnrTEF": "0_B10091", + "Antriebsart": 2, + "OFBogen_CP2_x_mm": 615.358, + "TEFBogen_CP2_x_mm": 643.589, + "OFBogen_CP2_y_mm": 253.54, + "TEFBogen_CP2_y_mm": 156.983, + "Gruppe_width_px": 2477.704, + "Gruppe_height_px": 1031.72, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 418.291, + "connectionPoints": [ + { + "id": "cp1", + "x": 153.863, + "y": 478.855, + "direction": 270.0, + "linkClass": "Omniflo" + }, + { + "id": "cp2", + "x": 938.67, + "y": 924.598, + "direction": 112.5, + "linkClass": "Omniflo" + }, + { + "id": "cp3", + "x": 0.0, + "y": 114.143, + "direction": 270.0, + "linkClass": "OmnifloTEF" + }, + { + "id": "cp4", + "x": 981.733, + "y": 572.478, + "direction": 112.5, + "linkClass": "OmnifloTEF" + } + ] + }, + { + "Sivasnr": "821104026+0_B10071", + "ProfilTyp": "APB 110 R 550/45° – 232/610 mit TEF Innen", + "Radius": 550.0, + "KurvenWinkel": 45.0, + "Gruppe_width_mm": 610.142, + "Gruppe_height_mm": 308.217, + "OFBogen_center_line_width_mm": 595.265, + "OFBogen_center_line_height_mm": 265.998, + "TEFBogen_center_line_width_mm": 398.432, + "TEFBogen_center_line_height_mm": 165.036, + "OFBogen_CP1_x_mm": 0.0, + "TEFBogen_CP1_x_mm": 54.446, + "OFBogen_CP1_y_mm": 21.04, + "TEFBogen_CP1_y_mm": 121.049, + "SivasnrTEF": "0_B10071", + "Antriebsart": 1, + "OFBogen_CP2_x_mm": 595.265, + "TEFBogen_CP2_x_mm": 452.878, + "OFBogen_CP2_y_mm": 287.038, + "TEFBogen_CP2_y_mm": 286.085, + "Gruppe_width_px": 2306.032, + "Gruppe_height_px": 1164.906, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 507.046, + "connectionPoints": [ + { + "id": "cp1", + "x": 0.0, + "y": 68.009, + "direction": 270.0, + "linkClass": "Omniflo" + }, + { + "id": "cp2", + "x": 975.617, + "y": 927.815, + "direction": 135.0, + "linkClass": "Omniflo" + }, + { + "id": "cp3", + "x": 89.235, + "y": 391.276, + "direction": 270.0, + "linkClass": "OmnifloTEF" + }, + { + "id": "cp4", + "x": 742.25, + "y": 924.734, + "direction": 135.0, + "linkClass": "OmnifloTEF" + } + ] + }, + { + "Sivasnr": "821104031+0_B10060", + "ProfilTyp": "APB 110 R 630/45° – 400/825 mit TEF Aussen", + "Radius": 630.0, + "KurvenWinkel": 45.0, + "Gruppe_width_mm": 958.874, + "Gruppe_height_mm": 446.746, + "OFBogen_center_line_width_mm": 865.614, + "OFBogen_center_line_height_mm": 300.559, + "TEFBogen_center_line_width_mm": 936.741, + "TEFBogen_center_line_height_mm": 329.985, + "OFBogen_CP1_x_mm": 0.276, + "TEFBogen_CP1_x_mm": 0.0, + "OFBogen_CP1_y_mm": 131.31, + "TEFBogen_CP1_y_mm": 31.3, + "SivasnrTEF": "0_B10060", + "Antriebsart": 2, + "OFBogen_CP2_x_mm": 865.89, + "TEFBogen_CP2_x_mm": 936.741, + "OFBogen_CP2_y_mm": 431.869, + "TEFBogen_CP2_y_mm": 361.285, + "Gruppe_width_px": 3624.064, + "Gruppe_height_px": 1688.477, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 467.797, + "connectionPoints": [ + { + "id": "cp1", + "x": 0.288, + "y": 292.738, + "direction": 270.0, + "linkClass": "Omniflo" + }, + { + "id": "cp2", + "x": 903.028, + "y": 962.793, + "direction": 135.0, + "linkClass": "Omniflo" + }, + { + "id": "cp3", + "x": 0.0, + "y": 69.779, + "direction": 270.0, + "linkClass": "OmnifloTEF" + }, + { + "id": "cp4", + "x": 976.918, + "y": 805.436, + "direction": 135.0, + "linkClass": "OmnifloTEF" + } + ] + }, + { + "Sivasnr": "821104031+0_B10070", + "ProfilTyp": "APB 110 R 630/45° – 400/825 mit TEF Innen", + "Radius": 630.0, + "KurvenWinkel": 45.0, + "Gruppe_width_mm": 880.942, + "Gruppe_height_mm": 414.496, + "OFBogen_center_line_width_mm": 865.614, + "OFBogen_center_line_height_mm": 300.559, + "TEFBogen_center_line_width_mm": 759.396, + "TEFBogen_center_line_height_mm": 271.313, + "OFBogen_CP1_x_mm": 0.453, + "TEFBogen_CP1_x_mm": 0.0, + "OFBogen_CP1_y_mm": 21.04, + "TEFBogen_CP1_y_mm": 121.049, + "SivasnrTEF": "0_B10070", + "Antriebsart": 1, + "OFBogen_CP2_x_mm": 866.067, + "TEFBogen_CP2_x_mm": 759.396, + "OFBogen_CP2_y_mm": 321.599, + "TEFBogen_CP2_y_mm": 392.362, + "Gruppe_width_px": 3329.52, + "Gruppe_height_px": 1566.588, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 472.404, + "connectionPoints": [ + { + "id": "cp1", + "x": 0.514, + "y": 50.557, + "direction": 270.0, + "linkClass": "Omniflo" + }, + { + "id": "cp2", + "x": 983.115, + "y": 772.777, + "direction": 135.0, + "linkClass": "Omniflo" + }, + { + "id": "cp3", + "x": 0.0, + "y": 290.871, + "direction": 270.0, + "linkClass": "OmnifloTEF" + }, + { + "id": "cp4", + "x": 862.028, + "y": 942.814, + "direction": 135.0, + "linkClass": "OmnifloTEF" + } + ] + }, + { + "Sivasnr": "821104024+0_B10081", + "ProfilTyp": "APB 110 R 400/67,5° – 339/508 mit TEF Innen", + "Radius": 400.0, + "KurvenWinkel": 67.5, + "Gruppe_width_mm": 527.258, + "Gruppe_height_mm": 368.405, + "OFBogen_center_line_width_mm": 507.82, + "OFBogen_center_line_height_mm": 339.315, + "TEFBogen_center_line_width_mm": 306.339, + "TEFBogen_center_line_height_mm": 198.675, + "OFBogen_CP1_x_mm": 0.0, + "TEFBogen_CP1_x_mm": 76.402, + "OFBogen_CP1_y_mm": 21.04, + "TEFBogen_CP1_y_mm": 121.049, + "SivasnrTEF": "0_B10081", + "Antriebsart": 1, + "OFBogen_CP2_x_mm": 507.82, + "TEFBogen_CP2_x_mm": 382.741, + "OFBogen_CP2_y_mm": 360.355, + "TEFBogen_CP2_y_mm": 319.724, + "Gruppe_width_px": 1992.772, + "Gruppe_height_px": 1392.387, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 700.609, + "connectionPoints": [ + { + "id": "cp1", + "x": 0.0, + "y": 56.957, + "direction": 270.0, + "linkClass": "Omniflo" + }, + { + "id": "cp2", + "x": 963.134, + "y": 975.51, + "direction": 157.5, + "linkClass": "Omniflo" + }, + { + "id": "cp3", + "x": 144.904, + "y": 327.689, + "direction": 270.0, + "linkClass": "OmnifloTEF" + }, + { + "id": "cp4", + "x": 725.908, + "y": 865.519, + "direction": 157.5, + "linkClass": "OmnifloTEF" + } + ] + }, + { + "Sivasnr": "821104027+0_B10080", + "ProfilTyp": "APB 110 R 550/67,5° – 488/778 mit TEF Innen", + "Radius": 550.0, + "KurvenWinkel": 67.5, + "Gruppe_width_mm": 768.095, + "Gruppe_height_mm": 559.396, + "OFBogen_center_line_width_mm": 748.658, + "OFBogen_center_line_height_mm": 530.305, + "TEFBogen_center_line_width_mm": 469.752, + "TEFBogen_center_line_height_mm": 353.635, + "OFBogen_CP1_x_mm": 0.0, + "TEFBogen_CP1_x_mm": 138.902, + "OFBogen_CP1_y_mm": 21.04, + "TEFBogen_CP1_y_mm": 121.05, + "SivasnrTEF": "0_B10080", + "Antriebsart": 1, + "OFBogen_CP2_x_mm": 748.658, + "TEFBogen_CP2_x_mm": 608.654, + "OFBogen_CP2_y_mm": 551.345, + "TEFBogen_CP2_y_mm": 474.685, + "Gruppe_width_px": 2903.015, + "Gruppe_height_px": 2114.237, + "calculated_SVG_width_px": 1000, + "calculated_SVG_height_px": 730.18, + "connectionPoints": [ + { + "id": "cp1", + "x": 0.0, + "y": 37.515, + "direction": 270.0, + "linkClass": "Omniflo" + }, + { + "id": "cp2", + "x": 974.694, + "y": 983.056, + "direction": 157.5, + "linkClass": "Omniflo" + }, + { + "id": "cp3", + "x": 180.84, + "y": 215.834, + "direction": 270.0, + "linkClass": "OmnifloTEF" + }, + { + "id": "cp4", + "x": 792.42, + "y": 846.37, + "direction": 157.5, + "linkClass": "OmnifloTEF" + } + ] + } +] \ No newline at end of file diff --git a/SVGs/Omniflo/python/TEFBogen/1_process_TEFBogen_json.py b/SVGs/Omniflo/python/TEFBogen/1_process_TEFBogen_json.py new file mode 100644 index 0000000..5eabb68 --- /dev/null +++ b/SVGs/Omniflo/python/TEFBogen/1_process_TEFBogen_json.py @@ -0,0 +1,189 @@ +import json +import sys +import os +from datetime import datetime + +def convert_to_float(value): + """Safely convert value to float, return original if conversion fails""" + try: + return float(value) + except (ValueError, TypeError): + return value +def process_json_file(input_file): + # Validate and prepare file paths + input_path = os.path.abspath(input_file) + if not os.path.isfile(input_path): + print(f"Error: Input file not found - {input_path}") + sys.exit(1) + + print(f"Reading file: {input_path}") + + # Read JSON file + try: + with open(input_path, 'r', encoding='utf-8') as f: + data = json.load(f) + except json.JSONDecodeError as e: + print(f"Error: Invalid JSON format in {input_path}") + print(f"Details: {str(e)}") + sys.exit(1) + except Exception as e: + print(f"Error reading file {input_path}: {str(e)}") + sys.exit(1) + + # Process each item in the JSON array + for i, item in enumerate(data): + print(f"\nProcessing item {i+1}: {item.get('Sivasnr', 'Unknown')}") + + # Convert numerical values to float + for key in item: + if isinstance(item[key], (int, float, str)) and any(x in key.lower() for x in ['mm', 'width', 'height', 'radius', 'winkel']): + item[key] = convert_to_float(item[key]) + + # 1. Add four new attributes and calculate their values + print("\nStep 1: Adding four new attributes with calculations") + + # OFBogen_CP2_x_mm + of_cp2_x = float(item["OFBogen_CP1_x_mm"]) + float(item["OFBogen_center_line_width_mm"]) + item["OFBogen_CP2_x_mm"] = round(of_cp2_x, 3) + print(f"Added OFBogen_CP2_x_mm: {item['OFBogen_CP2_x_mm']}") + + # TEFBogen_CP2_x_mm + tef_cp2_x = float(item["TEFBogen_CP1_x_mm"]) + float(item["TEFBogen_center_line_width_mm"]) + item["TEFBogen_CP2_x_mm"] = round(tef_cp2_x, 3) + print(f"Added TEFBogen_CP2_x_mm: {item['TEFBogen_CP2_x_mm']}") + + # OFBogen_CP2_y_mm + of_cp2_y = float(item["OFBogen_CP1_y_mm"]) + float(item["OFBogen_center_line_height_mm"]) + item["OFBogen_CP2_y_mm"] = round(of_cp2_y, 3) + print(f"Added OFBogen_CP2_y_mm: {item['OFBogen_CP2_y_mm']}") + + # TEFBogen_CP2_y_mm + tef_cp2_y = float(item["TEFBogen_CP1_y_mm"]) + float(item["TEFBogen_center_line_height_mm"]) + item["TEFBogen_CP2_y_mm"] = round(tef_cp2_y, 3) + print(f"Added TEFBogen_CP2_y_mm: {item['TEFBogen_CP2_y_mm']}") + + # 2. Calculate pixel dimensions and SVG dimensions + print("\nStep 2: Calculating pixel and SVG dimensions") + + # Calculate Gruppe_width_px and Gruppe_height_px + item["Gruppe_width_px"] = round(float(item["Gruppe_width_mm"]) * 3.7795, 3) + item["Gruppe_height_px"] = round(float(item["Gruppe_height_mm"]) * 3.7795, 3) + print(f"Calculated Gruppe_width_px: {item['Gruppe_width_px']}") + print(f"Calculated Gruppe_height_px: {item['Gruppe_height_px']}") + + # Compare width and height to determine scaling + if float(item["Gruppe_width_mm"]) > float(item["Gruppe_height_mm"]): + print("Width is larger, setting calculated_SVG_width to 1000px") + scale = round(1000 / float(item["Gruppe_width_mm"]), 6) + item["calculated_SVG_width_px"] = 1000 + item["calculated_SVG_height_px"] = round(float(item["Gruppe_height_mm"]) * scale+3.7795/2, 3) + scale_RD_H = round(1000 / float(item["calculated_SVG_height_px"]), 6) + scale_RD_W = 1 + elif float(item["Gruppe_width_mm"]) == float(item["Gruppe_height_mm"]): + print("Width =Height") + scale = round(1000 / float(item["Gruppe_width_mm"]), 6) + item["calculated_SVG_width_px"] = 1000 + item["calculated_SVG_height_px"] = round(float(item["Gruppe_height_mm"]) * scale, 3) + scale_RD_H = round(1000 / float(item["calculated_SVG_height_px"]), 6) + scale_RD_W = 1 + else: + print("Height is larger, setting calculated_SVG_height to 1000px") + scale = round(1000 / float(item["Gruppe_height_mm"]), 6) + item["calculated_SVG_height_px"] = 1000 + item["calculated_SVG_width_px"] = round(float(item["Gruppe_width_mm"]) * scale+3.7795/2, 3) + scale_RD_W = round(1000 / float(item["calculated_SVG_width_px"]), 6) + scale_RD_H = 1 + + print(f"Calculated scale: {scale}") + print(f"Calculated calculated_SVG_width_px: {item['calculated_SVG_width_px']}") + print(f"Calculated calculated_SVG_height_px: {item['calculated_SVG_height_px']}") + print(f"Calculated scale_RD_W: {scale_RD_W}") + print(f"Calculated scale_RD_H: {scale_RD_H}") + + # 3. Create connectionPoints array + print("\nStep 3: Creating connectionPoints array") + + connection_points = [] + + # CP1 + cp1_x = round(float(item["OFBogen_CP1_x_mm"]) * scale * scale_RD_W, 3) + cp1_y = round(float(item["OFBogen_CP1_y_mm"]) * scale * scale_RD_H, 3) + cp1 = { + "id": "cp1", + "x": cp1_x, + "y": cp1_y, + "direction": 270.0, + "linkClass": "Omniflo" + } + connection_points.append(cp1) + print(f"Created CP1: x={cp1_x}, y={cp1_y}, direction=270.0, linkClass=Omniflo") + + # CP2 + cp2_x = round(float(item["OFBogen_CP2_x_mm"]) * scale * scale_RD_W, 3) + cp2_y = round(float(item["OFBogen_CP2_y_mm"]) * scale * scale_RD_H, 3) + cp2_direction = round(90 + float(item["KurvenWinkel"]), 1) + cp2 = { + "id": "cp2", + "x": cp2_x, + "y": cp2_y, + "direction": cp2_direction, + "linkClass": "Omniflo" + } + connection_points.append(cp2) + print(f"Created CP2: x={cp2_x}, y={cp2_y}, direction={cp2_direction}, linkClass=Omniflo") + + # CP3 + cp3_x = round(float(item["TEFBogen_CP1_x_mm"]) * scale * scale_RD_W, 3) + cp3_y = round(float(item["TEFBogen_CP1_y_mm"]) * scale * scale_RD_H, 3) + cp3 = { + "id": "cp3", + "x": cp3_x, + "y": cp3_y, + "direction": 270.0, + "linkClass": "OmnifloTEF" + } + connection_points.append(cp3) + print(f"Created CP3: x={cp3_x}, y={cp3_y}, direction=270.0, linkClass=OmnifloTEF") + + # CP4 + cp4_x = round(float(item["TEFBogen_CP2_x_mm"]) * scale * scale_RD_W, 3) + cp4_y = round(float(item["TEFBogen_CP2_y_mm"]) * scale * scale_RD_H, 3) + cp4_direction = round(90 + float(item["KurvenWinkel"]), 1) + cp4 = { + "id": "cp4", + "x": cp4_x, + "y": cp4_y, + "direction": cp4_direction, + "linkClass": "OmnifloTEF" + } + connection_points.append(cp4) + print(f"Created CP4: x={cp4_x}, y={cp4_y}, direction={cp4_direction}, linkClass=OmnifloTEF") + + item["connectionPoints"] = connection_points + + # Prepare output path + output_dir = os.path.dirname(input_path) or '.' # Handle case when no directory in path + base_name = os.path.splitext(os.path.basename(input_path))[0] + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + output_path = os.path.join(output_dir, f"{base_name}_processed_output.json") + + # Save processed JSON file + try: + with open(output_path, 'w', encoding='utf-8') as f: + json.dump(data, f, indent=2, ensure_ascii=False) + print(f"\nProcessing complete! Results saved to new file: {output_path}") + print(f"Original file remains unchanged: {input_path}") + except Exception as e: + print(f"\nError saving processed file: {str(e)}") + sys.exit(1) + + +if __name__ == "__main__": + try: + if len(sys.argv) != 2: + raise ValueError("请提供输入文件路径") + input_file = sys.argv[1] + process_json_file(input_file) + except Exception as e: + print(f"错误详情: {str(e)}", file=sys.stderr) + sys.exit(1) diff --git a/SVGs/Omniflo/python/TEFBogen/2_update_props_TEF_Boegen_from_json.py b/SVGs/Omniflo/python/TEFBogen/2_update_props_TEF_Boegen_from_json.py new file mode 100644 index 0000000..0e118e1 --- /dev/null +++ b/SVGs/Omniflo/python/TEFBogen/2_update_props_TEF_Boegen_from_json.py @@ -0,0 +1,135 @@ +''' Script Analysis + +This Python script processes JSON and TXT files to update dimensions and connection points in SVG-related data. Here's the main logic: + Input Handling: + Reads a JSON file containing reference data + Processes all TXT files in a specified directory + Data Processing: + Creates a mapping between Sivasnr (from filenames) and JSON data + For each matching TXT file: + Updates width and height based on JSON data (converting mm to px) + Updates connection points (x, y, direction) from JSON data + Preserves the original file structure while updating specific values + Reporting: + Prints detailed change reports to console + Skips files without matching JSON data ''' +import json +import os +import glob +from datetime import datetime + +def process_files(json_file_path, txt_files_dir): + # Create a log file with timestamp + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + log_file_path = os.path.join(txt_files_dir, f"modification_report_TEFBogen_{timestamp}.txt") + + # Read JSON file + with open(json_file_path, 'r', encoding='utf-8') as f: + json_data = json.load(f) + + # Create Sivasnr to JSON data mapping + sivasnr_mapping = {item["Sivasnr"]: item for item in json_data} + + # Prepare report content + report_content = [] + report_content.append(f"Modification Report - {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") + report_content.append("="*50 + "\n") + + # Process all TXT files + for txt_file_path in glob.glob(os.path.join(txt_files_dir, '*.txt')): + # Extract Sivasnr from filename + sivasnr = os.path.splitext(os.path.basename(txt_file_path))[0] + + # Check if corresponding JSON data exists + if sivasnr in sivasnr_mapping: + json_item = sivasnr_mapping[sivasnr] + + # Read TXT file content (using utf-8-sig to handle BOM) + with open(txt_file_path, 'r', encoding='utf-8-sig') as f: + txt_content = json.load(f) + + # Prepare entry for this file + file_entry = [] + file_entry.append(f"\nProcessing file: {txt_file_path}") + file_entry.append("="*50) + + # Record old values + old_width = txt_content["width"] + old_height = txt_content["height"] + old_cps = {cp["id"]: {"x": cp["x"], "y": cp["y"], "direction": cp["direction"],"linkClass": cp["linkClass"]} + for cp in txt_content["connectionPoints"]} + + # Update width and height + new_width = round(json_item["Gruppe_width_px"], 3) + new_height = round(json_item["Gruppe_height_px"], 3) + txt_content["width"] = new_width + txt_content["height"] = new_height + + # Update connectionPoints + cp_changes = [] + for cp in txt_content["connectionPoints"]: + cp_id = cp["id"] + # Find corresponding connection point in JSON data + json_cp = next((item for item in json_item["connectionPoints"] if item["id"] == cp_id), None) + if json_cp: + # Record old values + old_x = cp["x"] + old_y = cp["y"] + old_dir = cp["direction"] + old_linkClass = cp["linkClass"] + # Update values + cp["x"] = json_cp["x"] + cp["y"] = json_cp["y"] + cp["direction"] = json_cp["direction"] + cp["linkClass"] = json_cp["linkClass"] + # Record changes + cp_changes.append({ + "id": cp_id, + "x": (old_x, cp["x"]), + "y": (old_y, cp["y"]), + "direction": (old_dir, cp["direction"]), + "linkClass": (old_linkClass, cp["linkClass"]) + }) + + # Write back to TXT file + with open(txt_file_path, 'w', encoding='utf-8') as f: + json.dump(txt_content, f, indent=2, ensure_ascii=False) + + # Add to report + file_entry.append("[Dimension Changes]") + file_entry.append(f"width: {old_width} → {new_width}") + file_entry.append(f"height: {old_height} → {new_height}") + + if cp_changes: + file_entry.append("\n[Connection Point Changes]") + for change in cp_changes: + file_entry.append(f"Connection point {change['id']}:") + file_entry.append(f" x: {change['x'][0]} → {change['x'][1]}") + file_entry.append(f" y: {change['y'][0]} → {change['y'][1]}") + file_entry.append(f" direction: {change['direction'][0]} → {change['direction'][1]}") + file_entry.append(f" linkClass: {change['linkClass'][0]} → {change['linkClass'][1]}") + file_entry.append(f"\nFile {txt_file_path} processed successfully") + file_entry.append("="*50) + + # Add this file's entry to main report + report_content.extend(file_entry) + + # Also print to console + print("\n" + "\n".join(file_entry)) + else: + print(f"\nSkipping file {txt_file_path} (no matching JSON data found)") + + # Write the report file if any changes were made + if len(report_content) > 2: # More than just the header + with open(log_file_path, 'w', encoding='utf-8') as f: + f.write("\n".join(report_content)) + print(f"\nModification report saved to: {log_file_path}") + else: + print("\nNo files were modified - no report generated") + +# Example usage +if __name__ == "__main__": + json_file_path = "1_TEF_Boegen_input_processed_output.json" + txt_files_dir = "C:/Program Files/RuleDesigner/RDConfigurator Fusion/WebApi/Editor2D/SSG/shapes/props" + process_files(json_file_path, txt_files_dir) + print("\nAll files processed!") \ No newline at end of file diff --git a/SVGs/Omniflo/python/TEFBogen/4_TEFBogen_SVG_XML_Modifier_Script.py b/SVGs/Omniflo/python/TEFBogen/4_TEFBogen_SVG_XML_Modifier_Script.py new file mode 100644 index 0000000..09dc438 --- /dev/null +++ b/SVGs/Omniflo/python/TEFBogen/4_TEFBogen_SVG_XML_Modifier_Script.py @@ -0,0 +1,172 @@ +""" +SVG XML Batch Modifier Script + +This script: +1. Reads a JSON array of items +2. For each item, extracts the "Sivasnr" value +3. Locates and modifies the corresponding XML file +4. Provides comprehensive reporting +""" + +import json +import os +import xml.etree.ElementTree as ET +from xml.etree.ElementTree import Element, SubElement, tostring + +def process_xml_file(xml_path): + """ + Process a single XML file with enhanced style handling + Returns modification statistics + """ + try: + tree = ET.parse(xml_path) + root = tree.getroot() + + # Register and handle SVG namespace + ET.register_namespace('', 'http://www.w3.org/2000/svg') + namespaces = {'svg': 'http://www.w3.org/2000/svg'} + + stats = { + 'ffe31b_groups': 0, + 'ec2525_groups': 0, + 'other_groups_processed': 0, + 'elements_modified': 0, + 'modified': False + } + + # Process all group elements + for g in root.findall('.//svg:g', namespaces): + stroke = g.get('stroke') + + if stroke == "#ffe31b": + stats['ffe31b_groups'] += 1 + + # Remove group attributes + for attr in ['stroke-width', 'stroke-miterlimit']: + if attr in g.attrib: + del g.attrib[attr] + stats['modified'] = True + + # Set stroke-width for all path children + for child in g.findall('.//svg:path', namespaces): + child.set('stroke-width', '1px') + stats['elements_modified'] += 1 + stats['modified'] = True + + elif stroke == "#ec2525": + stats['ec2525_groups'] += 1 + + # Remove group attributes + for attr in ['stroke', 'stroke-width', 'stroke-linejoin']: + if attr in g.attrib: + del g.attrib[attr] + stats['modified'] = True + + # Modify path children + for child in g.findall('.//svg:path[@stroke-width="1px"]', namespaces): + del child.attrib['stroke-width'] + child.set('style', 'stroke:#ec2525;stroke-width:2px') + stats['elements_modified'] += 1 + stats['modified'] = True + + else: + # Handle groups without specific stroke color + stats['other_groups_processed'] += 1 + + # Process elements with style="stroke:#ec2525;" + for child in g.findall('.//svg:*[@style]', namespaces): + style = child.get('style', '') + if 'stroke:#ec2525;' in style: + # Remove stroke-width if exists + if 'stroke-width' in child.attrib: + del child.attrib['stroke-width'] + stats['modified'] = True + + # Update the style attribute + + child.set('style', 'stroke:#ec2525;stroke-width:2px;') + stats['elements_modified'] += 1 + stats['modified'] = True + + # Save changes if modified + if stats['modified']: + xml_str = ET.tostring(root, encoding='unicode') + xml_str = xml_str.replace('><', '>\n<').replace('', '\n') + + with open(xml_path, 'w', encoding='utf-8') as f: + f.write(xml_str) + + return stats + + except Exception as e: + print(f" Error processing file: {str(e)}") + return None + +def main(): + """ + Main processing function + """ + # Configure paths + json_file_path = "1_TEF_Boegen_input.json" + svg_folder_path = r"C:\Program Files\RuleDesigner\RDConfigurator Fusion\WebApi\Editor2D\SSG\shapes\svg" + + try: + # Read and parse JSON file + with open(json_file_path, 'r', encoding='utf-8') as f: + data = json.load(f) + + # Verify we have a list of items + if not isinstance(data, list): + print("Error: JSON data should be an array of items") + return + + print(f"\nFound {len(data)} items in JSON file") + + # Process each item in the JSON array + for index, item in enumerate(data, 1): + if not isinstance(item, dict): + print(f"\nItem {index}: Not a dictionary, skipping") + continue + + sivasnr = item.get("Sivasnr") + if not sivasnr: + print(f"\nItem {index}: Missing 'Sivasnr' value, skipping") + continue + + print(f"\nProcessing item {index}: Sivasnr = {sivasnr}") + + # Build XML filename and path + xml_filename = f"{sivasnr}.xml" + xml_path = os.path.join(svg_folder_path, xml_filename) + + if not os.path.exists(xml_path): + print(f" XML file not found: {xml_path}") + continue + + print(f" Found XML file: {xml_path}") + + # Process the XML file + stats = process_xml_file(xml_path) + + if stats is None: + print(" Processing failed") + elif stats['modified']: + print(" File successfully modified") + print(f" - #ffe31b groups: {stats['ffe31b_groups']}") + print(f" - #ec2525 groups: {stats['ec2525_groups']}") + print(f" - Elements modified: {stats['elements_modified']}") + else: + print(" No modifications needed") + + print("\nProcessing complete") + + except FileNotFoundError: + print("\nError: JSON file not found") + except json.JSONDecodeError: + print("\nError: Invalid JSON format") + except Exception as e: + print(f"\nUnexpected error: {str(e)}") + +if __name__ == "__main__": + print("SVG XML Batch Modifier - Starting execution") + main() \ No newline at end of file