diff --git a/CAD/OmnifloCAD/OmnifloBogen.dwg b/CAD/OmnifloCAD/OmnifloBogen.dwg index d0d92ca..c3be147 100644 Binary files a/CAD/OmnifloCAD/OmnifloBogen.dwg and b/CAD/OmnifloCAD/OmnifloBogen.dwg differ diff --git a/CAD/OmnifloCAD/TEFBogen.dwg b/CAD/OmnifloCAD/TEFBogen.dwg index 057c4cf..671f119 100644 Binary files a/CAD/OmnifloCAD/TEFBogen.dwg and b/CAD/OmnifloCAD/TEFBogen.dwg differ diff --git a/CAD/OmnifloCAD/TEFBogen/0_B10040_TEFBogen_90_R725_new.dwg b/CAD/OmnifloCAD/TEFBogen/0_B10040_TEFBogen_90_R725_new.dwg new file mode 100644 index 0000000..f20b3ab Binary files /dev/null and b/CAD/OmnifloCAD/TEFBogen/0_B10040_TEFBogen_90_R725_new.dwg differ diff --git a/CAD/OmnifloCAD/TEFBogen/0_B10050_TEFBogen_90_R535_new.dwg b/CAD/OmnifloCAD/TEFBogen/0_B10050_TEFBogen_90_R535_new.dwg new file mode 100644 index 0000000..1371dc2 Binary files /dev/null and b/CAD/OmnifloCAD/TEFBogen/0_B10050_TEFBogen_90_R535_new.dwg differ diff --git a/CAD/OmnifloCAD/TEFBogen/0_B10060_TEFBogen_45_R725_new.dwg b/CAD/OmnifloCAD/TEFBogen/0_B10060_TEFBogen_45_R725_new.dwg new file mode 100644 index 0000000..286f67a Binary files /dev/null and b/CAD/OmnifloCAD/TEFBogen/0_B10060_TEFBogen_45_R725_new.dwg differ diff --git a/CAD/OmnifloCAD/TEFBogen/0_B10070_TEFBogen_45_R535_new.dwg b/CAD/OmnifloCAD/TEFBogen/0_B10070_TEFBogen_45_R535_new.dwg new file mode 100644 index 0000000..1022349 Binary files /dev/null and b/CAD/OmnifloCAD/TEFBogen/0_B10070_TEFBogen_45_R535_new.dwg differ diff --git a/CAD/OmnifloCAD/TEFBogen/0_B10071_TEFBogen_45_R450_new.dwg b/CAD/OmnifloCAD/TEFBogen/0_B10071_TEFBogen_45_R450_new.dwg new file mode 100644 index 0000000..f22488d Binary files /dev/null and b/CAD/OmnifloCAD/TEFBogen/0_B10071_TEFBogen_45_R450_new.dwg differ diff --git a/CAD/OmnifloCAD/TEFBogen/0_B10080_TEFBogen_67_5_R400_new.dwg b/CAD/OmnifloCAD/TEFBogen/0_B10080_TEFBogen_67_5_R400_new.dwg new file mode 100644 index 0000000..22bedaf Binary files /dev/null and b/CAD/OmnifloCAD/TEFBogen/0_B10080_TEFBogen_67_5_R400_new.dwg differ diff --git a/CAD/OmnifloCAD/TEFBogen/0_B10081_TEFBogen_67_5_R250_new.dwg b/CAD/OmnifloCAD/TEFBogen/0_B10081_TEFBogen_67_5_R250_new.dwg new file mode 100644 index 0000000..1e8e230 Binary files /dev/null and b/CAD/OmnifloCAD/TEFBogen/0_B10081_TEFBogen_67_5_R250_new.dwg differ diff --git a/CAD/OmnifloCAD/TEFBogen/0_B10090_TEFBogen_22_5_R450_new.dwg b/CAD/OmnifloCAD/TEFBogen/0_B10090_TEFBogen_22_5_R450_new.dwg new file mode 100644 index 0000000..6d2aeac Binary files /dev/null and b/CAD/OmnifloCAD/TEFBogen/0_B10090_TEFBogen_22_5_R450_new.dwg differ diff --git a/CAD/OmnifloCAD/TEFBogen/0_B10091_TEFBogen_22_5_R650_new.dwg b/CAD/OmnifloCAD/TEFBogen/0_B10091_TEFBogen_22_5_R650_new.dwg new file mode 100644 index 0000000..7318d24 Binary files /dev/null and b/CAD/OmnifloCAD/TEFBogen/0_B10091_TEFBogen_22_5_R650_new.dwg differ diff --git a/Editor2DLibrary/SSG/Init/tef_bögen.json b/Editor2DLibrary/SSG/Init/tef_bögen.json index edf59c2..46bc747 100644 --- a/Editor2DLibrary/SSG/Init/tef_bögen.json +++ b/Editor2DLibrary/SSG/Init/tef_bögen.json @@ -1,62 +1,62 @@ [ { - "Sivasnr": 0_B10040, + "Sivasnr": "0_B10040", "Beschreibung": "TEF Bogen 90° R725", "Radius": 725, "KurvenWinkel": 90, "innen": false }, { - "Sivasnr": 0_B10050, + "Sivasnr": "0_B10050", "Beschreibung": "TEF Bogen 90° R535", "Radius": 535, "KurvenWinkel": 90, "innen": true }, { - "Sivasnr": 0_B10060, + "Sivasnr": "0_B10060", "Beschreibung": "TEF Bogen 45° R725", "Radius": 725, "KurvenWinkel": 45, "innen": false }, { - "Sivasnr": 0_B10070, + "Sivasnr": "0_B10070", "Beschreibung": "TEF Bogen 45° R535", "Radius": 535, "KurvenWinkel": 45, "innen": true }, { - "Sivasnr": 0_B10071, + "Sivasnr": "0_B10071", "Beschreibung": "TEF Bogen 45° R450 für S C Delta 1600", "Radius": 450, "KurvenWinkel": 45, "innen": true }, { - "Sivasnr": 0_B10080, + "Sivasnr": "0_B10080", "Beschreibung": "TEF Bogen 67.5° R400", "Radius": 400, "KurvenWinkel": 67.5, "innen": true }, { - "Sivasnr": 0_B10081, + "Sivasnr": "0_B10081", "Beschreibung": "TEF Bogen 67.5° R250", "Radius": 250, "KurvenWinkel": 67.5, "innen": true }, { - "Sivasnr": 0_B10090, + "Sivasnr": "0_B10090", "Beschreibung": "TEF Bogen 22.5° R450", "Radius": 450, "KurvenWinkel": 22.5, "innen": true }, { - "Sivasnr": 0_B10091, + "Sivasnr": "0_B10091", "Beschreibung": "TEF Bogen 22.5° R650", "Radius": 650, "KurvenWinkel": 22.5, diff --git a/SVGs/Omniflo/TEFBogen/APB_110_R400_67_5_339_821104024_mit_0_B10081_TEFBogen_67_5_R250_new.svg b/SVGs/Omniflo/TEFBogen/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/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/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450_new.svg b/SVGs/Omniflo/TEFBogen/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450_new.svg new file mode 100644 index 0000000..be07236 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/APB_110_R550_22_5_84_821104025_mit_0_B10090_TEFBogen_22_5_R450_new.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/APB_110_R550_22_5_84_821104025_mit_0_B10091_TEFBogen_22_5_R650_new.svg b/SVGs/Omniflo/TEFBogen/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/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/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450_new.svg b/SVGs/Omniflo/TEFBogen/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450_new.svg new file mode 100644 index 0000000..9ca9107 --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/APB_110_R550_45_232_821104026_mit_0_B10071_TEFBogen_45_R450_new.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/APB_110_R550_67_5_432_821104027_mit_0_B10080_TEFBogen_67_5_R400_new.svg b/SVGs/Omniflo/TEFBogen/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/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/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725_new.svg b/SVGs/Omniflo/TEFBogen/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/APB_110_R630_45_400_821104031_mit_0_B10060_TEFBogen_45_R725_new.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535_new.svg b/SVGs/Omniflo/TEFBogen/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/APB_110_R630_45_400_821104031_mit_0_B10070_TEFBogen_45_R535_new.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SVGs/Omniflo/TEFBogen/APB_110_R630_90_800_800_821104033_mit_0_B10040_TEFBogen_90_R725_new.svg b/SVGs/Omniflo/TEFBogen/APB_110_R630_90_800_800_821104033_mit_0_B10040_TEFBogen_90_R725_new.svg new file mode 100644 index 0000000..318033e --- /dev/null +++ b/SVGs/Omniflo/TEFBogen/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/APB_110_R630_90_800_800_821104033_mit_0_B10050_TEFBogen_90_R535_new.svg b/SVGs/Omniflo/TEFBogen/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/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/1_SVGErfassung_updated_new_input.json b/SVGs/Omniflo/python/1_SVGErfassung_updated_new_input.json deleted file mode 100644 index e8ba356..0000000 --- a/SVGs/Omniflo/python/1_SVGErfassung_updated_new_input.json +++ /dev/null @@ -1,182 +0,0 @@ -[ - { - "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_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_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_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_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":800, - "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/1_SVGErfassung_updated_new_output.json b/SVGs/Omniflo/python/1_SVGErfassung_updated_new_output.json deleted file mode 100644 index a23ed9f..0000000 --- a/SVGs/Omniflo/python/1_SVGErfassung_updated_new_output.json +++ /dev/null @@ -1,222 +0,0 @@ -[ - { - "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_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_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_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_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": 800.0, - "Objekt_height_mm": 1342.08, - "calculated_objekt_width_mm": 800.0, - "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/1_calculate_ture_width_and_height_dimensions_with_profile_width.py b/SVGs/Omniflo/python/1_calculate_ture_width_and_height_dimensions_with_profile_width.py deleted file mode 100644 index bf21eea..0000000 --- a/SVGs/Omniflo/python/1_calculate_ture_width_and_height_dimensions_with_profile_width.py +++ /dev/null @@ -1,151 +0,0 @@ -''' 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"] - 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/2_calculated_px_cps_output.json b/SVGs/Omniflo/python/2_calculated_px_cps_output.json deleted file mode 100644 index f90d6a0..0000000 --- a/SVGs/Omniflo/python/2_calculated_px_cps_output.json +++ /dev/null @@ -1,602 +0,0 @@ -[ - { - "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": 636.239, - "scale_factor": 1.461204, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 48.321, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 978.263, - "y": 965.835, - "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": 698.719, - "scale_factor": 1.896605, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 57.111, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 963.134, - "y": 978.149, - "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": 311.376, - "scale_factor": 1.913722, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 129.312, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 984.593, - "y": 880.54, - "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": 400.204, - "scale_factor": 1.765278, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 92.806, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 973.738, - "y": 934.379, - "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": 436.221, - "scale_factor": 1.811181, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 87.358, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 973.055, - "y": 938.231, - "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": 494.826, - "scale_factor": 1.638963, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 69.689, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 975.617, - "y": 950.727, - "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": 746.001, - "scale_factor": 1.661502, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 46.861, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 967.704, - "y": 982.071, - "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": 728.29, - "scale_factor": 1.301922, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 37.612, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 974.694, - "y": 985.608, - "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": 675.997, - "scale_factor": 1.285962, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 40.025, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 975.004, - "y": 984.686, - "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": 679.71, - "scale_factor": 1.085729, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 33.608, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 977.156, - "y": 1000.0, - "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": 382.145, - "scale_factor": 1.13573, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 62.531, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 983.103, - "y": 955.788, - "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_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": 820.091, - "scale_factor": 1.148053, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 24.155, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 970.546, - "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": 981.334, - "scale_factor": 1.122284, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 23.613, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 975.938, - "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": 956.094, - "scale_factor": 1.097647, - "connectionPoints": [ - { - "id": "cp1", - "x": 0, - "y": 24.155, - "direction": 270.0 - }, - { - "id": "cp2", - "x": 976.906, - "y": 1000.0, - "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": 800.0, - "Objekt_height_mm": 1342.08, - "calculated_objekt_width_mm": 800.0, - "calculated_objekt_height_mm": 1342.08, - "Objekt_width_px": 3023.6, - "Objekt_height_px": 5072.391, - "calculated_SVG_height_px": 1000, - "calculated_SVG_width_px": 599.869, - "scale_factor": 0.745112, - "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/2_calculations_to_standardize_the_dimensions_and_add_connection_points.py b/SVGs/Omniflo/python/2_calculations_to_standardize_the_dimensions_and_add_connection_points.py deleted file mode 100644 index a8a9d6f..0000000 --- a/SVGs/Omniflo/python/2_calculations_to_standardize_the_dimensions_and_add_connection_points.py +++ /dev/null @@ -1,158 +0,0 @@ -''' 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) - - # Determine which dimension is larger - if item["Objekt_width_mm"] >= item["Objekt_height_mm"]: - # Width is larger, set calculated_SVG width to 1000px - 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 - - else: - # Height is larger, set calculated_SVG height to 1000px - scale = round(1000 / item["Objekt_height_mm"], 6) - item["calculated_SVG_height_px"] = 1000 - item["calculated_SVG_width_px"] = round(item["Objekt_width_mm"] * scale + 3.7795, 3) - scale_RD_W = 1000 / item["calculated_SVG_width_px"] - 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 + 3.7795) * 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/3_update_dimensions_and_connection_points_in_props.py b/SVGs/Omniflo/python/3_update_dimensions_and_connection_points_in_props.py deleted file mode 100644 index 78ba82b..0000000 --- a/SVGs/Omniflo/python/3_update_dimensions_and_connection_points_in_props.py +++ /dev/null @@ -1,134 +0,0 @@ -''' 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_{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