die TEFBOGEN sind korrigiert.
@@ -1,92 +1,92 @@
|
||||
{
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 400/67.5 339 mit TEF Innen",
|
||||
"family": "OFBogen",
|
||||
"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,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 56.957,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 963.134,
|
||||
"y": 975.51,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 157.5,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 144.904,
|
||||
"y": 327.689,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 725.908,
|
||||
"y": 865.519,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 157.5,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 400/67.5 339 mit TEF Innen",
|
||||
"family": "OFBogen",
|
||||
"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.785,
|
||||
"height": 1392.3969,
|
||||
"depth": 415.748,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 57.109,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 963.134,
|
||||
"y": 978.146,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 157.5,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 144.905,
|
||||
"y": 328.576,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 725.909,
|
||||
"y": 867.86,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 157.5,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
}
|
||||
@@ -1,92 +1,92 @@
|
||||
{
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 550/22.5 84 mit TEF Innen",
|
||||
"family": "OFBogen",
|
||||
"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,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 27.908,
|
||||
"y": 90.272,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 985.023,
|
||||
"y": 614.701,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 112.5,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 519.362,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 767.736,
|
||||
"y": 871.57,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 112.5,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 550/22.5 84 mit TEF Innen",
|
||||
"family": "OFBogen",
|
||||
"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.662,
|
||||
"height": 877.0624,
|
||||
"depth": 415.748,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 27.908,
|
||||
"y": 90.664,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 985.023,
|
||||
"y": 617.39,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 112.5,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 521.637,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 767.736,
|
||||
"y": 875.387,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 112.5,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
}
|
||||
@@ -1,92 +1,92 @@
|
||||
{
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 550/22.5 84 mit TEF Aussen",
|
||||
"family": "OFBogen",
|
||||
"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,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 153.863,
|
||||
"y": 478.855,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 938.67,
|
||||
"y": 924.598,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 112.5,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 114.143,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 981.733,
|
||||
"y": 572.478,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 112.5,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 550/22.5 84 mit TEF Aussen",
|
||||
"family": "OFBogen",
|
||||
"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.7411,
|
||||
"height": 1031.7267,
|
||||
"depth": 415.748,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 153.862,
|
||||
"y": 481.028,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 938.662,
|
||||
"y": 928.794,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 112.5,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 114.661,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 981.721,
|
||||
"y": 575.076,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 112.5,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
}
|
||||
@@ -1,92 +1,92 @@
|
||||
{
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 550/45 232 mit TEF Innen",
|
||||
"family": "OFBogen",
|
||||
"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,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 68.009,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 975.617,
|
||||
"y": 927.815,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 89.235,
|
||||
"y": 391.276,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 742.25,
|
||||
"y": 924.734,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 550/45 232 mit TEF Innen",
|
||||
"family": "OFBogen",
|
||||
"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.0485,
|
||||
"height": 1164.9165,
|
||||
"depth": 415.748,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 68.261,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 975.617,
|
||||
"y": 931.281,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 89.235,
|
||||
"y": 392.739,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 742.25,
|
||||
"y": 928.192,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
}
|
||||
@@ -1,92 +1,92 @@
|
||||
{
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 550/67.5 432 mit TEF Innen",
|
||||
"family": "OFBogen",
|
||||
"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": 2114.237,
|
||||
"depth": 415.748,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 37.515,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 974.694,
|
||||
"y": 983.056,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 157.5,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 180.84,
|
||||
"y": 215.834,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 792.42,
|
||||
"y": 846.37,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 157.5,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 550/67.5 432 mit TEF Innen",
|
||||
"family": "OFBogen",
|
||||
"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.0378,
|
||||
"height": 2114.2511,
|
||||
"depth": 415.748,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 37.61,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 974.694,
|
||||
"y": 985.607,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 157.5,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 180.84,
|
||||
"y": 216.393,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 792.42,
|
||||
"y": 848.566,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 157.5,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
}
|
||||
@@ -1,92 +1,92 @@
|
||||
{
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 630/45 400 mit TEF Aussen",
|
||||
"family": "OFBogen",
|
||||
"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,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.288,
|
||||
"y": 292.738,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 903.028,
|
||||
"y": 962.793,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 69.779,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 976.918,
|
||||
"y": 805.436,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 630/45 400 mit TEF Aussen",
|
||||
"family": "OFBogen",
|
||||
"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.09,
|
||||
"height": 1688.4881,
|
||||
"depth": 415.748,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.288,
|
||||
"y": 293.926,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 903.028,
|
||||
"y": 966.7,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 70.062,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 976.918,
|
||||
"y": 808.704,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
}
|
||||
@@ -1,92 +1,92 @@
|
||||
{
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 630/45 400 mit TEF Innen",
|
||||
"family": "OFBogen",
|
||||
"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,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.514,
|
||||
"y": 50.557,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 983.115,
|
||||
"y": 772.777,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 290.871,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 862.028,
|
||||
"y": 942.814,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 630/45 400 mit TEF Innen",
|
||||
"family": "OFBogen",
|
||||
"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.5461,
|
||||
"height": 1566.5987,
|
||||
"depth": 415.748,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.513,
|
||||
"y": 50.758,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 983.113,
|
||||
"y": 775.877,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 292.039,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 862.027,
|
||||
"y": 946.6,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 135.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
}
|
||||
@@ -1,92 +1,92 @@
|
||||
{
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 630/90 800/800 mit TEF Aussen",
|
||||
"family": "TEFBogen",
|
||||
"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,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 140.986,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 859.014,
|
||||
"y": 1000.0,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 180.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 33.609,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 966.391,
|
||||
"y": 1000.0,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 180.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
{
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 630/90 800/800 mit TEF Aussen",
|
||||
"family": "TEFBogen",
|
||||
"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.874,
|
||||
"height": 3519.874,
|
||||
"depth": 415.748,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 140.986,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 859.014,
|
||||
"y": 1000.0,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 180.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 33.609,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 966.391,
|
||||
"y": 1000.0,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 180.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
}
|
||||
@@ -1,92 +1,92 @@
|
||||
{
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 630/90 800/800 mit TEF Innen",
|
||||
"family": "TEFBogen",
|
||||
"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,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 25.626,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 974.374,
|
||||
"y": 1000.0,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 180.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 147.423,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 852.577,
|
||||
"y": 1000.0,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 180.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
{
|
||||
"shapeMode": 0,
|
||||
"name": "APB 110 R 630/90 800/800 mit TEF Innen",
|
||||
"family": "TEFBogen",
|
||||
"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.1399,
|
||||
"height": 3103.1399,
|
||||
"depth": 415.748,
|
||||
"behaviour": "(NOSTRETCH)(NOSTRETCHONVIEW)(NOROTATE)(NOROTATEONVIEW)(CONTAINER)(HIDEDIMENSIONS)(HIDEROTATION)(HIDEPIN)(ALWAYSFRONT)(ORIGIN=CENTER)",
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 25.625,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 974.375,
|
||||
"y": 1000.0,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 180.0,
|
||||
"linkClass": "Omniflo",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 147.422,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 852.578,
|
||||
"y": 1000.0,
|
||||
"z": 0.0,
|
||||
"xMin": "",
|
||||
"xMax": "",
|
||||
"xStep": "",
|
||||
"yMin": "",
|
||||
"yMax": "",
|
||||
"yStep": "",
|
||||
"zMin": "",
|
||||
"zMax": "",
|
||||
"zStep": "",
|
||||
"direction": 180.0,
|
||||
"linkClass": "OmnifloTEF",
|
||||
"label": "",
|
||||
"isDimension": true
|
||||
}
|
||||
],
|
||||
"eventClass": "OnDoubleclick,OnPasted,OnInserted,OnLinked,OnRemoved"
|
||||
}
|
||||
@@ -1,36 +1,30 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="rotate(0)">
|
||||
<svg viewBox="0 0 1e3 700.04" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g transform="matrix(3.9046 0 0 3.9046 -1139.8 -1233.5)" fill="none" stroke="#ffe31b" stroke-linecap="square">
|
||||
<path d="m340.75 326.58a193.45 193.45 0 0 1 178.72 119.42" stroke-width="1px" />
|
||||
<path d="m292.39 316.4v20.35" stroke-width="1px" />
|
||||
<path d="m292.39 326.58h48.362" stroke-width="1px" />
|
||||
<path d="m519.47 445.99 18.507 44.681" stroke-width="1px" />
|
||||
<path d="m528.58 494.57 18.801-7.788" stroke-width="1px" />
|
||||
<svg viewBox="0 0 1000.000 698.719" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.287446px" transform="matrix(3.4789 0 0 3.4789 -1281.20 -986.54)" vector-effect="non-scaling-stroke">
|
||||
<path d="M624.263,429.665 A218.069,218.069 0 0,0 422.794,295.048" stroke-width="1px" />
|
||||
<path d="M 368.277 283.578 L 368.277 306.518" stroke-width="1px" />
|
||||
<path d="M 368.277 295.048 L 422.794 295.048" stroke-width="1px" />
|
||||
<path d="M 624.263 429.665 L 645.126 480.033" stroke-width="1px" />
|
||||
</g>
|
||||
<g transform="matrix(3.9046 0 0 3.9046 -1139.8 -1233.5)" fill="none" stroke-linecap="square">
|
||||
<path d="m356.9 359.8a136.04 136.04 0 0 1 125.69 83.981" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m356.9 390.08a105.77 105.77 0 0 1 97.717 65.292" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m356.9 374.94a120.9 120.9 0 0 1 111.7 74.636" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m463.5 476.82 27.97-11.586" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m482.59 443.78 8.883 21.447" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m329.34 359.8h27.566" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m329.34 359.8v30.275" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m329.34 390.08h27.566" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m454.62 455.37 8.883 21.447" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m468.61 449.58 8.883 21.447" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m329.34 374.94h27.566" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<g fill="none" stroke-linecap="butt" transform="matrix(3.4789 0 0 3.4789 -1281.20 -986.54)" vector-effect="non-scaling-stroke">
|
||||
<path d="M582.687,427.176 A153.357,153.357 0 0,0 441.004,332.507" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M551.157,440.237 A119.229,119.229 0 0,0 441.004,366.634" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M566.922,433.706 A136.293,136.293 0 0,0 441.004,349.571" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 561.172 464.413 L 592.702 451.353" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 582.687 427.176 L 592.702 451.353" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 409.929 332.507 L 441.004 332.507" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 409.929 332.507 L 409.929 366.634" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 409.929 366.634 L 441.004 366.634" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 551.157 440.237 L 561.172 464.413" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 566.922 433.706 L 576.937 457.883" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 409.929 349.571 L 441.004 349.571" style="stroke:#FF0000;stroke-width:2px" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.287446px" transform="matrix(3.4789 0 0 3.4789 -1281.20 -986.54)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 634.529 484.422 L 655.723 475.643" stroke-width="1px" />
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.2 KiB |
@@ -1,36 +1,28 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="rotate(0)">
|
||||
<svg viewBox="0 0 1e3 434.19" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g transform="matrix(7.9454 0 0 7.9454 -2977.7 -2991.4)" fill="none" stroke="#ffe31b" stroke-linecap="square">
|
||||
<path d="m404.14 381.64a128.21 128.21 0 0 1 49.064 9.759" stroke-width="1px" />
|
||||
<path d="m378.5 376.74v9.809" stroke-width="1px" />
|
||||
<path d="m378.5 381.64h25.642" stroke-width="1px" />
|
||||
<path d="m453.21 391.4 45.227 18.734" stroke-width="1px" />
|
||||
<path d="m496.56 414.66 3.754-9.062" stroke-width="1px" />
|
||||
<svg viewBox="0 0 1000.000 431.695" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g fill="none" stroke-linecap="butt" transform="matrix(11.9164 0 0 11.9164 -2094.46 -4354.36)" vector-effect="non-scaling-stroke">
|
||||
<path d="M220.292,394.168 A65.3651,65.3651 0 0,0 195.277,389.193" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M224.031,385.14 A75.1378,75.1378 0 0,0 195.277,379.42" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M222.161,389.654 A70.2514,70.2514 0 0,0 195.277,384.306" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 175.763 389.193 L 195.277 389.193" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 175.763 379.42 L 175.763 389.193" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 175.763 379.42 L 195.277 379.42" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 224.031 385.14 L 242.06 392.607" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 238.32 401.636 L 242.06 392.607" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 220.292 394.168 L 238.32 401.636" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 175.763 384.306 L 195.277 384.306" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 222.161 389.654 L 240.19 397.122" style="stroke:#FF0000;stroke-width:2px" />
|
||||
</g>
|
||||
<g transform="matrix(7.9454 0 0 7.9454 -2977.7 -2991.4)" fill="none" stroke-linecap="square">
|
||||
<path d="m404.14 412.25a97.603 97.603 0 0 1 37.351 7.43" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m404.14 397.66a112.2 112.2 0 0 1 42.935 8.54" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m404.14 404.95a104.9 104.9 0 0 1 40.143 7.985" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m375 412.25h29.139" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m375 397.66v14.592" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m375 397.66h29.139" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m447.08 406.2 26.921 11.151" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m468.42 430.83 5.585-13.482" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m441.5 419.68 26.92 11.151" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m375 404.95h29.139" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m444.29 412.94 26.921 11.151" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.083918px" transform="matrix(11.9164 0 0 11.9164 -2094.46 -4354.36)" vector-effect="non-scaling-stroke">
|
||||
<path d="M228.136,375.229 A85.8629,85.8629 0 0,0 195.278,368.693" stroke-width="1px" />
|
||||
<path d="M 178.105 368.693 L 195.278 368.693" stroke-width="1px" />
|
||||
<path d="M 228.136 375.229 L 258.424 387.775" stroke-width="1px" />
|
||||
<path d="M 257.168 390.81 L 259.681 384.741" stroke-width="1px" />
|
||||
<path d="M 178.105 365.409 L 178.105 371.978" stroke-width="1px" />
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.0 KiB |
@@ -1,36 +1,28 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="rotate(0)">
|
||||
<svg viewBox="0 0 1e3 418.97" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g transform="matrix(12.296 0 0 12.296 -8054.7 -4124.2)" fill="none" stroke-linecap="square">
|
||||
<path d="m681.3 335.58a84.15 84.15 0 0 1 32.202 6.409" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m681.3 339.45a80.284 80.284 0 0 1 30.723 6.114" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m681.3 343.31a76.418 76.418 0 0 1 29.244 5.82" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m655.24 343.31 1e-3 -7.732" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m655.24 343.31 26.061 2e-3" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m710.55 349.13 22.707 9.408" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m655.24 339.44 26.062 2e-3" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m712.03 345.56 22.707 9.408" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m655.24 335.58 26.061 2e-3" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m713.51 341.99 22.708 9.407" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m733.26 358.54 2.96-7.144" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<svg viewBox="0 0 1000.000 416.397" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g fill="none" stroke-linecap="butt" transform="matrix(5.4217 0 0 5.4217 -1179.88 -2055.78)" vector-effect="non-scaling-stroke">
|
||||
<path d="M350.34,393.778 A191.683,191.683 0 0,0 276.987,379.181" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M346.969,401.914 A182.877,182.877 0 0,0 276.987,387.987" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M343.599,410.049 A174.071,174.071 0 0,0 276.986,396.794" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 217.621 396.789 L 217.623 379.177" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 217.621 396.789 L 276.986 396.794" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 343.599 410.049 L 395.324 431.479" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 217.622 387.983 L 276.987 387.987" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 346.969 401.914 L 398.694 423.344" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 217.623 379.177 L 276.987 379.181" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 350.34 393.778 L 402.065 415.208" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 395.324 431.479 L 402.065 415.208" style="stroke:#FF0000;stroke-width:2px" />
|
||||
</g>
|
||||
<g transform="matrix(12.296 0 0 12.296 -8054.7 -4124.2)" fill="none" stroke="#ffe31b" stroke-linecap="square">
|
||||
<path d="m681.29 351.8a67.932 67.932 0 0 1 25.997 5.171" stroke-width="1px" />
|
||||
<path d="m667.7 349.2v5.198" stroke-width="1px" />
|
||||
<path d="m667.7 351.8h13.586" stroke-width="1px" />
|
||||
<path d="m707.28 356.97 23.963 9.926" stroke-width="1px" />
|
||||
<path d="m730.25 369.3 1.989-4.802" stroke-width="1px" />
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.184444px" transform="matrix(5.4217 0 0 5.4217 -1179.88 -2055.78)" vector-effect="non-scaling-stroke">
|
||||
<path d="M336.166,427.899 A154.742,154.742 0 0,0 276.948,416.12" stroke-width="1px" />
|
||||
<path d="M 246 416.12 L 276.948 416.12" stroke-width="1px" />
|
||||
<path d="M 336.166 427.899 L 390.751 450.51" stroke-width="1px" />
|
||||
<path d="M 388.486 455.979 L 393.017 445.041" stroke-width="1px" />
|
||||
<path d="M 246 410.201 L 246 422.04" stroke-width="1px" />
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.0 KiB |
@@ -1,27 +1,29 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="rotate(0)">
|
||||
<svg viewBox="0 0 1e3 506.11" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g transform="matrix(25.768 0 0 25.768 -7425.6 -10013)" fill="none" stroke="#ffe31b" stroke-linecap="square">
|
||||
<path d="m294.66 389.98a34.824 34.824 0 0 1 24.624 10.2" stroke-width="1px" />
|
||||
<path d="m288.24 388.65v2.664" stroke-width="1px" />
|
||||
<path d="m288.24 389.98h6.423" stroke-width="1px" />
|
||||
<path d="m319.29 400.18 6.642 6.642" stroke-width="1px" />
|
||||
<path d="m324.99 407.77 1.883-1.884" stroke-width="1px" />
|
||||
</g>
|
||||
<g transform="matrix(25.768 0 0 25.768 -7425.6 -10013)" fill="none" stroke-linecap="square">
|
||||
<path d="m294.65 394.32a30.395 30.395 0 0 1 21.492 8.903" style="stroke:#ec2525;stroke-width:2px" />
|
||||
<path d="m294.65 398.27a26.442 26.442 0 0 1 18.698 7.745" style="stroke:#ec2525;stroke-width:2px" />
|
||||
<path d="m294.65 396.29a28.422 28.422 0 0 1 20.097 8.3245" style="stroke:#ec2525;stroke-width:2px" />
|
||||
<path d="m313.34 406.02 2.0986 2.0986" style="stroke:#ec2525;stroke-width:2px" />
|
||||
<path d="m315.44 408.12 2.7948-2.7958" style="stroke:#ec2525;stroke-width:2px" />
|
||||
<path d="m316.14 403.22 2.0986 2.0986" style="stroke:#ec2525;stroke-width:2px" />
|
||||
<path d="m291.68 394.32h2.9683" style="stroke:#ec2525;stroke-width:2px" />
|
||||
<path d="m291.68 394.32v3.9538" style="stroke:#ec2525;stroke-width:2px" />
|
||||
<path d="m291.68 398.27h2.9683" style="stroke:#ec2525;stroke-width:2px" />
|
||||
<path d="m291.68 396.3 2.9683-3e-3" style="stroke:#ec2525;stroke-width:2px" />
|
||||
<path d="m314.74 404.62 2.0966 2.1016" style="stroke:#ec2525;stroke-width:2px" />
|
||||
</g>
|
||||
|
||||
<svg viewBox="0 0 1000.000 505.158" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.604936px" transform="matrix(1.6531 0 0 1.6531 -346.37 -382.20)" vector-effect="non-scaling-stroke">
|
||||
<path d="M695.707,411.783 A545.308,545.308 0 0,0 310.116,252.066" stroke-width="1px" />
|
||||
<path d="M 209.532 231.206 L 209.532 272.925" stroke-width="1px" />
|
||||
<path d="M 209.532 252.066 L 310.116 252.066" stroke-width="1px" />
|
||||
<path d="M 695.707 411.783 L 799.719 515.794" stroke-width="1px" />
|
||||
</g>
|
||||
<g fill="none" stroke-linecap="butt" transform="matrix(1.6531 0 0 1.6531 -346.37 -382.20)" vector-effect="non-scaling-stroke">
|
||||
<path d="M647.539,459.956 A477.194,477.194 0 0,0 310.112,320.189" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M603.652,503.844 A415.128,415.128 0 0,0 310.112,382.255" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M625.629,481.866 A446.209,446.209 0 0,0 310.112,351.175" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 603.652 503.844 L 636.602 536.794" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 636.602 536.794 L 680.49 492.907" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 647.539 459.956 L 680.49 492.907" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 263.513 320.189 L 310.112 320.189" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 263.513 320.189 L 263.513 382.255" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 263.513 382.255 L 310.112 382.255" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 263.513 351.222 L 310.112 351.175" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 625.629 481.866 L 658.546 514.85" style="stroke:#FF0000;stroke-width:2px" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.604936px" transform="matrix(1.6531 0 0 1.6531 -346.37 -382.20)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 784.969 530.544 L 814.468 501.044" stroke-width="1px" />
|
||||
</g>
|
||||
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 2.2 KiB |
@@ -1,36 +1,30 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="rotate(0)">
|
||||
<svg viewBox="0 0 1e3 729.48" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g transform="matrix(8.0024 0 0 8.0024 -3381.5 -3126.8)" fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-linejoin="miter">
|
||||
<path d="m448.96 394.38a89.088 89.088 0 0 1 82.307 54.995" stroke-width="1px" />
|
||||
<path d="m540.92 481.58 6.297-2.608" stroke-width="1px" />
|
||||
<path d="m531.26 449.38 12.8 30.903" stroke-width="1px" />
|
||||
<path d="m422.8 394.38h26.159" stroke-width="1px" />
|
||||
<path d="m422.8 390.97v6.816" stroke-width="1px" />
|
||||
<svg viewBox="0 0 1000.000 728.287" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.275776px" transform="matrix(3.6261 0 0 3.6261 -1356.58 -1028.29)" vector-effect="non-scaling-stroke">
|
||||
<path d="M614.536,413.034 A197.471,197.471 0 0,0 432.097,291.132" stroke-width="1px" />
|
||||
<path d="M 635.93 484.422 L 649.888 478.641" stroke-width="1px" />
|
||||
<path d="M 614.536 413.034 L 642.909 481.531" stroke-width="1px" />
|
||||
<path d="M 374.112 291.132 L 432.097 291.132" stroke-width="1px" />
|
||||
</g>
|
||||
<g transform="matrix(8.0024 0 0 8.0024 -3381.5 -3126.8)" fill="none" stroke-linecap="square">
|
||||
<path d="m454.52 415.77a60.011 60.011 0 0 1 55.443 37.046" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m454.52 405.58a70.2 70.2 0 0 1 64.856 43.336" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m454.52 410.68a65.106 65.106 0 0 1 60.149 40.191" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m445.41 415.77h9.115" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m509.97 452.82 7.1947 17.369" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m517.16 470.19 9.4134-3.8998" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m519.38 448.92 7.1947 17.368" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m445.41 405.58h9.115" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m445.41 405.58v10.189" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m445.41 410.68h9.115" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m514.67 450.87 7.1947 17.368" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<g fill="none" stroke-linecap="butt" transform="matrix(3.6261 0 0 3.6261 -1356.58 -1028.29)" vector-effect="non-scaling-stroke">
|
||||
<path d="M566.39,419.996 A132.377,132.377 0 0,0 444.09,338.277" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M587.155,411.395 A154.853,154.853 0 0,0 444.09,315.801" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M576.773,415.695 A143.615,143.615 0 0,0 444.09,327.039" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 423.984 338.277 L 444.09 338.277" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 566.39 419.996 L 582.26 458.308" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 582.26 458.308 L 603.025 449.707" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 587.155 411.395 L 603.025 449.707" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 423.984 315.801 L 444.09 315.801" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 423.984 315.801 L 423.984 338.277" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 423.984 327.039 L 444.09 327.039" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 576.773 415.695 L 592.642 454.007" style="stroke:#FF0000;stroke-width:2px" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.275776px" transform="matrix(3.6261 0 0 3.6261 -1356.58 -1028.29)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 374.112 283.578 L 374.112 298.686" stroke-width="1px" />
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.2 KiB |
@@ -1,36 +1,30 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="rotate(0)">
|
||||
<svg viewBox="0 0 1e3 468.34" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g transform="matrix(2.7858 0 0 2.7858 -1004.9 -919.89)" fill="none" stroke="#ffe31b" stroke-linecap="square">
|
||||
<path d="m361.52 379.82h113.32" stroke-width="1px" />
|
||||
<path d="m361.52 371.98v15.68" stroke-width="1px" />
|
||||
<path d="m474.85 379.82a234.77 234.77 0 0 1 166.01 68.764" stroke-width="1px" />
|
||||
<path d="m678.56 497.37 11.088-11.088" stroke-width="1px" />
|
||||
<path d="m640.86 448.58 43.242 43.241" stroke-width="1px" />
|
||||
<svg viewBox="0 0 1000.000 465.907" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.241132px" transform="matrix(4.1471 0 0 4.1471 -1059.76 -1420.27)" vector-effect="non-scaling-stroke">
|
||||
<path d="M444.11,421.897 A158.429,158.429 0 0,0 332.084,375.494" stroke-width="1px" />
|
||||
<path d="M 444.11 421.897 L 473.29 451.077" stroke-width="1px" />
|
||||
</g>
|
||||
<g transform="matrix(2.7858 0 0 2.7858 -1004.9 -919.89)" fill="none" stroke-linecap="square">
|
||||
<path d="m475.62 330.89a281.84 281.84 0 0 1 199.29 82.549" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m475.62 354.22a258.51 258.51 0 0 1 182.8 75.716" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m475.62 342.55a270.18 270.18 0 0 1 191.04 79.132" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m658.42 429.93 43.838 43.838" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m702.26 473.77 16.496-16.495" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m674.91 413.44 43.838 43.839" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m361.42 330.89h114.2" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m361.42 330.89v23.329" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m361.42 354.22h114.2" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m666.67 421.68 43.838 43.839" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m361.42 342.55h114.2" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<g fill="none" stroke-linecap="butt" transform="matrix(4.1471 0 0 4.1471 -1059.76 -1420.27)" vector-effect="non-scaling-stroke">
|
||||
<path d="M467.09,398.179 A190.19,190.19 0 0,0 332.606,342.473" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M455.959,409.31 A174.448,174.448 0 0,0 332.606,358.216" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M461.525,403.744 A182.319,182.319 0 0,0 332.606,350.345" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 455.959 409.31 L 485.542 438.893" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 485.542 438.893 L 496.673 427.761" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 467.09 398.179 L 496.673 427.761" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 255.541 342.473 L 332.606 342.473" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 255.541 342.473 L 255.541 358.216" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 255.541 358.216 L 332.606 358.216" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 461.525 403.744 L 491.107 433.327" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 255.541 350.345 L 332.606 350.345" style="stroke:#FF0000;stroke-width:2px" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.241132px" transform="matrix(4.1471 0 0 4.1471 -1059.76 -1420.27)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 255.611 375.494 L 332.084 375.494" stroke-width="1px" />
|
||||
<path d="M 255.611 370.204 L 255.611 380.785" stroke-width="1px" />
|
||||
<path d="M 469.549 454.818 L 477.031 447.336" stroke-width="1px" />
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.2 KiB |
@@ -1,36 +1,39 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="rotate(0)">
|
||||
<svg viewBox="0 0 1e3 473.18" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g transform="matrix(6.4098 0 0 6.4098 -2358.3 -2331.8)" fill="none" stroke-linecap="square">
|
||||
<path d="m421.59 379.91a99.882 99.882 0 0 1 70.628 29.253" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m421.59 390.95a88.841 88.841 0 0 1 62.821 26.02" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m421.59 385.43a94.362 94.362 0 0 1 66.725 27.636" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m484.41 416.97 20.22 20.218" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m504.63 437.18 7.807-7.807" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m492.22 409.16 20.22 20.219" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m368.25 379.91 53.344-2e-3" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m368.25 379.91 1e-3 11.041" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m368.25 390.95 53.344-2e-3" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m368.25 385.43 53.344-1e-3" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<path d="m488.32 413.06 20.22 20.219" style="stroke:#ec2525;stroke-width:2px;" />
|
||||
<svg viewBox="0 0 1000.000 470.515" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g fill="none" stroke-linecap="butt" transform="matrix(7.1522 0 0 7.1522 -2065.09 -2593.76)" vector-effect="non-scaling-stroke">
|
||||
<path d="M400.292,403.219 A89.8793,89.8793 0 0,0 336.737,376.896" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M393.267,410.244 A79.9439,79.9439 0 0,0 336.738,386.831" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M396.78,406.732 A84.9116,84.9116 0 0,0 336.738,381.863" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M400.292,403.219 A89.8793,89.8793 0 0,0 336.737,376.896" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M393.267,410.244 A79.9439,79.9439 0 0,0 336.738,386.831" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M396.78,406.732 A84.9116,84.9116 0 0,0 336.738,381.863" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 393.267 410.244 L 411.462 428.438" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 411.462 428.438 L 418.487 421.413" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 400.292 403.219 L 418.487 421.413" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 288.735 376.897 L 336.737 376.896" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 288.735 376.897 L 288.735 386.832" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 288.735 386.832 L 336.738 386.831" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 288.735 381.865 L 336.738 381.863" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 396.78 406.732 L 414.975 424.926" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 393.267 410.244 L 411.462 428.438" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 411.462 428.438 L 418.487 421.413" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 400.292 403.219 L 418.487 421.413" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 288.735 376.897 L 336.737 376.896" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 288.735 376.897 L 288.735 386.832" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 288.735 386.832 L 336.738 386.831" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 288.735 381.865 L 336.738 381.863" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 396.78 406.732 L 414.975 424.926" style="stroke:#FF0000;stroke-width:2px" />
|
||||
</g>
|
||||
<g transform="matrix(6.4098 0 0 6.4098 -2358.3 -2331.8)" fill="none" stroke="#ffe31b" stroke-linecap="square">
|
||||
<path d="m421.85 367.79a111.12 111.12 0 0 1 78.572 32.545" stroke-width="1px" />
|
||||
<path d="m518.26 423.42 5.248-5.248" stroke-width="1px" />
|
||||
<path d="m368.22 367.79h53.636" stroke-width="1px" />
|
||||
<path d="m500.42 400.33 20.466 20.466" stroke-width="1px" />
|
||||
<path d="m368.22 364.08v7.422" stroke-width="1px" />
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.139817px" transform="matrix(7.1522 0 0 7.1522 -2065.09 -2593.76)" vector-effect="non-scaling-stroke">
|
||||
<path d="M407.775,395.278 A99.9893,99.9893 0 0,0 337.071,365.992" stroke-width="1px" />
|
||||
<path d="M 288.807 365.992 L 337.071 365.992" stroke-width="1px" />
|
||||
<path d="M 407.775 395.278 L 426.191 413.694" stroke-width="1px" />
|
||||
<path d="M 288.807 362.652 L 288.807 369.331" stroke-width="1px" />
|
||||
<path d="M 423.83 416.056 L 428.552 411.333" stroke-width="1px" />
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 3.1 KiB |
@@ -1,26 +1,30 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="rotate(0)">
|
||||
<svg viewBox="0 0 1e3 1e3" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g transform="matrix(8.497 0 0 8.497 -4283.5 -2426.3)" fill="none" stroke="#ffe31b" stroke-linecap="square">
|
||||
<path d="m525.75 302.3a79.311 79.311 0 0 1 79.311 79.311" stroke-width="1px" />
|
||||
<path d="m504.34 299.66v5.297" stroke-width="1px" />
|
||||
<path d="m602.41 403.02h5.297" stroke-width="1px" />
|
||||
<path d="m605.06 381.62v21.402" stroke-width="1px" />
|
||||
<path d="m504.34 302.3h21.401" stroke-width="1px" />
|
||||
<svg viewBox="0 0 1000.000 1000.000" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.096686px" transform="matrix(10.3428 0 0 10.3428 -2362.02 -3363.78)" vector-effect="non-scaling-stroke">
|
||||
<path d="M311.429,404.267 A65.4056,65.4056 0 0,0 246.023,338.861" stroke-width="1px" />
|
||||
<path d="M 309.244 421.916 L 313.613 421.916" stroke-width="1px" />
|
||||
<path d="M 311.429 404.267 L 311.429 421.916" stroke-width="1px" />
|
||||
<path d="M 228.374 338.861 L 246.023 338.861" stroke-width="1px" />
|
||||
</g>
|
||||
<g transform="matrix(8.497 0 0 8.497 -4283.5 -2426.3)" fill="none" stroke-linecap="square">
|
||||
<path d="m526.38 293.66a87.33 87.33 0 0 1 87.33 87.33" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m526.38 285.78a95.211 95.211 0 0 1 95.211 95.211" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m526.38 289.72a91.271 91.271 0 0 1 91.27 91.271" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m613.71 380.99v22.031" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m613.71 403.02h7.881" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m621.59 380.99v22.031" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m504.34 285.78h22.031" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m504.34 285.78v7.881" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m504.34 293.66h22.031" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m504.34 289.72h22.031" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m617.65 380.99v22.031" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<g fill="none" stroke-linecap="butt" transform="matrix(10.3428 0 0 10.3428 -2362.02 -3363.78)" vector-effect="non-scaling-stroke">
|
||||
<path d="M318.561,403.748 A72.0188,72.0188 0 0,0 246.542,331.729" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M325.06,403.748 A78.5178,78.5178 0 0,0 246.542,325.23" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M321.811,403.748 A75.2683,75.2683 0 0,0 246.542,328.479" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 318.561 403.748 L 318.561 421.916" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 318.561 421.916 L 325.06 421.916" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 325.06 403.748 L 325.06 421.916" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 228.374 325.23 L 246.542 325.23" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 228.374 325.23 L 228.374 331.729" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 228.374 331.729 L 246.542 331.729" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 228.374 328.479 L 246.542 328.479" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 321.811 403.748 L 321.811 421.916" style="stroke:#FF0000;stroke-width:2px" />
|
||||
</g>
|
||||
</svg>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.096686px" transform="matrix(10.3428 0 0 10.3428 -2362.02 -3363.78)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 228.374 336.677 L 228.374 341.045" stroke-width="1px" />
|
||||
</g>
|
||||
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 2.2 KiB |
@@ -1,26 +1,30 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="rotate(0)">
|
||||
<svg viewBox="0 0 1e3 1e3" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g transform="matrix(5.3462 0 0 5.3462 -2252.1 -1673)" fill="none" stroke="#ffe31b" stroke-linecap="square">
|
||||
<path d="m460.2 318.07a142.98 142.98 0 0 1 142.98 142.98" stroke-width="1px" />
|
||||
<path d="m421.62 313.29v9.551" stroke-width="1px" />
|
||||
<path d="m598.41 499.64h9.551" stroke-width="1px" />
|
||||
<path d="m603.18 461.05v38.582" stroke-width="1px" />
|
||||
<path d="m421.62 318.07h38.582" stroke-width="1px" />
|
||||
<svg viewBox="0 0 1000.000 1000.000" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.103411px" transform="matrix(9.6702 0 0 9.6702 -3430.96 -3487.99)" vector-effect="non-scaling-stroke">
|
||||
<path d="M455.56,442.696 A79.3491,79.3491 0 0,0 376.211,363.347" stroke-width="1px" />
|
||||
<path d="M 452.91 464.108 L 458.21 464.108" stroke-width="1px" />
|
||||
<path d="M 455.56 442.696 L 455.56 464.108" stroke-width="1px" />
|
||||
<path d="M 354.799 363.347 L 376.211 363.347" stroke-width="1px" />
|
||||
</g>
|
||||
<g transform="matrix(5.3462 0 0 5.3462 -2252.1 -1673)" fill="none" stroke-linecap="square">
|
||||
<path d="m459.01 347.82a114.14 114.14 0 0 1 114.14 114.14" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m459.01 333.63a128.32 128.32 0 0 1 128.32 128.32" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m459.01 340.72a121.23 121.23 0 0 1 121.23 121.23" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m573.15 461.96v37.389" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m573.15 499.34h14.185" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m587.33 461.96v37.389" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m421.62 333.63h37.389" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m421.62 333.63v14.185" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m421.62 347.82h37.389" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m421.62 340.72h37.389" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<path d="m580.24 461.96v37.389" style="stroke:#ec2525;" stroke-width="1px" />
|
||||
<g fill="none" stroke-linecap="butt" transform="matrix(9.6702 0 0 9.6702 -3430.96 -3487.99)" vector-effect="non-scaling-stroke">
|
||||
<path d="M439.022,443.326 A63.4415,63.4415 0 0,0 375.581,379.885" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M446.907,443.326 A71.3261,71.3261 0 0,0 375.581,372" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M442.965,443.326 A67.3838,67.3838 0 0,0 375.581,375.942" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 439.022 443.326 L 439.022 464.108" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 439.022 464.108 L 446.907 464.108" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 446.907 443.326 L 446.907 464.108" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 354.799 372 L 375.581 372" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 354.799 372 L 354.799 379.885" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 354.799 379.885 L 375.581 379.885" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 354.799 375.942 L 375.581 375.942" style="stroke:#FF0000;stroke-width:2px" />
|
||||
<path d="M 442.965 443.326 L 442.965 464.108" style="stroke:#FF0000;stroke-width:2px" />
|
||||
</g>
|
||||
</svg>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.103411px" transform="matrix(9.6702 0 0 9.6702 -3430.96 -3487.99)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 354.799 360.697 L 354.799 365.997" stroke-width="1px" />
|
||||
</g>
|
||||
|
||||
</svg>
|
||||
</g>
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 2.2 KiB |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="rotate(0)">
|
||||
<svg viewBox="0 0 111.763 1000.000" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<svg viewBox="0 0 596.085 1000.000" preserveAspectRatio="none" position="absolute" overflow="visible">
|
||||
<g fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-width="0.126294px" transform="matrix(7.9180 0 0 7.9180 -3145.15 -2510.31)" vector-effect="non-scaling-stroke">
|
||||
<path d="M411.328,441.351 A61.1669,61.1669 0 0,0 411.328,319.017" stroke-width="1px"/>
|
||||
<path d="M 397.213 441.351 L 411.328 441.351" stroke-width="1px"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 825 B After Width: | Height: | Size: 825 B |
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 111.763 1000.000" version="1.1" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" width="111.763" height="1000.000" space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg viewBox="0 0 596.085 1000.000" version="1.1" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" width="596.085" height="1000.000" space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-width="0.126294px" transform="matrix(7.9180 0 0 7.9180 -3145.15 -2510.31)" vector-effect="non-scaling-stroke">
|
||||
<path d="M411.328,441.351 A61.1669,61.1669 0 0,0 411.328,319.017" />
|
||||
<path d="M 397.213 441.351 L 411.328 441.351" />
|
||||
|
||||
|
Before Width: | Height: | Size: 694 B After Width: | Height: | Size: 694 B |
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1000.000 698.719" version="1.1" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" width="1000.000" height="698.719" space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.287446px" transform="matrix(3.4789 0 0 3.4789 -1281.20 -986.54)" vector-effect="non-scaling-stroke">
|
||||
<path d="M624.263,429.665 A218.069,218.069 0 0,0 422.794,295.048" />
|
||||
<path d="M 368.277 283.578 L 368.277 306.518" />
|
||||
<path d="M 368.277 295.048 L 422.794 295.048" />
|
||||
<path d="M 624.263 429.665 L 645.126 480.033" />
|
||||
</g>
|
||||
<g fill="none" stroke="#FF0000" stroke-linecap="butt" stroke-width="0.287446px" transform="matrix(3.4789 0 0 3.4789 -1281.20 -986.54)" vector-effect="non-scaling-stroke">
|
||||
<path d="M582.687,427.176 A153.357,153.357 0 0,0 441.004,332.507" />
|
||||
<path d="M551.157,440.237 A119.229,119.229 0 0,0 441.004,366.634" />
|
||||
<path d="M566.922,433.706 A136.293,136.293 0 0,0 441.004,349.571" />
|
||||
<path d="M 561.172 464.413 L 592.702 451.353" />
|
||||
<path d="M 582.687 427.176 L 592.702 451.353" />
|
||||
<path d="M 409.929 332.507 L 441.004 332.507" />
|
||||
<path d="M 409.929 332.507 L 409.929 366.634" />
|
||||
<path d="M 409.929 366.634 L 441.004 366.634" />
|
||||
<path d="M 551.157 440.237 L 561.172 464.413" />
|
||||
<path d="M 566.922 433.706 L 576.937 457.883" />
|
||||
<path d="M 409.929 349.571 L 441.004 349.571" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.287446px" transform="matrix(3.4789 0 0 3.4789 -1281.20 -986.54)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 634.529 484.422 L 655.723 475.643" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1000.000 431.695" version="1.1" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" width="1000.000" height="431.695" space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" stroke="#FF0000" stroke-linecap="butt" stroke-width="0.083918px" transform="matrix(11.9164 0 0 11.9164 -2094.46 -4354.36)" vector-effect="non-scaling-stroke">
|
||||
<path d="M220.292,394.168 A65.3651,65.3651 0 0,0 195.277,389.193" />
|
||||
<path d="M224.031,385.14 A75.1378,75.1378 0 0,0 195.277,379.42" />
|
||||
<path d="M222.161,389.654 A70.2514,70.2514 0 0,0 195.277,384.306" />
|
||||
<path d="M 175.763 389.193 L 195.277 389.193" />
|
||||
<path d="M 175.763 379.42 L 175.763 389.193" />
|
||||
<path d="M 175.763 379.42 L 195.277 379.42" />
|
||||
<path d="M 224.031 385.14 L 242.06 392.607" />
|
||||
<path d="M 238.32 401.636 L 242.06 392.607" />
|
||||
<path d="M 220.292 394.168 L 238.32 401.636" />
|
||||
<path d="M 175.763 384.306 L 195.277 384.306" />
|
||||
<path d="M 222.161 389.654 L 240.19 397.122" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.083918px" transform="matrix(11.9164 0 0 11.9164 -2094.46 -4354.36)" vector-effect="non-scaling-stroke">
|
||||
<path d="M228.136,375.229 A85.8629,85.8629 0 0,0 195.278,368.693" />
|
||||
<path d="M 178.105 368.693 L 195.278 368.693" />
|
||||
<path d="M 228.136 375.229 L 258.424 387.775" />
|
||||
<path d="M 257.168 390.81 L 259.681 384.741" />
|
||||
<path d="M 178.105 365.409 L 178.105 371.978" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1000.000 416.397" version="1.1" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" width="1000.000" height="416.397" space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" stroke="#FF0000" stroke-linecap="butt" stroke-width="0.184444px" transform="matrix(5.4217 0 0 5.4217 -1179.88 -2055.78)" vector-effect="non-scaling-stroke">
|
||||
<path d="M350.34,393.778 A191.683,191.683 0 0,0 276.987,379.181" />
|
||||
<path d="M346.969,401.914 A182.877,182.877 0 0,0 276.987,387.987" />
|
||||
<path d="M343.599,410.049 A174.071,174.071 0 0,0 276.986,396.794" />
|
||||
<path d="M 217.621 396.789 L 217.623 379.177" />
|
||||
<path d="M 217.621 396.789 L 276.986 396.794" />
|
||||
<path d="M 343.599 410.049 L 395.324 431.479" />
|
||||
<path d="M 217.622 387.983 L 276.987 387.987" />
|
||||
<path d="M 346.969 401.914 L 398.694 423.344" />
|
||||
<path d="M 217.623 379.177 L 276.987 379.181" />
|
||||
<path d="M 350.34 393.778 L 402.065 415.208" />
|
||||
<path d="M 395.324 431.479 L 402.065 415.208" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.184444px" transform="matrix(5.4217 0 0 5.4217 -1179.88 -2055.78)" vector-effect="non-scaling-stroke">
|
||||
<path d="M336.166,427.899 A154.742,154.742 0 0,0 276.948,416.12" />
|
||||
<path d="M 246 416.12 L 276.948 416.12" />
|
||||
<path d="M 336.166 427.899 L 390.751 450.51" />
|
||||
<path d="M 388.486 455.979 L 393.017 445.041" />
|
||||
<path d="M 246 410.201 L 246 422.04" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1000.000 505.158" version="1.1" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" width="1000.000" height="505.158" space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.604936px" transform="matrix(1.6531 0 0 1.6531 -346.37 -382.20)" vector-effect="non-scaling-stroke">
|
||||
<path d="M695.707,411.783 A545.308,545.308 0 0,0 310.116,252.066" />
|
||||
<path d="M 209.532 231.206 L 209.532 272.925" />
|
||||
<path d="M 209.532 252.066 L 310.116 252.066" />
|
||||
<path d="M 695.707 411.783 L 799.719 515.794" />
|
||||
</g>
|
||||
<g fill="none" stroke="#FF0000" stroke-linecap="butt" stroke-width="0.604936px" transform="matrix(1.6531 0 0 1.6531 -346.37 -382.20)" vector-effect="non-scaling-stroke">
|
||||
<path d="M647.539,459.956 A477.194,477.194 0 0,0 310.112,320.189" />
|
||||
<path d="M603.652,503.844 A415.128,415.128 0 0,0 310.112,382.255" />
|
||||
<path d="M625.629,481.866 A446.209,446.209 0 0,0 310.112,351.175" />
|
||||
<path d="M 603.652 503.844 L 636.602 536.794" />
|
||||
<path d="M 636.602 536.794 L 680.49 492.907" />
|
||||
<path d="M 647.539 459.956 L 680.49 492.907" />
|
||||
<path d="M 263.513 320.189 L 310.112 320.189" />
|
||||
<path d="M 263.513 320.189 L 263.513 382.255" />
|
||||
<path d="M 263.513 382.255 L 310.112 382.255" />
|
||||
<path d="M 263.513 351.222 L 310.112 351.175" />
|
||||
<path d="M 625.629 481.866 L 658.546 514.85" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.604936px" transform="matrix(1.6531 0 0 1.6531 -346.37 -382.20)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 784.969 530.544 L 814.468 501.044" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1000.000 728.287" version="1.1" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" width="1000.000" height="728.287" space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.275776px" transform="matrix(3.6261 0 0 3.6261 -1356.58 -1028.29)" vector-effect="non-scaling-stroke">
|
||||
<path d="M614.536,413.034 A197.471,197.471 0 0,0 432.097,291.132" />
|
||||
<path d="M 635.93 484.422 L 649.888 478.641" />
|
||||
<path d="M 614.536 413.034 L 642.909 481.531" />
|
||||
<path d="M 374.112 291.132 L 432.097 291.132" />
|
||||
</g>
|
||||
<g fill="none" stroke="#FF0000" stroke-linecap="butt" stroke-width="0.275776px" transform="matrix(3.6261 0 0 3.6261 -1356.58 -1028.29)" vector-effect="non-scaling-stroke">
|
||||
<path d="M566.39,419.996 A132.377,132.377 0 0,0 444.09,338.277" />
|
||||
<path d="M587.155,411.395 A154.853,154.853 0 0,0 444.09,315.801" />
|
||||
<path d="M576.773,415.695 A143.615,143.615 0 0,0 444.09,327.039" />
|
||||
<path d="M 423.984 338.277 L 444.09 338.277" />
|
||||
<path d="M 566.39 419.996 L 582.26 458.308" />
|
||||
<path d="M 582.26 458.308 L 603.025 449.707" />
|
||||
<path d="M 587.155 411.395 L 603.025 449.707" />
|
||||
<path d="M 423.984 315.801 L 444.09 315.801" />
|
||||
<path d="M 423.984 315.801 L 423.984 338.277" />
|
||||
<path d="M 423.984 327.039 L 444.09 327.039" />
|
||||
<path d="M 576.773 415.695 L 592.642 454.007" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.275776px" transform="matrix(3.6261 0 0 3.6261 -1356.58 -1028.29)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 374.112 283.578 L 374.112 298.686" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1000.000 465.907" version="1.1" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" width="1000.000" height="465.907" space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.241132px" transform="matrix(4.1471 0 0 4.1471 -1059.76 -1420.27)" vector-effect="non-scaling-stroke">
|
||||
<path d="M444.11,421.897 A158.429,158.429 0 0,0 332.084,375.494" />
|
||||
<path d="M 444.11 421.897 L 473.29 451.077" />
|
||||
</g>
|
||||
<g fill="none" stroke="#FF0000" stroke-linecap="butt" stroke-width="0.241132px" transform="matrix(4.1471 0 0 4.1471 -1059.76 -1420.27)" vector-effect="non-scaling-stroke">
|
||||
<path d="M467.09,398.179 A190.19,190.19 0 0,0 332.606,342.473" />
|
||||
<path d="M455.959,409.31 A174.448,174.448 0 0,0 332.606,358.216" />
|
||||
<path d="M461.525,403.744 A182.319,182.319 0 0,0 332.606,350.345" />
|
||||
<path d="M 455.959 409.31 L 485.542 438.893" />
|
||||
<path d="M 485.542 438.893 L 496.673 427.761" />
|
||||
<path d="M 467.09 398.179 L 496.673 427.761" />
|
||||
<path d="M 255.541 342.473 L 332.606 342.473" />
|
||||
<path d="M 255.541 342.473 L 255.541 358.216" />
|
||||
<path d="M 255.541 358.216 L 332.606 358.216" />
|
||||
<path d="M 461.525 403.744 L 491.107 433.327" />
|
||||
<path d="M 255.541 350.345 L 332.606 350.345" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.241132px" transform="matrix(4.1471 0 0 4.1471 -1059.76 -1420.27)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 255.611 375.494 L 332.084 375.494" />
|
||||
<path d="M 255.611 370.204 L 255.611 380.785" />
|
||||
<path d="M 469.549 454.818 L 477.031 447.336" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1000.000 470.515" version="1.1" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" width="1000.000" height="470.515" space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" stroke="#FF0000" stroke-linecap="butt" stroke-width="0.139817px" transform="matrix(7.1522 0 0 7.1522 -2065.09 -2593.76)" vector-effect="non-scaling-stroke">
|
||||
<path d="M400.292,403.219 A89.8793,89.8793 0 0,0 336.737,376.896" />
|
||||
<path d="M393.267,410.244 A79.9439,79.9439 0 0,0 336.738,386.831" />
|
||||
<path d="M396.78,406.732 A84.9116,84.9116 0 0,0 336.738,381.863" />
|
||||
<path d="M400.292,403.219 A89.8793,89.8793 0 0,0 336.737,376.896" />
|
||||
<path d="M393.267,410.244 A79.9439,79.9439 0 0,0 336.738,386.831" />
|
||||
<path d="M396.78,406.732 A84.9116,84.9116 0 0,0 336.738,381.863" />
|
||||
<path d="M 393.267 410.244 L 411.462 428.438" />
|
||||
<path d="M 411.462 428.438 L 418.487 421.413" />
|
||||
<path d="M 400.292 403.219 L 418.487 421.413" />
|
||||
<path d="M 288.735 376.897 L 336.737 376.896" />
|
||||
<path d="M 288.735 376.897 L 288.735 386.832" />
|
||||
<path d="M 288.735 386.832 L 336.738 386.831" />
|
||||
<path d="M 288.735 381.865 L 336.738 381.863" />
|
||||
<path d="M 396.78 406.732 L 414.975 424.926" />
|
||||
<path d="M 393.267 410.244 L 411.462 428.438" />
|
||||
<path d="M 411.462 428.438 L 418.487 421.413" />
|
||||
<path d="M 400.292 403.219 L 418.487 421.413" />
|
||||
<path d="M 288.735 376.897 L 336.737 376.896" />
|
||||
<path d="M 288.735 376.897 L 288.735 386.832" />
|
||||
<path d="M 288.735 386.832 L 336.738 386.831" />
|
||||
<path d="M 288.735 381.865 L 336.738 381.863" />
|
||||
<path d="M 396.78 406.732 L 414.975 424.926" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.139817px" transform="matrix(7.1522 0 0 7.1522 -2065.09 -2593.76)" vector-effect="non-scaling-stroke">
|
||||
<path d="M407.775,395.278 A99.9893,99.9893 0 0,0 337.071,365.992" />
|
||||
<path d="M 288.807 365.992 L 337.071 365.992" />
|
||||
<path d="M 407.775 395.278 L 426.191 413.694" />
|
||||
<path d="M 288.807 362.652 L 288.807 369.331" />
|
||||
<path d="M 423.83 416.056 L 428.552 411.333" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1000.000 1000.000" version="1.1" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" width="1000.000" height="1000.000" space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.096686px" transform="matrix(10.3428 0 0 10.3428 -2362.02 -3363.78)" vector-effect="non-scaling-stroke">
|
||||
<path d="M311.429,404.267 A65.4056,65.4056 0 0,0 246.023,338.861" />
|
||||
<path d="M 309.244 421.916 L 313.613 421.916" />
|
||||
<path d="M 311.429 404.267 L 311.429 421.916" />
|
||||
<path d="M 228.374 338.861 L 246.023 338.861" />
|
||||
</g>
|
||||
<g fill="none" stroke="#FF0000" stroke-linecap="butt" stroke-width="0.096686px" transform="matrix(10.3428 0 0 10.3428 -2362.02 -3363.78)" vector-effect="non-scaling-stroke">
|
||||
<path d="M318.561,403.748 A72.0188,72.0188 0 0,0 246.542,331.729" />
|
||||
<path d="M325.06,403.748 A78.5178,78.5178 0 0,0 246.542,325.23" />
|
||||
<path d="M321.811,403.748 A75.2683,75.2683 0 0,0 246.542,328.479" />
|
||||
<path d="M 318.561 403.748 L 318.561 421.916" />
|
||||
<path d="M 318.561 421.916 L 325.06 421.916" />
|
||||
<path d="M 325.06 403.748 L 325.06 421.916" />
|
||||
<path d="M 228.374 325.23 L 246.542 325.23" />
|
||||
<path d="M 228.374 325.23 L 228.374 331.729" />
|
||||
<path d="M 228.374 331.729 L 246.542 331.729" />
|
||||
<path d="M 228.374 328.479 L 246.542 328.479" />
|
||||
<path d="M 321.811 403.748 L 321.811 421.916" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.096686px" transform="matrix(10.3428 0 0 10.3428 -2362.02 -3363.78)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 228.374 336.677 L 228.374 341.045" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1000.000 1000.000" version="1.1" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" width="1000.000" height="1000.000" space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.103411px" transform="matrix(9.6702 0 0 9.6702 -3430.96 -3487.99)" vector-effect="non-scaling-stroke">
|
||||
<path d="M455.56,442.696 A79.3491,79.3491 0 0,0 376.211,363.347" />
|
||||
<path d="M 452.91 464.108 L 458.21 464.108" />
|
||||
<path d="M 455.56 442.696 L 455.56 464.108" />
|
||||
<path d="M 354.799 363.347 L 376.211 363.347" />
|
||||
</g>
|
||||
<g fill="none" stroke="#FF0000" stroke-linecap="butt" stroke-width="0.103411px" transform="matrix(9.6702 0 0 9.6702 -3430.96 -3487.99)" vector-effect="non-scaling-stroke">
|
||||
<path d="M439.022,443.326 A63.4415,63.4415 0 0,0 375.581,379.885" />
|
||||
<path d="M446.907,443.326 A71.3261,71.3261 0 0,0 375.581,372" />
|
||||
<path d="M442.965,443.326 A67.3838,67.3838 0 0,0 375.581,375.942" />
|
||||
<path d="M 439.022 443.326 L 439.022 464.108" />
|
||||
<path d="M 439.022 464.108 L 446.907 464.108" />
|
||||
<path d="M 446.907 443.326 L 446.907 464.108" />
|
||||
<path d="M 354.799 372 L 375.581 372" />
|
||||
<path d="M 354.799 372 L 354.799 379.885" />
|
||||
<path d="M 354.799 379.885 L 375.581 379.885" />
|
||||
<path d="M 354.799 375.942 L 375.581 375.942" />
|
||||
<path d="M 442.965 443.326 L 442.965 464.108" />
|
||||
</g>
|
||||
<g fill="none" stroke="rgb(255,255,0)" stroke-linecap="butt" stroke-width="0.103411px" transform="matrix(9.6702 0 0 9.6702 -3430.96 -3487.99)" vector-effect="non-scaling-stroke">
|
||||
<path d="M 354.799 360.697 L 354.799 365.997" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1e3" height="700.04" fill-rule="evenodd" stroke-linejoin="round" version="1.1" viewBox="0 0 1e3 700.04" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(3.9046 0 0 3.9046 -1139.8 -1233.5)" fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-width=".96802">
|
||||
<path d="m340.75 326.58a193.45 193.45 0 0 1 178.72 119.42"/>
|
||||
<path d="m292.39 316.4v20.35"/>
|
||||
<path d="m292.39 326.58h48.362"/>
|
||||
<path d="m519.47 445.99 18.507 44.681"/>
|
||||
<path d="m528.58 494.57 18.801-7.788"/>
|
||||
</g>
|
||||
<g transform="matrix(3.9046 0 0 3.9046 -1139.8 -1233.5)" fill="none" stroke="#ec2525" stroke-linecap="square" stroke-width=".96802">
|
||||
<path d="m356.9 359.8a136.04 136.04 0 0 1 125.69 83.981"/>
|
||||
<path d="m356.9 390.08a105.77 105.77 0 0 1 97.717 65.292"/>
|
||||
<path d="m356.9 374.94a120.9 120.9 0 0 1 111.7 74.636"/>
|
||||
<path d="m463.5 476.82 27.97-11.586"/>
|
||||
<path d="m482.59 443.78 8.883 21.447"/>
|
||||
<path d="m329.34 359.8h27.566"/>
|
||||
<path d="m329.34 359.8v30.275"/>
|
||||
<path d="m329.34 390.08h27.566"/>
|
||||
<path d="m454.62 455.37 8.883 21.447"/>
|
||||
<path d="m468.61 449.58 8.883 21.447"/>
|
||||
<path d="m329.34 374.94h27.566"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1e3" height="434.11" fill-rule="evenodd" stroke-linejoin="round" version="1.1" viewBox="0 0 1e3 434.11" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(7.9452 0 0 7.9452 -2977.5 -2991.4)" fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-width=".47569">
|
||||
<path d="m404.14 381.64a128.21 128.21 0 0 1 49.064 9.759"/>
|
||||
<path d="m378.5 376.74v9.809"/>
|
||||
<path d="m378.5 381.64h25.642"/>
|
||||
<path d="m453.21 391.4 45.227 18.734"/>
|
||||
<path d="m496.56 414.66 3.754-9.062"/>
|
||||
</g>
|
||||
<g transform="matrix(7.9452 0 0 7.9452 -2977.5 -2991.4)" fill="none" stroke="#ec2525" stroke-linecap="square" stroke-width=".47567">
|
||||
<path d="m404.14 412.25a97.6 97.6 0 0 1 37.35 7.4298"/>
|
||||
<path d="m404.14 397.66a112.2 112.2 0 0 1 42.934 8.5398"/>
|
||||
<path d="m404.14 404.95a104.9 104.9 0 0 1 40.142 7.9848"/>
|
||||
<path d="m375 412.25h29.138"/>
|
||||
<path d="m375 397.66v14.592"/>
|
||||
<path d="m375 397.66h29.138"/>
|
||||
<path d="m447.08 406.2 26.92 11.151"/>
|
||||
<path d="m468.42 430.83 5.5848-13.482"/>
|
||||
<path d="m441.5 419.68 26.919 11.151"/>
|
||||
<path d="m375 404.95h29.138"/>
|
||||
<path d="m444.29 412.94 26.92 11.151"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1e3" height="418.97" fill-rule="evenodd" stroke-linejoin="round" version="1.1" viewBox="0 0 1e3 418.97" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(12.296 0 0 12.296 -8054.7 -4124.2)" fill="none" stroke="#ec2525" stroke-linecap="square" stroke-width=".3104">
|
||||
<path d="m681.3 335.58a84.15 84.15 0 0 1 32.202 6.409"/>
|
||||
<path d="m681.3 339.45a80.284 80.284 0 0 1 30.723 6.114"/>
|
||||
<path d="m681.3 343.31a76.418 76.418 0 0 1 29.244 5.82"/>
|
||||
<path d="m655.24 343.31 1e-3 -7.732"/>
|
||||
<path d="m655.24 343.31 26.061 2e-3"/>
|
||||
<path d="m710.55 349.13 22.707 9.408"/>
|
||||
<path d="m655.24 339.44 26.062 2e-3"/>
|
||||
<path d="m712.03 345.56 22.707 9.408"/>
|
||||
<path d="m655.24 335.58 26.061 2e-3"/>
|
||||
<path d="m713.51 341.99 22.708 9.407"/>
|
||||
<path d="m733.26 358.54 2.96-7.144"/>
|
||||
</g>
|
||||
<g transform="matrix(12.296 0 0 12.296 -8054.7 -4124.2)" fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-width=".3104">
|
||||
<path d="m681.29 351.8a67.932 67.932 0 0 1 25.997 5.171"/>
|
||||
<path d="m667.7 349.2v5.198"/>
|
||||
<path d="m667.7 351.8h13.586"/>
|
||||
<path d="m707.28 356.97 23.963 9.926"/>
|
||||
<path d="m730.25 369.3 1.989-4.802"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1e3" height="506.11" fill-rule="evenodd" stroke-linejoin="round" version="1.1" viewBox="0 0 1e3 506.11" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(25.768 0 0 25.768 -7425.6 -10013)" fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-width=".1463">
|
||||
<path d="m294.66 389.98a34.824 34.824 0 0 1 24.624 10.2"/>
|
||||
<path d="m288.24 388.65v2.664"/>
|
||||
<path d="m288.24 389.98h6.423"/>
|
||||
<path d="m319.29 400.18 6.642 6.642"/>
|
||||
<path d="m324.99 407.77 1.883-1.884"/>
|
||||
</g>
|
||||
<g transform="matrix(25.768 0 0 25.768 -7425.6 -10013)" fill="none" stroke="#ec2525" stroke-linecap="square" stroke-width=".14592">
|
||||
<path d="m294.65 394.32a30.395 30.395 0 0 1 21.492 8.903"/>
|
||||
<path d="m294.65 398.27a26.442 26.442 0 0 1 18.698 7.745"/>
|
||||
<path d="m294.65 396.29a28.422 28.422 0 0 1 20.097 8.3245"/>
|
||||
<path d="m313.34 406.02 2.0986 2.0986"/>
|
||||
<path d="m315.44 408.12 2.7948-2.7958"/>
|
||||
<path d="m316.14 403.22 2.0986 2.0986"/>
|
||||
<path d="m291.68 394.32h2.9683"/>
|
||||
<path d="m291.68 394.32v3.9538"/>
|
||||
<path d="m291.68 398.27h2.9683"/>
|
||||
<path d="m291.68 396.3 2.9683-3e-3"/>
|
||||
<path d="m314.74 404.62 2.0966 2.1016"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1e3" height="729.48" fill-rule="evenodd" stroke-linejoin="round" version="1.1" viewBox="0 0 1e3 729.48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(8.0024 0 0 8.0024 -3381.5 -3126.8)" fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-linejoin="miter" stroke-width=".47459">
|
||||
<path d="m448.96 394.38a89.088 89.088 0 0 1 82.307 54.995"/>
|
||||
<path d="m540.92 481.58 6.297-2.608"/>
|
||||
<path d="m531.26 449.38 12.8 30.903"/>
|
||||
<path d="m422.8 394.38h26.159"/>
|
||||
<path d="m422.8 390.97v6.816"/>
|
||||
</g>
|
||||
<g transform="matrix(8.0024 0 0 8.0024 -3381.5 -3126.8)" fill="none" stroke="#ec2525" stroke-linecap="square" stroke-width=".47689">
|
||||
<path d="m454.52 415.77a60.011 60.011 0 0 1 55.443 37.046"/>
|
||||
<path d="m454.52 405.58a70.2 70.2 0 0 1 64.856 43.336"/>
|
||||
<path d="m454.52 410.68a65.106 65.106 0 0 1 60.149 40.191"/>
|
||||
<path d="m445.41 415.77h9.115"/>
|
||||
<path d="m509.97 452.82 7.1947 17.369"/>
|
||||
<path d="m517.16 470.19 9.4134-3.8998"/>
|
||||
<path d="m519.38 448.92 7.1947 17.368"/>
|
||||
<path d="m445.41 405.58h9.115"/>
|
||||
<path d="m445.41 405.58v10.189"/>
|
||||
<path d="m445.41 410.68h9.115"/>
|
||||
<path d="m514.67 450.87 7.1947 17.368"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1e3" height="468.34" fill-rule="evenodd" stroke-linejoin="round" version="1.1" viewBox="0 0 1e3 468.34" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(2.7858 0 0 2.7858 -1004.9 -919.89)" fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-width="1.3551">
|
||||
<path d="m361.52 379.82h113.32"/><path d="m361.52 371.98v15.68"/><path d="m474.85 379.82a234.77 234.77 0 0 1 166.01 68.764"/>
|
||||
<path d="m678.56 497.37 11.088-11.088"/>
|
||||
<path d="m640.86 448.58 43.242 43.241"/>
|
||||
</g>
|
||||
<g transform="matrix(2.7858 0 0 2.7858 -1004.9 -919.89)" fill="none" stroke="#ec2525" stroke-linecap="square" stroke-width="1.3551">
|
||||
<path d="m475.62 330.89a281.84 281.84 0 0 1 199.29 82.549"/>
|
||||
<path d="m475.62 354.22a258.51 258.51 0 0 1 182.8 75.716"/>
|
||||
<path d="m475.62 342.55a270.18 270.18 0 0 1 191.04 79.132"/>
|
||||
<path d="m658.42 429.93 43.838 43.838"/>
|
||||
<path d="m702.26 473.77 16.496-16.495"/>
|
||||
<path d="m674.91 413.44 43.838 43.839"/>
|
||||
<path d="m361.42 330.89h114.2"/>
|
||||
<path d="m361.42 330.89v23.329"/>
|
||||
<path d="m361.42 354.22h114.2"/>
|
||||
<path d="m666.67 421.68 43.838 43.839"/>
|
||||
<path d="m361.42 342.55h114.2"/>
|
||||
</g>
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1e3" height="473.18" fill-rule="evenodd" stroke-linejoin="round" version="1.1" viewBox="0 0 1e3 473.18" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(6.4098 0 0 6.4098 -2358.3 -2331.8)" fill="none" stroke="#ec2525" stroke-linecap="square" stroke-width=".59152">
|
||||
<path d="m421.59 379.91a99.882 99.882 0 0 1 70.628 29.253"/>
|
||||
<path d="m421.59 390.95a88.841 88.841 0 0 1 62.821 26.02"/>
|
||||
<path d="m421.59 385.43a94.362 94.362 0 0 1 66.725 27.636"/>
|
||||
<path d="m484.41 416.97 20.22 20.218"/>
|
||||
<path d="m504.63 437.18 7.807-7.807"/>
|
||||
<path d="m492.22 409.16 20.22 20.219"/>
|
||||
<path d="m368.25 379.91 53.344-2e-3"/>
|
||||
<path d="m368.25 379.91 1e-3 11.041"/>
|
||||
<path d="m368.25 390.95 53.344-2e-3"/>
|
||||
<path d="m368.25 385.43 53.344-1e-3"/>
|
||||
<path d="m488.32 413.06 20.22 20.219"/>
|
||||
</g>
|
||||
<g transform="matrix(6.4098 0 0 6.4098 -2358.3 -2331.8)" fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-width=".59152">
|
||||
<path d="m421.85 367.79a111.12 111.12 0 0 1 78.572 32.545"/>
|
||||
<path d="m518.26 423.42 5.248-5.248"/>
|
||||
<path d="m368.22 367.79h53.636"/>
|
||||
<path d="m500.42 400.33 20.466 20.466"/>
|
||||
<path d="m368.22 364.08v7.422"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1e3" height="1e3" fill-rule="evenodd" version="1.1" viewBox="0 0 1e3 1e3" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(8.497 0 0 8.497 -4283.5 -2426.3)" fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-width=".4469">
|
||||
<path d="m525.75 302.3a79.311 79.311 0 0 1 79.311 79.311"/>
|
||||
<path d="m504.34 299.66v5.297"/>
|
||||
<path d="m602.41 403.02h5.297"/>
|
||||
<path d="m605.06 381.62v21.402"/>
|
||||
<path d="m504.34 302.3h21.401"/>
|
||||
</g>
|
||||
<g transform="matrix(8.497 0 0 8.497 -4283.5 -2426.3)" fill="none" stroke="#ec2525" stroke-linecap="square" stroke-width=".4469">
|
||||
<path d="m526.38 293.66a87.33 87.33 0 0 1 87.33 87.33"/>
|
||||
<path d="m526.38 285.78a95.211 95.211 0 0 1 95.211 95.211"/>
|
||||
<path d="m526.38 289.72a91.271 91.271 0 0 1 91.27 91.271"/>
|
||||
<path d="m613.71 380.99v22.031"/>
|
||||
<path d="m613.71 403.02h7.881"/>
|
||||
<path d="m621.59 380.99v22.031"/>
|
||||
<path d="m504.34 285.78h22.031"/>
|
||||
<path d="m504.34 285.78v7.881"/>
|
||||
<path d="m504.34 293.66h22.031"/>
|
||||
<path d="m504.34 289.72h22.031"/>
|
||||
<path d="m617.65 380.99v22.031"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1e3" height="1e3" fill-rule="evenodd" stroke-linejoin="round" version="1.1" viewBox="0 0 1e3 1e3" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(5.3462 0 0 5.3462 -2252.1 -1673)" fill="none" stroke="#ffe31b" stroke-linecap="square" stroke-width=".70807">
|
||||
<path d="m460.2 318.07a142.98 142.98 0 0 1 142.98 142.98"/>
|
||||
<path d="m421.62 313.29v9.551"/>
|
||||
<path d="m598.41 499.64h9.551"/>
|
||||
<path d="m603.18 461.05v38.582"/>
|
||||
<path d="m421.62 318.07h38.582"/>
|
||||
</g>
|
||||
<g transform="matrix(5.3462 0 0 5.3462 -2252.1 -1673)" fill="none" stroke="#ec2525" stroke-linecap="square" stroke-linejoin="miter" stroke-width=".70696">
|
||||
<path d="m459.01 347.82a114.14 114.14 0 0 1 114.14 114.14"/>
|
||||
<path d="m459.01 333.63a128.32 128.32 0 0 1 128.32 128.32"/>
|
||||
<path d="m459.01 340.72a121.23 121.23 0 0 1 121.23 121.23"/>
|
||||
<path d="m573.15 461.96v37.389"/>
|
||||
<path d="m573.15 499.34h14.185"/>
|
||||
<path d="m587.33 461.96v37.389"/>
|
||||
<path d="m421.62 333.63h37.389"/>
|
||||
<path d="m421.62 333.63v14.185"/>
|
||||
<path d="m421.62 347.82h37.389"/>
|
||||
<path d="m421.62 340.72h37.389"/>
|
||||
<path d="m580.24 461.96v37.389"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="368.277,283.578 368.277,306.518 " />
|
||||
<polyline points="368.277,295.048 422.794,295.048 " />
|
||||
<polyline points="645.126,480.033 624.263,429.665 " />
|
||||
<path d="M624.263,429.665 A218.069,218.069 0 0,0 422.794,295.048 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,0,0)" stroke-width="0.1" >
|
||||
<polyline points="561.172,464.413 592.702,451.353 " />
|
||||
<polyline points="592.702,451.353 582.687,427.176 " />
|
||||
<path d="M582.687,427.176 A153.357,153.357 0 0,0 441.004,332.507 " />
|
||||
<polyline points="441.004,332.507 409.929,332.507 " />
|
||||
<polyline points="409.929,332.507 409.929,366.634 " />
|
||||
<polyline points="409.929,366.634 441.004,366.634 " />
|
||||
<path d="M551.157,440.237 A119.229,119.229 0 0,0 441.004,366.634 " />
|
||||
<polyline points="551.157,440.237 561.172,464.413 " />
|
||||
<polyline points="576.937,457.883 566.922,433.706 " />
|
||||
<path d="M566.922,433.706 A136.293,136.293 0 0,0 441.004,349.571 " />
|
||||
<polyline points="441.004,349.571 409.929,349.571 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="634.529,484.422 655.723,475.643 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,0,0)" stroke-width="0.1" >
|
||||
<path d="M220.292,394.168 A65.3651,65.3651 0 0,0 195.277,389.193 " />
|
||||
<polyline points="195.277,389.193 175.763,389.193 " />
|
||||
<polyline points="175.763,389.193 175.763,379.42 " />
|
||||
<polyline points="175.763,379.42 195.277,379.42 " />
|
||||
<path d="M224.031,385.14 A75.1378,75.1378 0 0,0 195.277,379.42 " />
|
||||
<polyline points="224.031,385.14 242.06,392.607 " />
|
||||
<polyline points="242.06,392.607 238.32,401.636 " />
|
||||
<polyline points="238.32,401.636 220.292,394.168 " />
|
||||
<path d="M222.161,389.654 A70.2514,70.2514 0 0,0 195.277,384.306 " />
|
||||
<polyline points="195.277,384.306 175.763,384.306 " />
|
||||
<polyline points="222.161,389.654 240.19,397.122 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="178.105,368.693 195.278,368.693 " />
|
||||
<polyline points="258.424,387.775 228.136,375.229 " />
|
||||
<path d="M228.136,375.229 A85.8629,85.8629 0 0,0 195.278,368.693 " />
|
||||
<polyline points="257.168,390.81 259.681,384.741 " />
|
||||
<polyline points="178.105,365.409 178.105,371.978 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,0,0)" stroke-width="0.1" >
|
||||
<polyline points="217.621,396.789 217.623,379.177 " />
|
||||
<polyline points="276.986,396.794 217.621,396.789 " />
|
||||
<polyline points="395.324,431.479 343.599,410.049 " />
|
||||
<polyline points="276.987,387.987 217.622,387.983 " />
|
||||
<polyline points="346.969,401.914 398.694,423.344 " />
|
||||
<polyline points="276.987,379.181 217.623,379.177 " />
|
||||
<polyline points="402.065,415.208 350.34,393.778 " />
|
||||
<polyline points="395.324,431.479 402.065,415.208 " />
|
||||
<path d="M350.34,393.778 A191.683,191.683 0 0,0 276.987,379.181 " />
|
||||
<path d="M346.969,401.914 A182.877,182.877 0 0,0 276.987,387.987 " />
|
||||
<path d="M343.599,410.049 A174.071,174.071 0 0,0 276.986,396.794 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="246,416.12 276.948,416.12 " />
|
||||
<polyline points="390.751,450.51 336.166,427.899 " />
|
||||
<polyline points="393.017,445.041 388.486,455.979 " />
|
||||
<path d="M336.166,427.899 A154.742,154.742 0 0,0 276.948,416.12 " />
|
||||
<polyline points="246,410.201 246,422.04 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="209.532,272.925 209.532,231.206 " />
|
||||
<polyline points="209.532,252.066 310.116,252.066 " />
|
||||
<polyline points="799.719,515.794 695.707,411.783 " />
|
||||
<path d="M695.707,411.783 A545.308,545.308 0 0,0 310.116,252.066 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,0,0)" stroke-width="0.1" >
|
||||
<polyline points="603.652,503.844 636.602,536.794 " />
|
||||
<polyline points="636.602,536.794 680.49,492.907 " />
|
||||
<polyline points="680.49,492.907 647.539,459.956 " />
|
||||
<path d="M647.539,459.956 A477.194,477.194 0 0,0 310.112,320.189 " />
|
||||
<polyline points="310.112,320.189 263.513,320.189 " />
|
||||
<polyline points="263.513,320.189 263.513,382.255 " />
|
||||
<polyline points="263.513,382.255 310.112,382.255 " />
|
||||
<path d="M603.652,503.844 A415.128,415.128 0 0,0 310.112,382.255 " />
|
||||
<path d="M625.629,481.866 A446.209,446.209 0 0,0 310.112,351.175 " />
|
||||
<polyline points="310.112,351.175 263.513,351.222 " />
|
||||
<polyline points="625.629,481.866 658.546,514.85 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="784.969,530.544 814.468,501.044 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="649.888,478.641 635.93,484.422 " />
|
||||
<polyline points="642.909,481.531 614.536,413.034 " />
|
||||
<polyline points="374.112,291.132 432.097,291.132 " />
|
||||
<path d="M614.536,413.034 A197.471,197.471 0 0,0 432.097,291.132 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,0,0)" stroke-width="0.1" >
|
||||
<polyline points="423.984,338.277 444.09,338.277 " />
|
||||
<path d="M566.39,419.996 A132.377,132.377 0 0,0 444.09,338.277 " />
|
||||
<polyline points="566.39,419.996 582.26,458.308 " />
|
||||
<polyline points="582.26,458.308 603.025,449.707 " />
|
||||
<polyline points="603.025,449.707 587.155,411.395 " />
|
||||
<path d="M587.155,411.395 A154.853,154.853 0 0,0 444.09,315.801 " />
|
||||
<polyline points="444.09,315.801 423.984,315.801 " />
|
||||
<polyline points="423.984,315.801 423.984,338.277 " />
|
||||
<polyline points="423.984,327.039 444.09,327.039 " />
|
||||
<path d="M576.773,415.695 A143.615,143.615 0 0,0 444.09,327.039 " />
|
||||
<polyline points="576.773,415.695 592.642,454.007 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="374.112,283.578 374.112,298.686 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="473.29,451.077 444.11,421.897 " />
|
||||
<path d="M444.11,421.897 A158.429,158.429 0 0,0 332.084,375.494 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,0,0)" stroke-width="0.1" >
|
||||
<polyline points="455.959,409.31 485.542,438.893 " />
|
||||
<polyline points="485.542,438.893 496.673,427.761 " />
|
||||
<polyline points="496.673,427.761 467.09,398.179 " />
|
||||
<path d="M467.09,398.179 A190.19,190.19 0 0,0 332.606,342.473 " />
|
||||
<polyline points="332.606,342.473 255.541,342.473 " />
|
||||
<polyline points="255.541,342.473 255.541,358.216 " />
|
||||
<polyline points="255.541,358.216 332.606,358.216 " />
|
||||
<path d="M455.959,409.31 A174.448,174.448 0 0,0 332.606,358.216 " />
|
||||
<polyline points="461.525,403.744 491.107,433.327 " />
|
||||
<path d="M461.525,403.744 A182.319,182.319 0 0,0 332.606,350.345 " />
|
||||
<polyline points="332.606,350.345 255.541,350.345 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="255.611,375.494 332.084,375.494 " />
|
||||
<polyline points="255.611,380.785 255.611,370.204 " />
|
||||
<polyline points="469.549,454.818 477.031,447.336 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,0,0)" stroke-width="0.1" >
|
||||
<polyline points="393.267,410.244 411.462,428.438 " />
|
||||
<polyline points="411.462,428.438 418.487,421.413 " />
|
||||
<polyline points="418.487,421.413 400.292,403.219 " />
|
||||
<path d="M400.292,403.219 A89.8793,89.8793 0 0,0 336.737,376.896 " />
|
||||
<polyline points="336.737,376.896 288.735,376.897 " />
|
||||
<polyline points="288.735,376.897 288.735,386.832 " />
|
||||
<polyline points="288.735,386.832 336.738,386.831 " />
|
||||
<path d="M393.267,410.244 A79.9439,79.9439 0 0,0 336.738,386.831 " />
|
||||
<path d="M396.78,406.732 A84.9116,84.9116 0 0,0 336.738,381.863 " />
|
||||
<polyline points="336.738,381.863 288.735,381.865 " />
|
||||
<polyline points="396.78,406.732 414.975,424.926 " />
|
||||
<polyline points="393.267,410.244 411.462,428.438 " />
|
||||
<polyline points="411.462,428.438 418.487,421.413 " />
|
||||
<polyline points="418.487,421.413 400.292,403.219 " />
|
||||
<path d="M400.292,403.219 A89.8793,89.8793 0 0,0 336.737,376.896 " />
|
||||
<polyline points="336.737,376.896 288.735,376.897 " />
|
||||
<polyline points="288.735,376.897 288.735,386.832 " />
|
||||
<polyline points="288.735,386.832 336.738,386.831 " />
|
||||
<path d="M393.267,410.244 A79.9439,79.9439 0 0,0 336.738,386.831 " />
|
||||
<path d="M396.78,406.732 A84.9116,84.9116 0 0,0 336.738,381.863 " />
|
||||
<polyline points="336.738,381.863 288.735,381.865 " />
|
||||
<polyline points="396.78,406.732 414.975,424.926 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="288.807,365.992 337.071,365.992 " />
|
||||
<polyline points="426.191,413.694 407.775,395.278 " />
|
||||
<polyline points="288.807,369.331 288.807,362.652 " />
|
||||
<path d="M407.775,395.278 A99.9893,99.9893 0 0,0 337.071,365.992 " />
|
||||
<polyline points="423.83,416.056 428.552,411.333 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="309.244,421.916 313.613,421.916 " />
|
||||
<polyline points="311.429,421.916 311.429,404.267 " />
|
||||
<polyline points="228.374,338.861 246.023,338.861 " />
|
||||
<path d="M311.429,404.267 A65.4056,65.4056 0 0,0 246.023,338.861 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,0,0)" stroke-width="0.1" >
|
||||
<path d="M318.561,403.748 A72.0188,72.0188 0 0,0 246.542,331.729 " />
|
||||
<polyline points="318.561,403.748 318.561,421.916 " />
|
||||
<polyline points="318.561,421.916 325.06,421.916 " />
|
||||
<polyline points="325.06,421.916 325.06,403.748 " />
|
||||
<path d="M325.06,403.748 A78.5178,78.5178 0 0,0 246.542,325.23 " />
|
||||
<polyline points="246.542,325.23 228.374,325.23 " />
|
||||
<polyline points="228.374,325.23 228.374,331.729 " />
|
||||
<polyline points="228.374,331.729 246.542,331.729 " />
|
||||
<polyline points="246.542,328.479 228.374,328.479 " />
|
||||
<path d="M321.811,403.748 A75.2683,75.2683 0 0,0 246.542,328.479 " />
|
||||
<polyline points="321.811,403.748 321.811,421.916 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="228.374,336.677 228.374,341.045 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="452.91,464.108 458.21,464.108 " />
|
||||
<polyline points="455.56,464.108 455.56,442.696 " />
|
||||
<polyline points="354.799,363.347 376.211,363.347 " />
|
||||
<path d="M455.56,442.696 A79.3491,79.3491 0 0,0 376.211,363.347 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,0,0)" stroke-width="0.1" >
|
||||
<path d="M439.022,443.326 A63.4415,63.4415 0 0,0 375.581,379.885 " />
|
||||
<polyline points="439.022,443.326 439.022,464.108 " />
|
||||
<polyline points="439.022,464.108 446.907,464.108 " />
|
||||
<polyline points="446.907,464.108 446.907,443.326 " />
|
||||
<path d="M446.907,443.326 A71.3261,71.3261 0 0,0 375.581,372 " />
|
||||
<polyline points="375.581,372 354.799,372 " />
|
||||
<polyline points="354.799,372 354.799,379.885 " />
|
||||
<polyline points="354.799,379.885 375.581,379.885 " />
|
||||
<polyline points="375.581,375.942 354.799,375.942 " />
|
||||
<path d="M442.965,443.326 A67.3838,67.3838 0 0,0 375.581,375.942 " />
|
||||
<polyline points="442.965,443.326 442.965,464.108 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,255,0)" stroke-width="0.1" >
|
||||
<polyline points="354.799,360.697 354.799,365.997 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,255,255)" stroke-width="0.1" >
|
||||
<polyline points="292.389,316.4 292.389,336.75 " />
|
||||
<polyline points="292.389,326.575 340.751,326.575 " stroke-dasharray="14.231860,1.581318,3.162635,1.581318,3.162635,1.581318" />
|
||||
<polyline points="537.981,490.674 519.474,445.993 " stroke-dasharray="14.231860,1.581318,3.162635,1.581318,3.162635,1.581318" />
|
||||
<polyline points="547.382,486.78 528.581,494.568 " />
|
||||
<path d="M519.474,445.993 A193.448,193.448 0 0,0 340.751,326.575 " stroke-dasharray="14.231860,1.581318,3.162635,1.581318,3.162635,1.581318" />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" >
|
||||
<polyline points="463.505,476.818 491.475,465.232 " />
|
||||
<polyline points="491.475,465.232 482.592,443.785 " />
|
||||
<path d="M482.592,443.785 A136.042,136.042 0 0,0 356.905,359.804 " />
|
||||
<polyline points="356.905,359.804 329.339,359.804 " />
|
||||
<polyline points="329.339,359.804 329.339,390.079 " />
|
||||
<polyline points="329.339,390.079 356.905,390.079 " />
|
||||
<path d="M454.622,455.371 A105.768,105.768 0 0,0 356.905,390.079 " />
|
||||
<polyline points="454.622,455.371 463.505,476.818 " />
|
||||
<polyline points="477.49,471.025 468.607,449.578 " />
|
||||
<path d="M468.607,449.578 A120.905,120.905 0 0,0 356.905,374.942 " />
|
||||
<polyline points="356.905,374.942 329.339,374.942 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,255,255)" stroke-width="0.1" >
|
||||
<polyline points="378.502,386.545 378.502,376.736 " />
|
||||
<polyline points="378.502,381.641 404.144,381.641 " stroke-dasharray="6.859903,0.762211,1.524423,0.762211,1.524423,0.762211" />
|
||||
<polyline points="498.435,410.134 453.208,391.4 " stroke-dasharray="6.859903,0.762211,1.524423,0.762211,1.524423,0.762211" />
|
||||
<polyline points="500.312,405.603 496.558,414.665 " />
|
||||
<path d="M453.208,391.4 A128.211,128.211 0 0,0 404.144,381.641 " stroke-dasharray="6.859903,0.762211,1.524423,0.762211,1.524423,0.762211" />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" >
|
||||
<path d="M441.495,419.68 A97.6032,97.6032 0 0,0 404.144,412.25 " />
|
||||
<polyline points="404.144,412.25 375.005,412.25 " />
|
||||
<polyline points="375.005,412.25 375.005,397.658 " />
|
||||
<polyline points="375.005,397.658 404.144,397.658 " />
|
||||
<path d="M447.079,406.198 A112.196,112.196 0 0,0 404.144,397.658 " />
|
||||
<polyline points="447.079,406.198 474,417.349 " />
|
||||
<polyline points="474,417.349 468.415,430.831 " />
|
||||
<polyline points="468.415,430.831 441.495,419.68 " />
|
||||
<path d="M444.287,412.939 A104.9,104.9 0 0,0 404.144,404.954 " />
|
||||
<polyline points="404.144,404.954 375.005,404.954 " />
|
||||
<polyline points="444.287,412.939 471.208,424.09 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" >
|
||||
<polyline points="655.243,343.311 655.244,335.579 " />
|
||||
<polyline points="681.304,343.313 655.243,343.311 " />
|
||||
<polyline points="733.255,358.541 710.548,349.133 " />
|
||||
<polyline points="681.305,339.447 655.243,339.445 " />
|
||||
<polyline points="712.028,345.561 734.735,354.969 " />
|
||||
<polyline points="681.305,335.581 655.244,335.579 " />
|
||||
<polyline points="736.215,351.397 713.507,341.99 " />
|
||||
<polyline points="733.255,358.541 736.215,351.397 " />
|
||||
<path d="M713.507,341.99 A84.1497,84.1497 0 0,0 681.305,335.581 " />
|
||||
<path d="M712.028,345.561 A80.2837,80.2837 0 0,0 681.305,339.447 " />
|
||||
<path d="M710.548,349.133 A76.4178,76.4178 0 0,0 681.304,343.313 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,255,255)" stroke-width="0.1" >
|
||||
<polyline points="667.702,354.397 667.702,349.199 " />
|
||||
<polyline points="667.702,351.798 681.288,351.798 " stroke-dasharray="3.634723,0.403858,0.807716,0.403858,0.807716,0.403858" />
|
||||
<polyline points="731.248,366.895 707.285,356.969 " stroke-dasharray="3.634723,0.403858,0.807716,0.403858,0.807716,0.403858" />
|
||||
<polyline points="732.243,364.494 730.254,369.296 " />
|
||||
<path d="M707.285,356.969 A67.9324,67.9324 0 0,0 681.288,351.798 " stroke-dasharray="3.634723,0.403858,0.807716,0.403858,0.807716,0.403858" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,255,255)" stroke-width="0.25" >
|
||||
<polyline points="288.241,391.315 288.241,388.651 " />
|
||||
<polyline points="288.241,389.983 294.664,389.983 " stroke-dasharray="0.284920,0.031658,0.063315,0.031658,0.063315,0.031658" />
|
||||
<polyline points="325.93,406.825 319.288,400.183 " stroke-dasharray="0.284920,0.031658,0.063315,0.031658,0.063315,0.031658" />
|
||||
<polyline points="326.872,405.883 324.989,407.767 " />
|
||||
<path d="M319.288,400.183 A34.8235,34.8235 0 0,0 294.664,389.983 " stroke-dasharray="0.284920,0.031658,0.063315,0.031658,0.063315,0.031658" />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(255,0,0)" stroke-width="0.25" >
|
||||
<polyline points="313.41,406.062 315.514,408.166 " />
|
||||
<polyline points="315.514,408.166 318.316,405.363 " />
|
||||
<polyline points="318.316,405.363 316.212,403.259 " />
|
||||
<path d="M316.212,403.259 A30.4737,30.4737 0 0,0 294.664,394.333 " />
|
||||
<polyline points="294.664,394.333 291.688,394.333 " />
|
||||
<polyline points="291.688,394.333 291.688,398.297 " />
|
||||
<polyline points="291.688,398.297 294.664,398.297 " />
|
||||
<path d="M313.41,406.062 A26.5102,26.5102 0 0,0 294.664,398.297 " />
|
||||
<path d="M314.813,404.658 A28.495,28.495 0 0,0 294.664,396.312 " />
|
||||
<polyline points="294.664,396.312 291.688,396.315 " />
|
||||
<polyline points="314.813,404.658 316.915,406.765 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,255,255)" stroke-width="0.1" >
|
||||
<polyline points="547.214,478.976 540.917,481.584 " />
|
||||
<polyline points="544.065,480.28 531.265,449.377 " stroke-dasharray="4.766665,0.529629,1.059259,0.529629,1.059259,0.529629" />
|
||||
<polyline points="422.799,394.382 448.958,394.382 " stroke-dasharray="4.766665,0.529629,1.059259,0.529629,1.059259,0.529629" />
|
||||
<polyline points="422.799,390.974 422.799,397.79 " />
|
||||
<path d="M531.265,449.377 A89.0882,89.0882 0 0,0 448.958,394.382 " stroke-dasharray="4.766665,0.529629,1.059259,0.529629,1.059259,0.529629" />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" >
|
||||
<polyline points="445.298,415.651 454.369,415.651 " />
|
||||
<path d="M509.544,452.518 A59.7215,59.7215 0 0,0 454.369,415.651 " />
|
||||
<polyline points="509.544,452.518 516.704,469.803 " />
|
||||
<polyline points="516.704,469.803 526.072,465.922 " />
|
||||
<polyline points="526.072,465.922 518.912,448.638 " />
|
||||
<path d="M518.912,448.638 A69.8614,69.8614 0 0,0 454.369,405.511 " />
|
||||
<polyline points="454.369,405.511 445.298,405.511 " />
|
||||
<polyline points="445.298,405.511 445.298,415.651 " />
|
||||
<polyline points="445.298,410.581 454.369,410.581 " />
|
||||
<path d="M514.228,450.578 A64.7914,64.7914 0 0,0 454.369,410.581 " />
|
||||
<polyline points="514.228,450.578 521.388,467.862 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,255,255)" stroke-width="0.1" >
|
||||
<polyline points="678.557,497.369 689.645,486.281 " />
|
||||
<polyline points="684.101,491.825 640.859,448.584 " stroke-dasharray="10.966450,1.218494,2.436989,1.218494,2.436989,1.218494" />
|
||||
<path d="M640.859,448.584 A234.774,234.774 0 0,0 474.849,379.82 " stroke-dasharray="10.966450,1.218494,2.436989,1.218494,2.436989,1.218494" />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" >
|
||||
<polyline points="658.418,429.931 702.256,473.769 " />
|
||||
<polyline points="702.256,473.769 718.752,457.274 " />
|
||||
<polyline points="718.752,457.274 674.914,413.435 " />
|
||||
<path d="M674.914,413.435 A281.84,281.84 0 0,0 475.622,330.886 " />
|
||||
<polyline points="475.622,330.886 361.421,330.886 " />
|
||||
<polyline points="361.421,330.886 361.421,354.215 " />
|
||||
<polyline points="361.421,354.215 475.622,354.215 " />
|
||||
<path d="M658.418,429.931 A258.512,258.512 0 0,0 475.622,354.215 " />
|
||||
<polyline points="666.666,421.683 710.504,465.522 " />
|
||||
<path d="M666.666,421.683 A270.176,270.176 0 0,0 475.622,342.551 " />
|
||||
<polyline points="475.622,342.551 361.421,342.551 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,255,255)" stroke-width="0.1" >
|
||||
<polyline points="361.524,379.82 474.849,379.82 " stroke-dasharray="10.966450,1.218494,2.436989,1.218494,2.436989,1.218494" />
|
||||
<polyline points="361.524,387.66 361.524,371.98 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB |
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" >
|
||||
<polyline points="484.412,416.967 504.632,437.185 " />
|
||||
<polyline points="504.632,437.185 512.439,429.378 " />
|
||||
<polyline points="512.439,429.378 492.219,409.159 " />
|
||||
<path d="M492.219,409.159 A99.8821,99.8821 0 0,0 421.591,379.906 " />
|
||||
<polyline points="421.591,379.906 368.247,379.908 " />
|
||||
<polyline points="368.246,379.908 368.247,390.949 " />
|
||||
<polyline points="368.247,390.949 421.591,390.947 " />
|
||||
<path d="M484.412,416.967 A88.8409,88.8409 0 0,0 421.591,390.947 " />
|
||||
<path d="M488.316,413.063 A94.3615,94.3615 0 0,0 421.591,385.427 " />
|
||||
<polyline points="421.591,385.427 368.247,385.428 " />
|
||||
<polyline points="488.316,413.063 508.536,433.282 " />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,255,255)" stroke-width="0.1" >
|
||||
<polyline points="518.265,423.424 523.513,418.176 " />
|
||||
<polyline points="368.215,367.789 421.851,367.789 " stroke-dasharray="5.190369,0.576708,1.153415,0.576708,1.153415,0.576708" />
|
||||
<polyline points="520.889,420.8 500.423,400.334 " stroke-dasharray="5.190369,0.576708,1.153415,0.576708,1.153415,0.576708" />
|
||||
<polyline points="368.215,371.5 368.215,364.078 " />
|
||||
<path d="M500.423,400.334 A111.117,111.117 0 0,0 421.851,367.789 " stroke-dasharray="5.190369,0.576708,1.153415,0.576708,1.153415,0.576708" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,255,255)" stroke-width="0.1" >
|
||||
<polyline points="504.345,304.954 504.345,299.657 " />
|
||||
<polyline points="602.409,403.018 607.706,403.018 " />
|
||||
<polyline points="605.057,403.018 605.057,381.616 " stroke-dasharray="3.704670,0.411630,0.823260,0.411630,0.823260,0.411630" />
|
||||
<polyline points="504.345,302.305 525.746,302.305 " stroke-dasharray="3.704670,0.411630,0.823260,0.411630,0.823260,0.411630" />
|
||||
<path d="M605.057,381.616 A79.3109,79.3109 0 0,0 525.746,302.305 " stroke-dasharray="3.704670,0.411630,0.823260,0.411630,0.823260,0.411630" />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" >
|
||||
<path d="M613.706,380.987 A87.3301,87.3301 0 0,0 526.376,293.657 " />
|
||||
<polyline points="613.706,380.987 613.706,403.018 " />
|
||||
<polyline points="613.706,403.018 621.587,403.018 " />
|
||||
<polyline points="621.587,403.018 621.587,380.987 " />
|
||||
<path d="M621.587,380.987 A95.2109,95.2109 0 0,0 526.376,285.776 " />
|
||||
<polyline points="526.376,285.776 504.345,285.776 " />
|
||||
<polyline points="504.345,285.776 504.345,293.657 " />
|
||||
<polyline points="504.345,293.657 526.376,293.657 " />
|
||||
<polyline points="526.376,289.716 504.345,289.716 " />
|
||||
<path d="M617.646,380.987 A91.2705,91.2705 0 0,0 526.376,289.716 " />
|
||||
<polyline points="617.646,380.987 617.646,403.018 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<svg viewBox="0 0 1024 768" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
|
||||
<defs >
|
||||
<clipPath id="clipId0" >
|
||||
<path d="M0,768 1024,768 1024,0 0,0 z" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" />
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,255,255)" stroke-width="0.1" >
|
||||
<polyline points="421.617,322.83 421.617,313.294 " />
|
||||
<polyline points="598.131,499.344 607.667,499.344 " />
|
||||
<polyline points="602.899,499.344 602.899,460.822 " stroke-dasharray="6.668406,0.740934,1.481868,0.740934,1.481868,0.740934" />
|
||||
<polyline points="421.617,318.062 460.139,318.062 " stroke-dasharray="6.668406,0.740934,1.481868,0.740934,1.481868,0.740934" />
|
||||
<path d="M602.899,460.822 A142.76,142.76 0 0,0 460.139,318.062 " stroke-dasharray="6.668406,0.740934,1.481868,0.740934,1.481868,0.740934" />
|
||||
</g>
|
||||
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.1" >
|
||||
<path d="M573.146,461.955 A114.14,114.14 0 0,0 459.006,347.815 " />
|
||||
<polyline points="573.146,461.955 573.146,499.344 " />
|
||||
<polyline points="573.146,499.344 587.331,499.344 " />
|
||||
<polyline points="587.331,499.344 587.331,461.955 " />
|
||||
<path d="M587.331,461.955 A128.325,128.325 0 0,0 459.006,333.63 " />
|
||||
<polyline points="459.006,333.63 421.617,333.63 " />
|
||||
<polyline points="421.617,333.63 421.617,347.815 " />
|
||||
<polyline points="421.617,347.815 459.006,347.815 " />
|
||||
<polyline points="459.006,340.722 421.617,340.722 " />
|
||||
<path d="M580.239,461.955 A121.232,121.232 0 0,0 459.006,340.722 " />
|
||||
<polyline points="580.239,461.955 580.239,499.344 " />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -19,7 +19,7 @@ echo "[DEBUG] Output_PATH: %RD_CONF_OUTPUT_OFBOGEN%"
|
||||
|
||||
|
||||
python %OFBogen_PATH%\02_svg_step1_convert_polylines_to_lines.py
|
||||
python %OFBogen_PATH%\02_svg_step2_find_and_mark_auxiliary_lines.py
|
||||
::python %OFBogen_PATH%\02_svg_step2_find_and_mark_auxiliary_lines.py
|
||||
python %OFBogen_PATH%\02_svg_step3_scaler.py
|
||||
python %OFBogen_PATH%\02_svg_step4_format_optimization.py
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
@echo off
|
||||
call setenv.bat
|
||||
setlocal
|
||||
|
||||
|
||||
:: Check if Python is available
|
||||
where python >nul 2>&1
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo Error: Python is not found in your PATH
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:: Run the Python script
|
||||
echo Running omnfilo Bogen SVG...
|
||||
|
||||
echo "[DEBUG] TEFBogen_PATH: %TEFBogen_PATH%"
|
||||
echo "[DEBUG] Output_PATH: %RD_CONF_OUTPUT_TEFBOGEN%"
|
||||
|
||||
|
||||
python %TEFBogen_PATH%\02_svg_step1_convert_polylines_to_lines.py
|
||||
:: python %TEFBogen_PATH%\02_svg_step2_find_and_mark_auxiliary_lines.py
|
||||
python %TEFBogen_PATH%\02_svg_step3_scaler.py
|
||||
python %TEFBogen_PATH%\02_svg_step4_format_optimization.py
|
||||
|
||||
:: Check if Python script succeeded
|
||||
if %ERRORLEVEL% equ 0 (
|
||||
echo SVG optimization completed successfully
|
||||
) else (
|
||||
echo SVG optimization failed with error %ERRORLEVEL%
|
||||
)
|
||||
|
||||
pause
|
||||
@@ -20,4 +20,10 @@ echo "[DEBUG] RD_CONF_OUTPUT_OFBOGEN: %RD_CONF_OUTPUT_OFBOGEN%"
|
||||
|
||||
python %OFBogen_PATH%\03_convert_svgs_to_xml_and_update_xml_path_in_props.py
|
||||
|
||||
:: Check if Python script succeeded
|
||||
if %ERRORLEVEL% equ 0 (
|
||||
echo SVG importation completed successfully
|
||||
) else (
|
||||
echo SVG importation failed with error %ERRORLEVEL%
|
||||
)
|
||||
pause
|
||||
@@ -20,4 +20,10 @@ echo "[DEBUG] RD_CONF_OUTPUT_OFWEICHEN: %RD_CONF_OUTPUT_OFWEICHEN%"
|
||||
|
||||
python %OFWeiche_PATH%\03_convert_svgs_to_xml_and_update_xml_path_in_props.py
|
||||
|
||||
:: Check if Python script succeeded
|
||||
if %ERRORLEVEL% equ 0 (
|
||||
echo SVG importation completed successfully
|
||||
) else (
|
||||
echo SVG importation failed with error %ERRORLEVEL%
|
||||
)
|
||||
pause
|
||||
@@ -0,0 +1,31 @@
|
||||
@echo off
|
||||
call setenv.bat
|
||||
setlocal
|
||||
|
||||
:: Check if Python is available
|
||||
where python >nul 2>&1
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo Error: Python is not found in your PATH
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:: Run the Python script
|
||||
echo Running convert svgs to xml and update xml path in Props...
|
||||
|
||||
echo "[DEBUG] TEFBogen_PATH: %TEFBogen_PATH%"
|
||||
echo "[DEBUG] PROPS_PATH: %PROPS_PATH%"
|
||||
echo "[DEBUG] SVG_PATH: %SVG_PATH%"
|
||||
echo "[DEBUG] RD_CONF_OUTPUT_TEFBOGEN: %RD_CONF_OUTPUT_TEFBOGEN%"
|
||||
|
||||
python %TEFBogen_PATH%\03_convert_svgs_to_xml_and_update_xml_path_in_props.py
|
||||
python %TEFBogen_PATH%\03_TEFBogen_SVG_XML_Modifier_Script.py
|
||||
|
||||
:: Check if Python script succeeded
|
||||
if %ERRORLEVEL% equ 0 (
|
||||
echo SVG importation completed successfully
|
||||
) else (
|
||||
echo SVG importation failed with error %ERRORLEVEL%
|
||||
)
|
||||
|
||||
pause
|
||||
@@ -19,6 +19,12 @@ echo "[DEBUG] SVG_PATH: %SVG_PATH%"
|
||||
echo "[DEBUG] RD_CONF_OUTPUT_TEFWEICHEN: %RD_CONF_OUTPUT_TEFWEICHEN%"
|
||||
|
||||
python %TEFWeiche_PATH%\03_convert_svgs_to_xml_and_update_xml_path_in_props.py
|
||||
python %TEFWeiche_PATH%\04_TEFWEICHE_SVG_XML_Modifier_Script.py
|
||||
python %TEFWeiche_PATH%\03_TEFWEICHE_SVG_XML_Modifier_Script.py
|
||||
|
||||
:: Check if Python script succeeded
|
||||
if %ERRORLEVEL% equ 0 (
|
||||
echo SVG importation completed successfully
|
||||
) else (
|
||||
echo SVG importation failed with error %ERRORLEVEL%
|
||||
)
|
||||
pause
|
||||
@@ -9,6 +9,7 @@ set RD_CONF_WORK=%RD_CONF%\work
|
||||
set RD_CONF_LIB=%RD_CONF%\lib
|
||||
|
||||
set "OFBogen_PATH=%RD_CONF%\lib\OFBogen"
|
||||
set "TEFBogen_PATH=%RD_CONF%\lib\TEFBogen"
|
||||
set "OFWeiche_PATH=%RD_CONF%\lib\OFWeiche"
|
||||
set "TEFWeiche_PATH=%RD_CONF%\lib\TEFWeiche"
|
||||
|
||||
@@ -16,7 +17,9 @@ set "TEFWeiche_PATH=%RD_CONF%\lib\TEFWeiche"
|
||||
set "PROPS_PATH=C:\Program Files\RuleDesigner\RDConfigurator Fusion\WebApi\Editor2D\SSG\shapes\props"
|
||||
set "SVG_PATH=C:\Program Files\RuleDesigner\RDConfigurator Fusion\WebApi\Editor2D\SSG\shapes\svg"
|
||||
|
||||
set "JSON_PATH_OFBOGEN=%OFBogen_PATH%\json"
|
||||
set "JSON_PATH_OFWEICHE=%OFWeiche_PATH%\json"
|
||||
set "JSON_PATH_TEFBOGEN=%TEFBogen_PATH%\json"
|
||||
set "JSON_PATH_TEFWEICHE=%TEFWeiche_PATH%\json"
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import os
|
||||
import re
|
||||
import xml.etree.ElementTree as ET
|
||||
from xml.dom import minidom
|
||||
import argparse
|
||||
import shutil
|
||||
|
||||
def analyze_and_normalize_path(d, path_type, path_id=""):
|
||||
"""Strictly normalize path direction and generate detailed report"""
|
||||
@@ -365,6 +365,18 @@ def batch_process_svgs(input_dir, output_dir):
|
||||
print("\nProcessing summary:")
|
||||
print(f"Successfully processed: {success_count} files")
|
||||
print(f"Failed to process: {failure_count} files")
|
||||
def clear_output_dir(path: str):
|
||||
|
||||
os.makedirs(path, exist_ok=True)
|
||||
for filename in os.listdir(path):
|
||||
file_path = os.path.join(path, filename)
|
||||
try:
|
||||
if os.path.isdir(file_path):
|
||||
shutil.rmtree(file_path) # 删除目录
|
||||
elif os.path.isfile(file_path) or os.path.islink(file_path):
|
||||
os.unlink(file_path) # 删除文件或符号链接
|
||||
except Exception as e:
|
||||
print(f"Failed to delete {file_path}. Reason: {e}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
input_dir = os.environ.get('RD_CONF_OFBOGEN')
|
||||
@@ -377,7 +389,12 @@ if __name__ == '__main__':
|
||||
if not os.path.exists(input_dir):
|
||||
print(f"Error: Input directory '{input_dir}' does not exist")
|
||||
exit(1)
|
||||
|
||||
# 确保输出目录存在
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
# 清空 output_dir
|
||||
clear_output_dir(output_dir)
|
||||
|
||||
print(f"Starting SVG file processing, working directory: {input_dir}")
|
||||
print("=" * 50)
|
||||
|
||||
|
||||
@@ -1,247 +0,0 @@
|
||||
import os
|
||||
from lxml import etree
|
||||
import re
|
||||
from math import sqrt, isclose
|
||||
from collections import defaultdict
|
||||
|
||||
# Constants
|
||||
WEICHEN_PROFILE_WIDTH = 42.000
|
||||
L_R_TARGET_LENGTH = 55.7237
|
||||
DELTA_TARGET_LENGTH = 53.5437
|
||||
MATCH_TOLERANCE = 0.1 # Matching tolerance 0.1mm
|
||||
|
||||
def process_svg_files(directory):
|
||||
print(f"🔍 Scanning directory: {directory}")
|
||||
print("-" * 60)
|
||||
|
||||
result_stats = {
|
||||
'total_files': 0,
|
||||
'L_R_files': {'with_pairs': [], 'no_pairs': [], 'excess_pairs': []},
|
||||
'Delta_files': {'with_triples': [], 'no_triples': [], 'excess_triples': []}
|
||||
}
|
||||
|
||||
for filename in os.listdir(directory):
|
||||
if not filename.endswith('.svg'):
|
||||
continue
|
||||
|
||||
filepath = os.path.join(directory, filename)
|
||||
result_stats['total_files'] += 1
|
||||
|
||||
if '_L_' in filename or '_R_' in filename:
|
||||
print(f"\n📄 Processing L/R file: {filename}")
|
||||
process_lr_file(filepath, filename, result_stats)
|
||||
elif 'DeltaWeiche' in filename:
|
||||
print(f"\n📄 Processing DeltaWeiche file: {filename}")
|
||||
process_delta_file(filepath, filename, result_stats)
|
||||
|
||||
# Print final statistics
|
||||
print("\n" + "="*60)
|
||||
print("📊 Final processing statistics:")
|
||||
print(f"Total files processed: {result_stats['total_files']}")
|
||||
|
||||
print("\nL/R type files results:")
|
||||
print(f"✅ Files with matching path pairs: {len(result_stats['L_R_files']['with_pairs'])}")
|
||||
print(f" {result_stats['L_R_files']['with_pairs']}")
|
||||
print(f"⚠️ Files with no matching paths: {len(result_stats['L_R_files']['no_pairs'])}")
|
||||
print(f" {result_stats['L_R_files']['no_pairs']}")
|
||||
print(f"❌ Files with >2 matching paths: {len(result_stats['L_R_files']['excess_pairs'])}")
|
||||
print(f" {result_stats['L_R_files']['excess_pairs']}")
|
||||
|
||||
print("\nDeltaWeiche type files results:")
|
||||
print(f"✅ Files with matching path triples: {len(result_stats['Delta_files']['with_triples'])}")
|
||||
print(f" {result_stats['Delta_files']['with_triples']}")
|
||||
print(f"⚠️ Files with no matching paths: {len(result_stats['Delta_files']['no_triples'])}")
|
||||
print(f" {result_stats['Delta_files']['no_triples']}")
|
||||
print(f"❌ Files with ≠3 matching paths: {len(result_stats['Delta_files']['excess_triples'])}")
|
||||
print(f" {result_stats['Delta_files']['excess_triples']}")
|
||||
|
||||
print("\n✨ Processing complete!")
|
||||
|
||||
def process_lr_file(filepath, filename, stats):
|
||||
try:
|
||||
tree = etree.parse(filepath)
|
||||
root = tree.getroot()
|
||||
|
||||
# Find all straight line paths
|
||||
straight_lines = find_straight_lines(root)
|
||||
print(f" 📊 Found {len(straight_lines)} straight paths")
|
||||
|
||||
# Print all straight paths
|
||||
print("\n 🔍 All straight path details:")
|
||||
for line in straight_lines:
|
||||
print(f" Path{line['index']}: ({line['p1'][0]:.2f},{line['p1'][1]:.2f})→"
|
||||
f"({line['p2'][0]:.2f},{line['p2'][1]:.2f}) length={line['length']:.4f}mm")
|
||||
|
||||
# Group by length
|
||||
length_groups = group_lines_by_length(straight_lines)
|
||||
|
||||
# Only print groups with exactly 2 paths
|
||||
print("\n 🔍 Same-length path groups (2 paths):")
|
||||
perfect_pairs = [group for group in length_groups.values() if len(group) == 2]
|
||||
for group in perfect_pairs:
|
||||
print(f" ┌ Length group ({group[0]['length']:.4f}mm, 2 paths)")
|
||||
for line in group:
|
||||
print(f" │ Path{line['index']}: ({line['p1'][0]:.2f},{line['p1'][1]:.2f})→"
|
||||
f"({line['p2'][0]:.2f},{line['p2'][1]:.2f})")
|
||||
print(" └" + "─" * 40)
|
||||
|
||||
if len(perfect_pairs) == 1:
|
||||
pair = perfect_pairs[0]
|
||||
original_length = pair[0]['length']
|
||||
scale_factor = WEICHEN_PROFILE_WIDTH / original_length
|
||||
print(f"\n 🔄 Scaling calculation (based on length {original_length:.4f}mm):")
|
||||
print(f" Scale factor: {scale_factor:.4f}")
|
||||
|
||||
# Print scaled lengths
|
||||
print("\n 🔍 Scaled path lengths:")
|
||||
for line in straight_lines:
|
||||
scaled_len = line['length'] * scale_factor
|
||||
print(f" Path{line['index']}: {line['length']:.4f}mm → {scaled_len:.4f}mm")
|
||||
|
||||
# Find path matching target length (within tolerance)
|
||||
target_path = find_target_path(straight_lines, scale_factor, L_R_TARGET_LENGTH)
|
||||
if target_path:
|
||||
target_path['element'].set('style', 'stroke:none;fill:none;')
|
||||
tree.write(filepath, encoding='utf-8', xml_declaration=True)
|
||||
print(f"\n ✅ Hid path{target_path['index']} matching target length {L_R_TARGET_LENGTH:.4f}mm (±{MATCH_TOLERANCE}mm)")
|
||||
stats['L_R_files']['with_pairs'].append(filename)
|
||||
else:
|
||||
print(f"\n ❌ No path found matching {L_R_TARGET_LENGTH:.4f}mm (±{MATCH_TOLERANCE}mm)")
|
||||
stats['L_R_files']['no_pairs'].append(filename)
|
||||
elif len(perfect_pairs) > 1:
|
||||
print(f"\n ❗ Found multiple same-length path groups: {[len(g) for g in length_groups.values()]}")
|
||||
stats['L_R_files']['excess_pairs'].append(filename)
|
||||
else:
|
||||
print("\n ❌ No same-length path pairs found")
|
||||
stats['L_R_files']['no_pairs'].append(filename)
|
||||
|
||||
except Exception as e:
|
||||
print(f" ❌ Processing failed: {str(e)}")
|
||||
|
||||
def process_delta_file(filepath, filename, stats):
|
||||
try:
|
||||
tree = etree.parse(filepath)
|
||||
root = tree.getroot()
|
||||
|
||||
# Find all straight line paths
|
||||
straight_lines = find_straight_lines(root)
|
||||
print(f" 📊 Found {len(straight_lines)} straight paths")
|
||||
|
||||
# Print all straight paths
|
||||
print("\n 🔍 All straight path details:")
|
||||
for line in straight_lines:
|
||||
print(f" Path{line['index']}: ({line['p1'][0]:.2f},{line['p1'][1]:.2f})→"
|
||||
f"({line['p2'][0]:.2f},{line['p2'][1]:.2f}) length={line['length']:.4f}mm")
|
||||
|
||||
# Group by length
|
||||
length_groups = group_lines_by_length(straight_lines)
|
||||
|
||||
# Only print groups with exactly 3 paths
|
||||
print("\n 🔍 Same-length path groups (3 paths):")
|
||||
perfect_triples = [group for group in length_groups.values() if len(group) == 3]
|
||||
for group in perfect_triples:
|
||||
print(f" ┌ Length group ({group[0]['length']:.4f}mm, 3 paths)")
|
||||
for line in group:
|
||||
print(f" │ Path{line['index']}: ({line['p1'][0]:.2f},{line['p1'][1]:.2f})→"
|
||||
f"({line['p2'][0]:.2f},{line['p2'][1]:.2f})")
|
||||
print(" └" + "─" * 40)
|
||||
|
||||
if len(perfect_triples) == 1:
|
||||
triple = perfect_triples[0]
|
||||
original_length = triple[0]['length']
|
||||
scale_factor = WEICHEN_PROFILE_WIDTH / original_length
|
||||
print(f"\n 🔄 Scaling calculation (based on length {original_length:.4f}mm):")
|
||||
print(f" Scale factor: {scale_factor:.4f}")
|
||||
|
||||
# Print scaled lengths
|
||||
print("\n 🔍 Scaled path lengths:")
|
||||
for line in straight_lines:
|
||||
scaled_len = line['length'] * scale_factor
|
||||
print(f" Path{line['index']}: {line['length']:.4f}mm → {scaled_len:.4f}mm")
|
||||
|
||||
# Find all paths matching target length (there might be multiple)
|
||||
target_paths = [line for line in straight_lines
|
||||
if abs(line['length'] * scale_factor - DELTA_TARGET_LENGTH) < MATCH_TOLERANCE]
|
||||
|
||||
if target_paths:
|
||||
for target in target_paths:
|
||||
target['element'].set('style', 'stroke:none;fill:none;')
|
||||
tree.write(filepath, encoding='utf-8', xml_declaration=True)
|
||||
print(f"\n ✅ Hid {len(target_paths)} paths matching target length {DELTA_TARGET_LENGTH:.4f}mm (±{MATCH_TOLERANCE}mm):")
|
||||
for target in target_paths:
|
||||
print(f" - Path{target['index']}")
|
||||
stats['Delta_files']['with_triples'].append(filename)
|
||||
else:
|
||||
print(f"\n ❌ No path found matching {DELTA_TARGET_LENGTH:.4f}mm (±{MATCH_TOLERANCE}mm)")
|
||||
stats['Delta_files']['no_triples'].append(filename)
|
||||
elif len(perfect_triples) > 1:
|
||||
print(f"\n ❗ Found multiple same-length path groups: {[len(g) for g in length_groups.values()]}")
|
||||
stats['Delta_files']['excess_triples'].append(filename)
|
||||
else:
|
||||
print("\n ❌ No same-length path groups (3 paths) found")
|
||||
stats['Delta_files']['no_triples'].append(filename)
|
||||
|
||||
except Exception as e:
|
||||
print(f" ❌ Processing failed: {str(e)}")
|
||||
|
||||
def find_straight_lines(root):
|
||||
"""Find all straight line paths"""
|
||||
lines = []
|
||||
paths = root.xpath('.//svg:path|.//svg:g//svg:path',
|
||||
namespaces={'svg': 'http://www.w3.org/2000/svg'})
|
||||
|
||||
for i, path in enumerate(paths, 1):
|
||||
d = path.get('d', '').strip()
|
||||
if not d:
|
||||
continue
|
||||
|
||||
if is_straight_line(d):
|
||||
length, (p1, p2) = calculate_line_length(d)
|
||||
if length > 0:
|
||||
lines.append({
|
||||
'index': i,
|
||||
'element': path,
|
||||
'length': round(length, 4), # Keep 4 decimal places
|
||||
'p1': (round(p1[0], 2), round(p1[1], 2)), # Coordinates rounded to 2 decimals
|
||||
'p2': (round(p2[0], 2), round(p2[1], 2))
|
||||
})
|
||||
return lines
|
||||
|
||||
def group_lines_by_length(lines):
|
||||
"""Group straight paths by length"""
|
||||
groups = defaultdict(list)
|
||||
for line in lines:
|
||||
groups[line['length']].append(line)
|
||||
return groups
|
||||
|
||||
def find_target_path(lines, scale_factor, target_length):
|
||||
"""Find path that matches target length after scaling (within tolerance)"""
|
||||
for line in lines:
|
||||
scaled_length = line['length'] * scale_factor
|
||||
if abs(scaled_length - target_length) < MATCH_TOLERANCE:
|
||||
return line
|
||||
return None
|
||||
|
||||
def is_straight_line(d):
|
||||
"""Check if path is strictly a straight line"""
|
||||
commands = [cmd[0].upper() for cmd in re.findall('([A-Za-z])', d)]
|
||||
return len(commands) == 2 and commands[0] == 'M' and commands[1] == 'L'
|
||||
|
||||
def calculate_line_length(d):
|
||||
"""Calculate line length and return endpoints"""
|
||||
points = []
|
||||
for cmd, params in re.findall('([A-Za-z])([^A-Za-z]*)', d):
|
||||
if cmd.upper() in ('M', 'L'):
|
||||
coords = [float(p) for p in re.findall('[-+]?\d*\.\d+|[-+]?\d+', params)]
|
||||
points.append((coords[0], coords[1]))
|
||||
|
||||
if len(points) != 2:
|
||||
return 0, ((0,0), (0,0))
|
||||
|
||||
length = sqrt((points[1][0]-points[0][0])**2 + (points[1][1]-points[0][1])**2)
|
||||
return round(length, 4), (points[0], points[1]) # Length rounded to 4 decimals
|
||||
if __name__ == '__main__':
|
||||
# Set SVG files directory path
|
||||
# svg_directory = r'C:\Users\y.wang\Documents\SSG-Ruledesigner-Konfigurator\SVGs\Omniflo\work'
|
||||
svg_directory =os.environ.get('RD_CONF_WORK')
|
||||
process_svg_files(svg_directory)
|
||||
@@ -1,8 +1,67 @@
|
||||
import os
|
||||
import re
|
||||
import xml.etree.ElementTree as ET
|
||||
from typing import Tuple, List
|
||||
from typing import Tuple, List,Optional
|
||||
import math
|
||||
def arc_to_points(x0, y0, rx, ry, phi, large_arc, sweep, x1, y1, steps=100):
|
||||
"""
|
||||
将SVG弧命令近似为一系列点
|
||||
用公式计算中心和角度范围,然后采样,得到边界安全点
|
||||
"""
|
||||
phi = math.radians(phi)
|
||||
dx2 = (x0 - x1) / 2.0
|
||||
dy2 = (y0 - y1) / 2.0
|
||||
cos_phi = math.cos(phi)
|
||||
sin_phi = math.sin(phi)
|
||||
|
||||
# Step 1: Transform to ellipse coordinate system
|
||||
x_ = cos_phi * dx2 + sin_phi * dy2
|
||||
y_ = -sin_phi * dx2 + cos_phi * dy2
|
||||
|
||||
# Step 2: Correct radii
|
||||
rx = abs(rx)
|
||||
ry = abs(ry)
|
||||
lam = (x_**2)/(rx**2) + (y_**2)/(ry**2)
|
||||
if lam > 1:
|
||||
rx *= math.sqrt(lam)
|
||||
ry *= math.sqrt(lam)
|
||||
|
||||
# Step 3: Compute center
|
||||
sign = 1 if large_arc != sweep else -1
|
||||
coef = sign * math.sqrt(
|
||||
max(0, ((rx**2 * ry**2) - (rx**2 * y_**2) - (ry**2 * x_**2)) /
|
||||
((rx**2 * y_**2) + (ry**2 * x_**2)))
|
||||
)
|
||||
cx_ = coef * (rx * y_) / ry
|
||||
cy_ = coef * (-ry * x_) / rx
|
||||
|
||||
cx = cos_phi * cx_ - sin_phi * cy_ + (x0 + x1)/2
|
||||
cy = sin_phi * cx_ + cos_phi * cy_ + (y0 + y1)/2
|
||||
|
||||
# Step 4: Compute angles
|
||||
def angle(u, v):
|
||||
dot = u[0]*v[0] + u[1]*v[1]
|
||||
det = u[0]*v[1] - u[1]*v[0]
|
||||
return math.atan2(det, dot)
|
||||
|
||||
u = ((x_ - cx_) / rx, (y_ - cy_) / ry)
|
||||
v = ((-x_ - cx_) / rx, (-y_ - cy_) / ry)
|
||||
|
||||
theta1 = angle((1,0), u)
|
||||
delta_theta = angle(u, v)
|
||||
if not sweep and delta_theta > 0:
|
||||
delta_theta -= 2*math.pi
|
||||
elif sweep and delta_theta < 0:
|
||||
delta_theta += 2*math.pi
|
||||
|
||||
# Step 5: Sample points along the arc
|
||||
points = []
|
||||
for i in range(steps+1):
|
||||
t = theta1 + delta_theta * i/steps
|
||||
x = cx + rx*math.cos(phi)*math.cos(t) - ry*math.sin(phi)*math.sin(t)
|
||||
y = cy + rx*math.sin(phi)*math.cos(t) + ry*math.cos(phi)*math.sin(t)
|
||||
points.append((x,y))
|
||||
return points
|
||||
def parse_svg_path(d: str) -> List[Tuple[float, float]]:
|
||||
"""Extract all coordinates from SVG path data (including curve control points)"""
|
||||
points = []
|
||||
@@ -31,13 +90,19 @@ def parse_svg_path(d: str) -> List[Tuple[float, float]]:
|
||||
x += current_pos[0]; y += current_pos[1]
|
||||
points.extend([(x1, y1), (x2, y2), (x, y)])
|
||||
current_pos = (x, y)
|
||||
elif cmd in ('A', 'a'): # Arc commands (start/end points only)
|
||||
elif cmd in ('A', 'a'):
|
||||
for i in range(0, len(args), 7):
|
||||
x, y = args[i+5], args[i+6]
|
||||
rx, ry, phi, large_arc, sweep, x, y = args[i:i+7]
|
||||
if cmd.islower():
|
||||
x += current_pos[0]
|
||||
y += current_pos[1]
|
||||
points.append((x, y))
|
||||
arc_points = arc_to_points(
|
||||
current_pos[0], current_pos[1],
|
||||
rx, ry, phi,
|
||||
int(large_arc), int(sweep),
|
||||
x, y
|
||||
)
|
||||
points.extend(arc_points)
|
||||
current_pos = (x, y)
|
||||
return points
|
||||
|
||||
@@ -155,4 +220,4 @@ def batch_process_svg(input_dir: str, output_dir: str):
|
||||
if __name__ == '__main__':
|
||||
input_dir = os.environ.get('RD_CONF_WORK')
|
||||
output_dir = os.environ.get('RD_CONF_WORK')
|
||||
batch_process_svg(input_dir, output_dir)
|
||||
batch_process_svg(input_dir, output_dir)
|
||||
@@ -5,6 +5,7 @@ import re
|
||||
import xml.etree.ElementTree as ET
|
||||
from xml.dom import minidom
|
||||
import argparse
|
||||
import shutil
|
||||
|
||||
def analyze_and_normalize_path(d, path_type, path_id=""):
|
||||
"""Strictly normalize path direction and generate detailed report"""
|
||||
@@ -337,7 +338,18 @@ def optimize_svg(input_path, output_path):
|
||||
print(f"\nProcessing error: {str(e)}")
|
||||
print("="*60)
|
||||
return False
|
||||
|
||||
def clear_output_dir(path: str):
|
||||
|
||||
os.makedirs(path, exist_ok=True)
|
||||
for filename in os.listdir(path):
|
||||
file_path = os.path.join(path, filename)
|
||||
try:
|
||||
if os.path.isdir(file_path):
|
||||
shutil.rmtree(file_path) # 删除目录
|
||||
elif os.path.isfile(file_path) or os.path.islink(file_path):
|
||||
os.unlink(file_path) # 删除文件或符号链接
|
||||
except Exception as e:
|
||||
print(f"Failed to delete {file_path}. Reason: {e}")
|
||||
def batch_process_svgs(input_dir, output_dir):
|
||||
|
||||
if not os.path.exists(output_dir):
|
||||
@@ -416,7 +428,8 @@ if __name__ == '__main__':
|
||||
print(f"file {filename} does not exist")
|
||||
|
||||
if in_dir:
|
||||
"""Batch process SVG files"""
|
||||
# 清空 output_dir
|
||||
clear_output_dir(out_dir)
|
||||
batch_process_svgs(in_dir, out_dir)
|
||||
|
||||
else:
|
||||
|
||||
@@ -19,7 +19,7 @@ def process_json_file(input_filename, output_filename=None):
|
||||
output_filename: Optional output file path. Auto-generated if not provided
|
||||
"""
|
||||
# Get base path from environment variable
|
||||
json_base_path = os.environ.get("JSON_PATH","JSON")
|
||||
json_base_path = os.environ.get("JSON_PATH_TEFBOGEN","JSON")
|
||||
if not json_base_path:
|
||||
print("Error: JSON_PATH environment variable not set")
|
||||
print("Please set JSON_PATH in your .bat file")
|
||||
@@ -101,32 +101,32 @@ def process_json_file(input_filename, output_filename=None):
|
||||
print("\nStep 2: Calculating pixel and SVG dimensions")
|
||||
|
||||
# 计算 Gruppe_width_px 和 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)
|
||||
item["Gruppe_width_px"] = round(float(item["Gruppe_width_mm"]) * 3.779527592,4)
|
||||
item["Gruppe_height_px"] = round(float(item["Gruppe_height_mm"]) * 3.779527592, 4)
|
||||
print(f"Calculated Gruppe_width_px: {item['Gruppe_width_px']}")
|
||||
print(f"Calculated Gruppe_height_px: {item['Gruppe_height_px']}")
|
||||
|
||||
# 比较宽度和高度以确定缩放比例
|
||||
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)
|
||||
scale = round(1000 / float(item["Gruppe_width_mm"]), 7)
|
||||
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)
|
||||
item["calculated_SVG_height_px"] = round(float(item["Gruppe_height_mm"]) * scale, 4)
|
||||
scale_RD_H = round(1000 / float(item["calculated_SVG_height_px"]), 7)
|
||||
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)
|
||||
item["calculated_SVG_height_px"] = 1000
|
||||
scale_RD_H = 1
|
||||
scale_RD_W = 1
|
||||
else:
|
||||
print("Height is larger, setting calculated_SVG_height to 1000px")
|
||||
scale = round(1000 / float(item["Gruppe_height_mm"]), 6)
|
||||
scale = round(1000 / float(item["Gruppe_height_mm"]), 7)
|
||||
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)
|
||||
item["calculated_SVG_width_px"] = round(float(item["Gruppe_width_mm"]) * scale, 4)
|
||||
scale_RD_W = round(1000 / float(item["calculated_SVG_width_px"]), 7)
|
||||
scale_RD_H = 1
|
||||
|
||||
print(f"Calculated scale: {scale}")
|
||||
@@ -53,8 +53,8 @@ def process_files(json_file_path, txt_files_dir):
|
||||
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)
|
||||
new_width = round(json_item["Gruppe_width_px"], 4)
|
||||
new_height = round(json_item["Gruppe_height_px"], 4)
|
||||
txt_content["width"] = new_width
|
||||
txt_content["height"] = new_height
|
||||
|
||||
@@ -0,0 +1,397 @@
|
||||
|
||||
import os
|
||||
import re
|
||||
import xml.etree.ElementTree as ET
|
||||
from xml.dom import minidom
|
||||
import shutil
|
||||
|
||||
def analyze_and_normalize_path(d, path_type, path_id=""):
|
||||
"""Strictly normalize path direction and generate detailed report"""
|
||||
original_d = d
|
||||
report = []
|
||||
normalized = []
|
||||
changed = False
|
||||
|
||||
# First check if path contains any arc commands
|
||||
if 'A' in d or 'a' in d:
|
||||
report.append(" Path contains arc commands - leaving unchanged")
|
||||
return original_d, report, False
|
||||
# Ensure path starts with M command
|
||||
if not d.strip().startswith('M'):
|
||||
d = 'M' + d[1:] if d.startswith('L') else 'M ' + d
|
||||
report.append(" Fix: Added M command at path start")
|
||||
changed = True
|
||||
|
||||
# Parse path commands
|
||||
commands = []
|
||||
current_cmd = None
|
||||
for token in re.split('([A-Za-z])', d):
|
||||
if not token:
|
||||
continue
|
||||
if token in 'MLAZHVCSQTa-z':
|
||||
current_cmd = token
|
||||
else:
|
||||
if current_cmd:
|
||||
commands.append((current_cmd, token.strip()))
|
||||
|
||||
prev_x, prev_y = None, None
|
||||
|
||||
for cmd, params in commands:
|
||||
params = [float(p) for p in re.split('[, ]+', params.strip()) if p]
|
||||
|
||||
if cmd == 'M':
|
||||
if len(params) >= 2:
|
||||
x, y = params[0], params[1]
|
||||
normalized.append(f"M {x} {y}")
|
||||
prev_x, prev_y = x, y
|
||||
continue
|
||||
|
||||
if path_type == 'Line segment' and cmd == 'L':
|
||||
if len(params) >= 2 and prev_x is not None:
|
||||
x, y = params[0], params[1]
|
||||
need_swap = x < prev_x or (x == prev_x and y < prev_y)
|
||||
|
||||
if need_swap:
|
||||
new_segment = [f"M {x} {y}", f"L {prev_x} {prev_y}"]
|
||||
report.append(f" Need to swap start/end → New path: {' '.join(new_segment)}")
|
||||
normalized = new_segment
|
||||
changed = True
|
||||
else:
|
||||
normalized.append(f"L {x} {y}")
|
||||
report.append(" Path direction already correct, no changes made")
|
||||
|
||||
prev_x, prev_y = x, y
|
||||
continue
|
||||
|
||||
if path_type == 'Arc' and cmd == 'A':
|
||||
if len(params) >= 7 and prev_x is not None:
|
||||
rx, ry, xrot, large, sweep, x, y = params[0], params[1], params[2], int(params[3]), int(params[4]), params[5], params[6]
|
||||
|
||||
# Force left-to-right clockwise
|
||||
need_swap = x < prev_x
|
||||
new_sweep = 1
|
||||
|
||||
if need_swap:
|
||||
new_segment = [f"M {x} {y}", f"A {rx} {ry} {xrot} {large} {new_sweep} {prev_x} {prev_y}"]
|
||||
report.append(f" Need to swap start/end → New path: {' '.join(new_segment)}")
|
||||
normalized = new_segment
|
||||
changed = True
|
||||
else:
|
||||
if sweep != new_sweep:
|
||||
new_segment = [f"A {rx} {ry} {xrot} {large} {new_sweep} {x} {y}"]
|
||||
report.append(f" Need to adjust sweep to 1 → New path: {' '.join(new_segment)}")
|
||||
normalized.extend(new_segment)
|
||||
changed = True
|
||||
else:
|
||||
normalized.append(f"A {rx} {ry} {xrot} {large} {sweep} {x} {y}")
|
||||
report.append(" Arc direction already correct, no changes made")
|
||||
|
||||
prev_x, prev_y = x, y
|
||||
continue
|
||||
|
||||
normalized.append(f"{cmd} {' '.join(map(str, params))}")
|
||||
|
||||
new_d = ' '.join(normalized)
|
||||
report_header = f"[{path_id}-Analysis] Type: {path_type}"
|
||||
full_report = [report_header, f"Original path: {original_d}"] + report
|
||||
|
||||
if changed:
|
||||
full_report.append(f"Modified path: {new_d}")
|
||||
else:
|
||||
full_report.append("Path not modified")
|
||||
|
||||
return new_d, '\n'.join(full_report)
|
||||
def analyze_and_normalize_path(d, path_type, path_id=""):
|
||||
"""Strictly normalize path direction and generate detailed report"""
|
||||
original_d = d
|
||||
report = []
|
||||
normalized = []
|
||||
changed = False
|
||||
|
||||
# First check if path contains any arc commands
|
||||
if 'A' in d or 'a' in d:
|
||||
report_header = f"[{path_id}-Analysis] Type: {path_type} (contains arcs)"
|
||||
full_report = [report_header,
|
||||
f"Original path: {original_d}",
|
||||
" Path contains arc commands - leaving unchanged",
|
||||
"Path not modified"]
|
||||
return original_d, '\n'.join(full_report)
|
||||
|
||||
# Ensure path starts with M command
|
||||
if not d.strip().startswith('M'):
|
||||
d = 'M' + d[1:] if d.startswith('L') else 'M ' + d
|
||||
report.append(" Fix: Added M command at path start")
|
||||
changed = True
|
||||
|
||||
# Parse path commands
|
||||
commands = []
|
||||
current_cmd = None
|
||||
for token in re.split('([A-Za-z])', d):
|
||||
if not token:
|
||||
continue
|
||||
if token in 'MLAZHVCSQTa-z':
|
||||
current_cmd = token
|
||||
else:
|
||||
if current_cmd:
|
||||
commands.append((current_cmd, token.strip()))
|
||||
|
||||
prev_x, prev_y = None, None
|
||||
|
||||
for cmd, params in commands:
|
||||
params = [float(p) for p in re.split('[, ]+', params.strip()) if p]
|
||||
|
||||
if cmd == 'M':
|
||||
if len(params) >= 2:
|
||||
x, y = params[0], params[1]
|
||||
normalized.append(f"M {x} {y}")
|
||||
prev_x, prev_y = x, y
|
||||
continue
|
||||
|
||||
if path_type == 'Line segment' and cmd == 'L':
|
||||
if len(params) >= 2 and prev_x is not None:
|
||||
x, y = params[0], params[1]
|
||||
need_swap = x < prev_x or (x == prev_x and y < prev_y)
|
||||
|
||||
if need_swap:
|
||||
new_segment = [f"M {x} {y}", f"L {prev_x} {prev_y}"]
|
||||
report.append(f" Need to swap start/end → New path: {' '.join(new_segment)}")
|
||||
normalized = new_segment
|
||||
changed = True
|
||||
else:
|
||||
normalized.append(f"L {x} {y}")
|
||||
report.append(" Path direction already correct, no changes made")
|
||||
|
||||
prev_x, prev_y = x, y
|
||||
continue
|
||||
|
||||
normalized.append(f"{cmd} {' '.join(map(str, params))}")
|
||||
|
||||
new_d = ' '.join(normalized)
|
||||
report_header = f"[{path_id}-Analysis] Type: {path_type}"
|
||||
full_report = [report_header, f"Original path: {original_d}"] + report
|
||||
|
||||
if changed:
|
||||
full_report.append(f"Modified path: {new_d}")
|
||||
else:
|
||||
full_report.append("Path not modified")
|
||||
|
||||
return new_d, '\n'.join(full_report)
|
||||
|
||||
def optimize_svg(input_path, output_path):
|
||||
"""Process single SVG file with all optimizations"""
|
||||
try:
|
||||
# Register namespace
|
||||
ET.register_namespace('', 'http://www.w3.org/2000/svg')
|
||||
|
||||
# Parse SVG file
|
||||
tree = ET.parse(input_path)
|
||||
root = tree.getroot()
|
||||
|
||||
print(f"\nProcessing file: {os.path.basename(input_path)}")
|
||||
print("="*60)
|
||||
|
||||
# Create parent map
|
||||
parent_map = {c: p for p in tree.iter() for c in p}
|
||||
|
||||
# 1. Remove xlink namespace
|
||||
for attr in list(root.attrib):
|
||||
if 'xlink' in attr:
|
||||
del root.attrib[attr]
|
||||
|
||||
# 2. Set standard dimensions
|
||||
root.set('width', '1e3')
|
||||
root.set('height', '1e3')
|
||||
root.set('viewBox', '0 0 1e3 1e3')
|
||||
|
||||
# 3. Remove all clipPath definitions and references
|
||||
defs = root.find('{http://www.w3.org/2000/svg}defs')
|
||||
if defs is not None:
|
||||
clip_paths = defs.findall('{http://www.w3.org/2000/svg}clipPath')
|
||||
for cp in clip_paths:
|
||||
defs.remove(cp)
|
||||
if len(defs) == 0:
|
||||
root.remove(defs)
|
||||
|
||||
# 4. Remove clip-path attributes
|
||||
for elem in tree.iter():
|
||||
if 'clip-path' in elem.attrib:
|
||||
del elem.attrib['clip-path']
|
||||
|
||||
# 5. Force square line caps
|
||||
for g in root.findall('.//{http://www.w3.org/2000/svg}g'):
|
||||
g.set('stroke-linecap', 'square')
|
||||
|
||||
# 6. Remove dashed line styles
|
||||
for elem in tree.iter():
|
||||
if 'stroke-dasharray' in elem.attrib:
|
||||
del elem.attrib['stroke-dasharray']
|
||||
|
||||
# 7. Completely remove empty groups
|
||||
removed_groups = True
|
||||
while removed_groups:
|
||||
removed_groups = False
|
||||
for g in root.findall('.//{http://www.w3.org/2000/svg}g'):
|
||||
is_empty = (
|
||||
len(g) == 0 and
|
||||
not (g.text or '').strip() and
|
||||
not (g.tail or '').strip() and
|
||||
all(not k.startswith('{') for k in g.attrib))
|
||||
if is_empty:
|
||||
parent = parent_map.get(g)
|
||||
if parent is not None:
|
||||
parent.remove(g)
|
||||
removed_groups = True
|
||||
parent_map = {c: p for p in tree.iter() for c in p}
|
||||
|
||||
# 8. Convert polylines to paths
|
||||
for polyline in root.findall('.//{http://www.w3.org/2000/svg}polyline'):
|
||||
points = polyline.get('points', '').strip()
|
||||
if points:
|
||||
coords = [p for p in re.split(r'[\s,]', points) if p]
|
||||
path_data = []
|
||||
for i in range(0, len(coords), 2):
|
||||
if i == 0:
|
||||
path_data.append(f"M {coords[i]} {coords[i+1]}")
|
||||
else:
|
||||
path_data.append(f"L {coords[i]} {coords[i+1]}")
|
||||
|
||||
path = ET.Element('{http://www.w3.org/2000/svg}path')
|
||||
new_d, analysis_report = analyze_and_normalize_path(
|
||||
' '.join(path_data),
|
||||
'Line segment',
|
||||
"Polyline conversion"
|
||||
)
|
||||
path.set('d', new_d)
|
||||
print(f"\n[Polyline conversion analysis]\n{analysis_report}")
|
||||
|
||||
for attr, value in polyline.attrib.items():
|
||||
if attr not in ('points', 'stroke-dasharray'):
|
||||
path.set(attr, value)
|
||||
|
||||
parent = parent_map.get(polyline)
|
||||
if parent is not None:
|
||||
parent.remove(polyline)
|
||||
parent.append(path)
|
||||
|
||||
# 9. Normalize path directions (final step)
|
||||
group_num = 0
|
||||
for g in root.findall('.//{http://www.w3.org/2000/svg}g'):
|
||||
group_num += 1
|
||||
path_num = 0
|
||||
group_report = []
|
||||
|
||||
for path in g.findall('.//{http://www.w3.org/2000/svg}path'):
|
||||
path_num += 1
|
||||
if 'd' not in path.attrib:
|
||||
continue
|
||||
|
||||
# Auto-detect path type
|
||||
path_type = 'Arc' if 'A' in path.get('d') else 'Line segment'
|
||||
path_id = f"Group{group_num}-Path{path_num}"
|
||||
|
||||
new_d, analysis_report = analyze_and_normalize_path(
|
||||
path.get('d'),
|
||||
path_type,
|
||||
path_id
|
||||
)
|
||||
|
||||
if new_d != path.get('d'):
|
||||
path.set('d', new_d)
|
||||
|
||||
group_report.append(analysis_report)
|
||||
|
||||
# Print all path reports for current group
|
||||
if group_report:
|
||||
print(f"\n=== Group {group_num} Path Analysis ===")
|
||||
print('\n\n'.join(group_report))
|
||||
|
||||
# 10. Update colors and line width
|
||||
for elem in root.findall('.//*[@stroke]'):
|
||||
stroke = elem.get('stroke', '').lower()
|
||||
if stroke == '#0ff' or stroke == 'rgb(0,255,255)':
|
||||
elem.set('stroke', '#ffe31b')
|
||||
elif stroke == '#000' or stroke == 'rgb(255,0,0)':
|
||||
elem.set('stroke', '#FF0000')
|
||||
elem.set('stroke-width', f'{1}px')
|
||||
|
||||
# Generate final XML
|
||||
rough_string = ET.tostring(root, encoding='utf-8', xml_declaration=True)
|
||||
rough_string = rough_string.replace(b'standalone="no"', b'')
|
||||
|
||||
# Format output (remove empty lines)
|
||||
reparsed = minidom.parseString(rough_string)
|
||||
pretty_svg = reparsed.toprettyxml(indent=' ', encoding='utf-8')
|
||||
pretty_svg = b'\n'.join(
|
||||
line for line in pretty_svg.splitlines()
|
||||
if line.strip()
|
||||
).replace(b'<?xml version="1.0" ?>', b'<?xml version="1.0" encoding="utf-8"?>')
|
||||
|
||||
with open(output_path, 'wb') as f:
|
||||
f.write(pretty_svg)
|
||||
|
||||
print("\n" + "="*60)
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"\nProcessing error: {str(e)}")
|
||||
print("="*60)
|
||||
return False
|
||||
|
||||
def batch_process_svgs(input_dir, output_dir):
|
||||
|
||||
if not os.path.exists(output_dir):
|
||||
os.makedirs(output_dir)
|
||||
|
||||
success_count = 0
|
||||
failure_count = 0
|
||||
|
||||
for filename in os.listdir(input_dir):
|
||||
if os.path.isdir(os.path.join(input_dir, filename)):
|
||||
continue
|
||||
if filename.lower().endswith('.svg') or '_new.svg' in filename.lower():
|
||||
input_path = os.path.join(input_dir, filename)
|
||||
output_filename = filename.replace('_new.svg', '_optimized.svg')
|
||||
output_path = os.path.join(output_dir, output_filename)
|
||||
|
||||
if optimize_svg(input_path, output_path):
|
||||
success_count += 1
|
||||
print(f"✓ Processed successfully: {filename} → {output_filename}")
|
||||
else:
|
||||
failure_count += 1
|
||||
print(f"✗ Processing failed: {filename}")
|
||||
print("\n" + "="*60 + "\n")
|
||||
|
||||
print("\nProcessing summary:")
|
||||
print(f"Successfully processed: {success_count} files")
|
||||
print(f"Failed to process: {failure_count} files")
|
||||
def clear_output_dir(path: str):
|
||||
|
||||
os.makedirs(path, exist_ok=True)
|
||||
for filename in os.listdir(path):
|
||||
file_path = os.path.join(path, filename)
|
||||
try:
|
||||
if os.path.isdir(file_path):
|
||||
shutil.rmtree(file_path) # 删除目录
|
||||
elif os.path.isfile(file_path) or os.path.islink(file_path):
|
||||
os.unlink(file_path) # 删除文件或符号链接
|
||||
except Exception as e:
|
||||
print(f"Failed to delete {file_path}. Reason: {e}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
input_dir = os.environ.get('RD_CONF_TEFBOGEN')
|
||||
output_dir = os.environ.get('RD_CONF_WORK')
|
||||
|
||||
if not input_dir or not output_dir:
|
||||
print("Error: Environment variable RD_CONF_WORK is not set")
|
||||
exit(1)
|
||||
|
||||
if not os.path.exists(input_dir):
|
||||
print(f"Error: Input directory '{input_dir}' does not exist")
|
||||
exit(1)
|
||||
clear_output_dir(output_dir)
|
||||
print(f"Starting SVG file processing, working directory: {input_dir}")
|
||||
print("=" * 50)
|
||||
|
||||
batch_process_svgs(input_dir, output_dir)
|
||||
|
||||
print("Processing completed!")
|
||||
@@ -0,0 +1,158 @@
|
||||
import os
|
||||
import re
|
||||
import xml.etree.ElementTree as ET
|
||||
from typing import Tuple, List
|
||||
|
||||
def parse_svg_path(d: str) -> List[Tuple[float, float]]:
|
||||
"""Extract all coordinates from SVG path data (including curve control points)"""
|
||||
points = []
|
||||
commands = re.findall(
|
||||
r'([MmLlCcQqAaHhVvZz])([^MmLlCcQqAaHhVvZz]*)',
|
||||
d.strip().replace(',', ' ')
|
||||
)
|
||||
current_pos = (0.0, 0.0)
|
||||
|
||||
for cmd, args in commands:
|
||||
args = list(map(float, re.findall(r'[-+]?\d*\.?\d+', args)))
|
||||
if cmd in ('M', 'm', 'L', 'l'): # Move/line commands
|
||||
for i in range(0, len(args), 2):
|
||||
x, y = args[i], args[i+1]
|
||||
if cmd.islower(): # Relative coordinates
|
||||
x += current_pos[0]
|
||||
y += current_pos[1]
|
||||
points.append((x, y))
|
||||
current_pos = (x, y)
|
||||
elif cmd in ('C', 'c'): # Cubic Bezier curves
|
||||
for i in range(0, len(args), 6):
|
||||
x1, y1, x2, y2, x, y = args[i:i+6]
|
||||
if cmd.islower():
|
||||
x1 += current_pos[0]; y1 += current_pos[1]
|
||||
x2 += current_pos[0]; y2 += current_pos[1]
|
||||
x += current_pos[0]; y += current_pos[1]
|
||||
points.extend([(x1, y1), (x2, y2), (x, y)])
|
||||
current_pos = (x, y)
|
||||
elif cmd in ('A', 'a'): # Arc commands (start/end points only)
|
||||
for i in range(0, len(args), 7):
|
||||
x, y = args[i+5], args[i+6]
|
||||
if cmd.islower():
|
||||
x += current_pos[0]
|
||||
y += current_pos[1]
|
||||
points.append((x, y))
|
||||
current_pos = (x, y)
|
||||
return points
|
||||
|
||||
def calculate_bounding_box(svg_file: str) -> Tuple[float, float, float, float]:
|
||||
"""Calculate true bounding box of all paths in SVG"""
|
||||
tree = ET.parse(svg_file)
|
||||
root = tree.getroot()
|
||||
all_points = []
|
||||
|
||||
for path in root.findall('.//{http://www.w3.org/2000/svg}path'):
|
||||
d = path.get('d', '')
|
||||
all_points.extend(parse_svg_path(d))
|
||||
|
||||
if not all_points:
|
||||
return (0, 0, 0, 0)
|
||||
|
||||
x_min = min(p[0] for p in all_points)
|
||||
x_max = max(p[0] for p in all_points)
|
||||
y_min = min(p[1] for p in all_points)
|
||||
y_max = max(p[1] for p in all_points)
|
||||
return (x_min, y_min, x_max, y_max)
|
||||
|
||||
|
||||
def normalize_stroke_widths2(root, scale):
|
||||
"""Normalize stroke widths to ensure consistent appearance after scaling"""
|
||||
for elem in root.iter():
|
||||
if 'stroke-width' in elem.attrib:
|
||||
# Remove existing stroke-width
|
||||
del elem.attrib['stroke-width']
|
||||
# Apply scaled stroke width (e.g., 1px → 1/scale)
|
||||
elem.set('stroke-width', f'{1/scale:.6f}px')
|
||||
|
||||
def apply_non_scaling_stroke(root):
|
||||
|
||||
for elem in root.iter():
|
||||
if 'stroke' in elem.attrib and elem.attrib['stroke'] != 'none':
|
||||
# set stroke-width=1(no unit)
|
||||
elem.set('stroke-width', '1')
|
||||
# set vector-effect
|
||||
elem.set('vector-effect', 'non-scaling-stroke')
|
||||
|
||||
def scale_svg_file(input_path: str, output_path: str):
|
||||
"""Scale SVG file with consistent stroke widths"""
|
||||
print(f"\nProcessing: {os.path.basename(input_path)}")
|
||||
|
||||
tree = ET.parse(input_path)
|
||||
root = tree.getroot()
|
||||
|
||||
# Calculate original bounding box
|
||||
x_min, y_min, x_max, y_max = calculate_bounding_box(input_path)
|
||||
width = x_max - x_min
|
||||
height = y_max - y_min
|
||||
|
||||
print(f"Original bounding box: ({x_min:.3f}, {y_min:.3f}) to ({x_max:.3f}, {y_max:.3f})")
|
||||
print(f"Original dimensions: {width:.3f} (w) × {height:.3f} (h)")
|
||||
|
||||
|
||||
# Determine scaling base (larger dimension → 1000px)
|
||||
if width > height:
|
||||
scale = 1000.0 / width
|
||||
new_width = 1000.0
|
||||
new_height = round(height * scale,3)
|
||||
print(f"Scaling base: Width (larger dimension)")
|
||||
else:
|
||||
scale = 1000.0 / height
|
||||
new_height = 1000.0
|
||||
new_width = round(width * scale,3)
|
||||
print(f"Scaling base: Height (larger dimension)")
|
||||
|
||||
print(f"Scale factor: {scale:.6f}")
|
||||
print(f"New dimensions: {new_width:.3f}px × {new_height:.3f}px")
|
||||
print(f"ViewBox: 0 0 {new_width:.3f} {new_height:.3f}")
|
||||
normalize_stroke_widths2(root, scale)
|
||||
#apply_non_scaling_stroke(root)
|
||||
#
|
||||
# Update SVG attributes
|
||||
root.set('viewBox', f'0 0 {new_width:.3f} {new_height:.3f}')
|
||||
root.set('width', f'{new_width:.3f}')
|
||||
root.set('height', f'{new_height:.3f}')
|
||||
|
||||
# Apply translation and scaling
|
||||
for g in root.findall('{http://www.w3.org/2000/svg}g'):
|
||||
transform = g.get('transform', '')
|
||||
new_transform = f'translate({-x_min*scale},{-y_min*scale}) scale({scale})'
|
||||
if transform:
|
||||
new_transform = f'{transform} {new_transform}'
|
||||
g.set('transform', new_transform)
|
||||
|
||||
# Save modified SVG
|
||||
tree.write(output_path, encoding='utf-8', xml_declaration=True)
|
||||
print(f"Finished processing: {os.path.basename(input_path)}")
|
||||
|
||||
def batch_process_svg(input_dir: str, output_dir: str):
|
||||
"""Batch process SVG files in directory (non-recursive)"""
|
||||
if not os.path.exists(output_dir):
|
||||
os.makedirs(output_dir)
|
||||
|
||||
svg_files = [
|
||||
f for f in os.listdir(input_dir)
|
||||
if f.lower().endswith('.svg') and os.path.isfile(os.path.join(input_dir, f))
|
||||
]
|
||||
|
||||
if not svg_files:
|
||||
print("No SVG files found in the input directory!")
|
||||
return
|
||||
|
||||
print(f"\nFound {len(svg_files)} SVG files to process")
|
||||
for filename in svg_files:
|
||||
input_path = os.path.join(input_dir, filename)
|
||||
output_path = os.path.join(output_dir, filename)
|
||||
scale_svg_file(input_path, output_path)
|
||||
|
||||
print("\nAll files processed successfully!")
|
||||
|
||||
if __name__ == '__main__':
|
||||
input_dir = os.environ.get('RD_CONF_WORK')
|
||||
output_dir = os.environ.get('RD_CONF_WORK')
|
||||
batch_process_svg(input_dir, output_dir)
|
||||
@@ -0,0 +1,159 @@
|
||||
import re
|
||||
import os
|
||||
import xml.etree.ElementTree as ET
|
||||
from typing import List, Dict, Tuple
|
||||
|
||||
def process_svg_file(input_path: str, output_path: str) -> bool:
|
||||
"""Process SVG file while preserving original dimensions and viewBox"""
|
||||
try:
|
||||
# Parse SVG file
|
||||
tree = ET.parse(input_path)
|
||||
root = tree.getroot()
|
||||
|
||||
# Store original dimensions and viewBox
|
||||
original_attrs = {
|
||||
'width': root.attrib.get('width', '100%'),
|
||||
'height': root.attrib.get('height', '100%'),
|
||||
'viewBox': root.attrib.get('viewBox', '')
|
||||
}
|
||||
|
||||
# Remove namespace prefixes
|
||||
for elem in root.iter():
|
||||
if '}' in elem.tag:
|
||||
elem.tag = elem.tag.split('}', 1)[1]
|
||||
for attr in list(elem.attrib):
|
||||
if '}' in attr:
|
||||
new_attr = attr.split('}', 1)[1]
|
||||
elem.attrib[new_attr] = elem.attrib[attr]
|
||||
del elem.attrib[attr]
|
||||
|
||||
# Process all groups with transforms
|
||||
for g in root.findall('g'):
|
||||
if 'transform' in g.attrib:
|
||||
# Parse transform and convert to matrix
|
||||
transform = g.attrib['transform']
|
||||
matrix_str = convert_transform_to_matrix(transform)
|
||||
|
||||
# Update group attributes
|
||||
g.attrib['transform'] = matrix_str # Force stroke color
|
||||
g.attrib['fill'] = 'none'
|
||||
g.attrib['stroke-linecap'] = 'butt'
|
||||
g.attrib['vector-effect'] = 'non-scaling-stroke'
|
||||
|
||||
# Format paths within group
|
||||
for path in g.findall('path'):
|
||||
path.attrib['d'] = simplify_path_data(path.attrib.get('d', ''))
|
||||
path.tail = '\n ' # Maintain consistent indentation
|
||||
|
||||
# Set root attributes while preserving original dimensions
|
||||
root.attrib.update({
|
||||
'version': '1.1',
|
||||
'xmlns': 'http://www.w3.org/2000/svg',
|
||||
'width': original_attrs['width'],
|
||||
'height': original_attrs['height'],
|
||||
'viewBox': original_attrs['viewBox'],
|
||||
'fill-rule': 'evenodd',
|
||||
'stroke-linecap': 'round',
|
||||
'stroke-linejoin': 'round',
|
||||
'space': 'preserve'
|
||||
})
|
||||
|
||||
# Format XML with proper indentation
|
||||
indent(root)
|
||||
|
||||
# Generate XML string
|
||||
xml_str = ET.tostring(root, encoding='unicode')
|
||||
xml_str = '<?xml version="1.0" encoding="UTF-8"?>\n' + xml_str
|
||||
|
||||
# Clean up formatting
|
||||
xml_str = re.sub(r'\n\s*\n', '\n', xml_str)
|
||||
xml_str = re.sub(r'>\s+<', '>\n<', xml_str)
|
||||
|
||||
# Write to file
|
||||
with open(output_path, 'w', encoding='utf-8') as f:
|
||||
f.write(xml_str)
|
||||
|
||||
print(f"Processed: {os.path.basename(input_path)}")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"Failed {os.path.basename(input_path)}: {str(e)}")
|
||||
return False
|
||||
|
||||
def convert_transform_to_matrix(transform: str) -> str:
|
||||
"""Convert transform string to matrix notation with 4 decimal places"""
|
||||
tx = ty = 0.0
|
||||
translate_match = re.search(r'translate\(([^,]+),\s*([^)]+)\)', transform)
|
||||
if translate_match:
|
||||
tx = float(translate_match.group(1))
|
||||
ty = float(translate_match.group(2))
|
||||
|
||||
scale = 1.0
|
||||
scale_match = re.search(r'scale\(([^)]+)\)', transform)
|
||||
if scale_match:
|
||||
scale = float(scale_match.group(1))
|
||||
|
||||
return f"matrix({scale:.4f} 0 0 {scale:.4f} {tx:.2f} {ty:.2f})"
|
||||
|
||||
def simplify_path_data(d: str) -> str:
|
||||
"""Simplify path data while maintaining relative commands"""
|
||||
d = re.sub(r'\s+', ' ', d.strip())
|
||||
|
||||
def format_number(num_str: str) -> str:
|
||||
try:
|
||||
num = float(num_str)
|
||||
if abs(num) < 0.001 and num != 0:
|
||||
return f"{num:.0e}".replace('e-0', 'e-')
|
||||
if abs(num - 1000) < 0.1:
|
||||
return '1e3'
|
||||
if abs(num - round(num, 3)) < 0.0001:
|
||||
return f"{round(num, 3):g}"
|
||||
return num_str
|
||||
except ValueError:
|
||||
return num_str
|
||||
|
||||
parts = []
|
||||
for part in re.split(r'([ ,])', d):
|
||||
if re.match(r'^[-+]?\d*\.?\d+$', part):
|
||||
parts.append(format_number(part))
|
||||
else:
|
||||
parts.append(part)
|
||||
|
||||
return ''.join(parts).replace(' ,', ',')
|
||||
|
||||
def indent(elem: ET.Element, level: int = 0):
|
||||
"""Properly indent XML elements"""
|
||||
indent_str = "\n" + level * " "
|
||||
if len(elem):
|
||||
if not elem.text or not elem.text.strip():
|
||||
elem.text = indent_str + " "
|
||||
if not elem.tail or not elem.tail.strip():
|
||||
elem.tail = indent_str
|
||||
for child in elem:
|
||||
indent(child, level + 1)
|
||||
if not elem.tail or not elem.tail.strip():
|
||||
elem.tail = indent_str
|
||||
else:
|
||||
if level and (not elem.tail or not elem.tail.strip()):
|
||||
elem.tail = indent_str
|
||||
|
||||
def batch_process_svgs(input_dir: str, output_dir: str):
|
||||
"""Process all SVG files in a directory"""
|
||||
if not os.path.exists(output_dir):
|
||||
os.makedirs(output_dir)
|
||||
|
||||
success_count = 0
|
||||
for filename in sorted(os.listdir(input_dir)):
|
||||
if filename.lower().endswith('.svg'):
|
||||
input_path = os.path.join(input_dir, filename)
|
||||
output_path = os.path.join(output_dir, filename)
|
||||
if process_svg_file(input_path, output_path):
|
||||
success_count += 1
|
||||
|
||||
print(f"\nCompleted: {success_count} files processed")
|
||||
|
||||
if __name__ == '__main__':
|
||||
input_dir = os.environ.get('RD_CONF_WORK')
|
||||
output_dir = os.environ.get('RD_CONF_OUTPUT_TEFBOGEN')
|
||||
# Example usage:
|
||||
batch_process_svgs(input_dir, output_dir)
|
||||
@@ -5,7 +5,8 @@ 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
|
||||
4. Processes only red color groups (#FF0000)
|
||||
5. Provides comprehensive reporting
|
||||
"""
|
||||
|
||||
import json
|
||||
@@ -15,7 +16,7 @@ from xml.etree.ElementTree import Element, SubElement, tostring
|
||||
|
||||
def process_xml_file(xml_path):
|
||||
"""
|
||||
Process a single XML file with enhanced style handling
|
||||
Process a single XML file focusing on red color groups only
|
||||
Returns modification statistics
|
||||
"""
|
||||
try:
|
||||
@@ -27,68 +28,60 @@ def process_xml_file(xml_path):
|
||||
namespaces = {'svg': 'http://www.w3.org/2000/svg'}
|
||||
|
||||
stats = {
|
||||
'ffe31b_groups': 0,
|
||||
'ec2525_groups': 0,
|
||||
'other_groups_processed': 0,
|
||||
'elements_modified': 0,
|
||||
'modified': False
|
||||
'ff0000_groups': 0, # Count of #FF0000 groups processed
|
||||
'other_red_groups': 0, # Count of other red-style groups processed
|
||||
'elements_modified': 0, # Total elements modified
|
||||
'modified': False # Whether file was modified
|
||||
}
|
||||
|
||||
# Process all group elements
|
||||
for g in root.findall('.//svg:g', namespaces):
|
||||
stroke = g.get('stroke')
|
||||
stroke = g.get('stroke', '').upper() # Normalize to uppercase for comparison
|
||||
|
||||
if stroke == "#ffe31b":
|
||||
stats['ffe31b_groups'] += 1
|
||||
# Process #FF0000 red groups
|
||||
if stroke == "#FF0000":
|
||||
stats['ff0000_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
|
||||
# Remove group attributes: stroke, stroke-width, stroke-linejoin
|
||||
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')
|
||||
# Modify path children: remove stroke-width, set new style
|
||||
for child in g.findall('.//svg:path', namespaces):
|
||||
if 'stroke-width' in child.attrib:
|
||||
del child.attrib['stroke-width']
|
||||
stats['modified'] = True
|
||||
|
||||
# Set new style for red stroke with 2px width
|
||||
child.set('style', 'stroke:#FF0000;stroke-width:2px')
|
||||
stats['elements_modified'] += 1
|
||||
stats['modified'] = True
|
||||
|
||||
# Process other groups with red color in style attributes
|
||||
else:
|
||||
# Handle groups without specific stroke color
|
||||
stats['other_groups_processed'] += 1
|
||||
|
||||
# Process elements with style="stroke:#ec2525;"
|
||||
# Process elements with style="stroke:#FF0000;"
|
||||
red_elements_found = False
|
||||
for child in g.findall('.//svg:*[@style]', namespaces):
|
||||
style = child.get('style', '')
|
||||
if 'stroke:#ec2525;' in style:
|
||||
# Remove stroke-width if exists
|
||||
if 'stroke:#FF0000;' in style:
|
||||
red_elements_found = True
|
||||
|
||||
# Remove stroke-width attribute 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;')
|
||||
# Update the style attribute with standardized format
|
||||
child.set('style', 'stroke:#FF0000;stroke-width:2px;')
|
||||
stats['elements_modified'] += 1
|
||||
stats['modified'] = True
|
||||
|
||||
if red_elements_found:
|
||||
stats['other_red_groups'] += 1
|
||||
|
||||
# Save changes if modified
|
||||
# Save changes if modifications were made
|
||||
if stats['modified']:
|
||||
xml_str = ET.tostring(root, encoding='unicode')
|
||||
xml_str = xml_str.replace('><', '>\n<').replace('</svg>', '\n</svg>')
|
||||
@@ -106,11 +99,19 @@ def main():
|
||||
"""
|
||||
Main processing function
|
||||
"""
|
||||
# Configure paths
|
||||
json_path=os.environ.get("JSON_PATH_TEFBOGEN","JSON")
|
||||
json_file_path = os.path.join(json_path,"1_TEF_Boegen_input.json")
|
||||
svg_folder_path = os.environ.get("SVG_PATH","svg")
|
||||
# Configure paths from environment variables
|
||||
json_path = os.environ.get("JSON_PATH_TEFBOGEN", "JSON")
|
||||
json_file_path = os.path.join(json_path, "1_TEF_Boegen_output.json")
|
||||
svg_folder_path = os.environ.get("SVG_PATH", "svg")
|
||||
|
||||
# Statistics for final report
|
||||
total_stats = {
|
||||
'files_processed': 0,
|
||||
'files_modified': 0,
|
||||
'total_ff0000_groups': 0,
|
||||
'total_other_red_groups': 0,
|
||||
'total_elements_modified': 0
|
||||
}
|
||||
|
||||
try:
|
||||
# Read and parse JSON file
|
||||
@@ -123,6 +124,8 @@ def main():
|
||||
return
|
||||
|
||||
print(f"\nFound {len(data)} items in JSON file")
|
||||
print("Starting XML file processing...")
|
||||
print("=" * 60)
|
||||
|
||||
# Process each item in the JSON array
|
||||
for index, item in enumerate(data, 1):
|
||||
@@ -146,6 +149,7 @@ def main():
|
||||
continue
|
||||
|
||||
print(f" Found XML file: {xml_path}")
|
||||
total_stats['files_processed'] += 1
|
||||
|
||||
# Process the XML file
|
||||
stats = process_xml_file(xml_path)
|
||||
@@ -153,22 +157,40 @@ def main():
|
||||
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']}")
|
||||
print(" ✓ File successfully modified")
|
||||
total_stats['files_modified'] += 1
|
||||
total_stats['total_ff0000_groups'] += stats['ff0000_groups']
|
||||
total_stats['total_other_red_groups'] += stats['other_red_groups']
|
||||
total_stats['total_elements_modified'] += stats['elements_modified']
|
||||
|
||||
# Print detailed statistics for this file
|
||||
if stats['ff0000_groups'] > 0:
|
||||
print(f" - #FF0000 groups processed: {stats['ff0000_groups']}")
|
||||
if stats['other_red_groups'] > 0:
|
||||
print(f" - Other red style groups: {stats['other_red_groups']}")
|
||||
print(f" - Elements modified: {stats['elements_modified']}")
|
||||
else:
|
||||
print(" No modifications needed")
|
||||
print(" - No modifications needed (no red groups found)")
|
||||
|
||||
print("\nProcessing complete")
|
||||
# Generate final comprehensive report
|
||||
print("\n" + "=" * 60)
|
||||
print("PROCESSING SUMMARY REPORT")
|
||||
print("=" * 60)
|
||||
print(f"Total files processed: {total_stats['files_processed']}")
|
||||
print(f"Total files modified: {total_stats['files_modified']}")
|
||||
print(f"Total #FF0000 groups processed: {total_stats['total_ff0000_groups']}")
|
||||
print(f"Total other red style groups: {total_stats['total_other_red_groups']}")
|
||||
print(f"Total elements modified: {total_stats['total_elements_modified']}")
|
||||
print("=" * 60)
|
||||
|
||||
except FileNotFoundError:
|
||||
print("\nError: JSON file not found")
|
||||
print("\nError: JSON file not found at specified path")
|
||||
except json.JSONDecodeError:
|
||||
print("\nError: Invalid JSON format")
|
||||
print("\nError: Invalid JSON format in input file")
|
||||
except Exception as e:
|
||||
print(f"\nUnexpected error: {str(e)}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("SVG XML Batch Modifier - Starting execution")
|
||||
print("Focus: Processing only red color groups (#FF0000)")
|
||||
main()
|
||||
@@ -0,0 +1,194 @@
|
||||
import os
|
||||
import re
|
||||
import json
|
||||
from xml.etree import ElementTree as ET
|
||||
from xml.dom import minidom
|
||||
|
||||
def extract_sivasnr(filename):
|
||||
"""Extract content before _TEFBogen from filename"""
|
||||
match = re.search(r'^(.+?)_TEFBogen', filename)
|
||||
return match.group(1) if match else None
|
||||
|
||||
def should_skip_stroke_width(element_attrib):
|
||||
"""Check if element should skip stroke-width setting"""
|
||||
# Check style attribute
|
||||
if 'style' in element_attrib:
|
||||
style = element_attrib['style'].lower()
|
||||
if 'stroke:none' in style and 'fill:none' in style:
|
||||
return True
|
||||
|
||||
# Check separate stroke and fill attributes
|
||||
stroke = element_attrib.get('stroke', '').lower()
|
||||
fill = element_attrib.get('fill', '').lower()
|
||||
return stroke == 'none' and fill == 'none'
|
||||
|
||||
def create_xml_structure(svg_root):
|
||||
"""Create target XML structure preserving all elements"""
|
||||
# Create base structure
|
||||
new_root = ET.Element("svg", xmlns="http://www.w3.org/2000/svg")
|
||||
g_layer = ET.SubElement(new_root, "g", transform="rotate(0)")
|
||||
|
||||
# Add inner SVG container
|
||||
inner_svg = ET.SubElement(g_layer, "svg", {
|
||||
"viewBox": svg_root.attrib.get("viewBox", "0 0 1000 1000"),
|
||||
"preserveAspectRatio": "none",
|
||||
"position": "absolute",
|
||||
"overflow": "visible"
|
||||
})
|
||||
|
||||
# Transfer all content
|
||||
for elem in svg_root:
|
||||
if elem.tag.endswith("}g"):
|
||||
# Process group with namespace
|
||||
new_g = ET.SubElement(inner_svg, "g", attrib={
|
||||
k: v for k, v in elem.attrib.items()
|
||||
if not k.startswith("xmlns")
|
||||
})
|
||||
|
||||
# Process all elements within group
|
||||
for child in elem:
|
||||
child_tag = child.tag.split("}")[-1] # Remove namespace
|
||||
child_attrib = {}
|
||||
|
||||
# Preserve all original attributes (except namespace)
|
||||
for k, v in child.attrib.items():
|
||||
if not k.startswith("xmlns"):
|
||||
child_attrib[k] = v
|
||||
|
||||
# Only add stroke-width if not stroke:none;fill:none
|
||||
if not should_skip_stroke_width(child.attrib):
|
||||
child_attrib["stroke-width"] = "1px"
|
||||
|
||||
# Create element with preserved attributes
|
||||
ET.SubElement(new_g, child_tag, attrib=child_attrib)
|
||||
|
||||
else:
|
||||
# Process standalone elements (path, circle, etc.)
|
||||
elem_tag = elem.tag.split("}")[-1] # Remove namespace
|
||||
elem_attrib = {}
|
||||
|
||||
# Preserve all original attributes (except namespace)
|
||||
for k, v in elem.attrib.items():
|
||||
if not k.startswith("xmlns"):
|
||||
elem_attrib[k] = v
|
||||
|
||||
# Only add stroke-width if not stroke:none;fill:none
|
||||
if not should_skip_stroke_width(elem.attrib):
|
||||
elem_attrib["stroke-width"] = "1px"
|
||||
|
||||
ET.SubElement(inner_svg, elem_tag, attrib=elem_attrib)
|
||||
|
||||
return new_root
|
||||
|
||||
def format_xml(element):
|
||||
"""Generate formatted XML string"""
|
||||
# Generate XML with declaration
|
||||
xml_str = ET.tostring(element, encoding="UTF-8", xml_declaration=True)
|
||||
|
||||
# Pretty format with 2-space indent
|
||||
dom = minidom.parseString(xml_str)
|
||||
pretty_xml = dom.toprettyxml(indent=" ", encoding="UTF-8").decode("UTF-8")
|
||||
|
||||
# Remove extra empty lines (preserve structure)
|
||||
lines = []
|
||||
for line in pretty_xml.split("\n"):
|
||||
if line.strip() or line.lstrip().startswith("</"):
|
||||
lines.append(line)
|
||||
return "\n".join(lines)
|
||||
|
||||
def convert_svg_to_xml(svg_path, output_dir):
|
||||
"""Convert SVG to target XML format"""
|
||||
sivasnr = extract_sivasnr(os.path.basename(svg_path))
|
||||
if not sivasnr:
|
||||
raise ValueError(f"Invalid filename format: {os.path.basename(svg_path)}")
|
||||
|
||||
# Parse original SVG
|
||||
try:
|
||||
tree = ET.parse(svg_path)
|
||||
svg_root = tree.getroot()
|
||||
except Exception as e:
|
||||
raise ValueError(f"SVG parsing error: {str(e)}")
|
||||
|
||||
# Build new structure
|
||||
new_xml = create_xml_structure(svg_root)
|
||||
formatted_xml = format_xml(new_xml)
|
||||
|
||||
# Ensure output directory exists
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
output_path = os.path.join(output_dir, f"{sivasnr}.xml")
|
||||
|
||||
# Write file (UTF-8 encoding)
|
||||
with open(output_path, "w", encoding="UTF-8") as f:
|
||||
f.write(formatted_xml)
|
||||
|
||||
return f"SSG/shapes/svg/{sivasnr}.xml"
|
||||
|
||||
def update_txt_file(txt_path, xml_rel_path):
|
||||
"""Update path in TXT file"""
|
||||
try:
|
||||
with open(txt_path, "r", encoding="UTF-8-sig") as f:
|
||||
data = json.load(f)
|
||||
|
||||
if "srcSVG" not in data:
|
||||
raise ValueError("Missing srcSVG field")
|
||||
|
||||
data["srcSVG"] = xml_rel_path
|
||||
|
||||
with open(txt_path, "w", encoding="UTF-8") as f:
|
||||
json.dump(data, f, indent=4, ensure_ascii=False)
|
||||
return True
|
||||
except Exception as e:
|
||||
print(f"Update failed {os.path.basename(txt_path)}: {str(e)}")
|
||||
return False
|
||||
|
||||
def process_files(svg_dir, txt_dir, output_dir):
|
||||
"""Batch process files"""
|
||||
if not all(map(os.path.exists, [svg_dir, txt_dir])):
|
||||
raise FileNotFoundError("Input directory not found")
|
||||
|
||||
results = {"success": 0, "failed": 0}
|
||||
|
||||
for svg_file in os.listdir(svg_dir):
|
||||
if not svg_file.endswith(".svg"):
|
||||
continue
|
||||
|
||||
svg_path = os.path.join(svg_dir, svg_file)
|
||||
sivasnr = extract_sivasnr(svg_file)
|
||||
|
||||
if not sivasnr:
|
||||
print(f"Skipping invalid file: {svg_file}")
|
||||
results["failed"] += 1
|
||||
continue
|
||||
|
||||
try:
|
||||
# Convert file
|
||||
xml_rel_path = convert_svg_to_xml(svg_path, output_dir)
|
||||
|
||||
# Update TXT
|
||||
txt_path = os.path.join(txt_dir, f"{sivasnr}.txt")
|
||||
if not os.path.exists(txt_path):
|
||||
raise FileNotFoundError(f"Corresponding TXT file not found: {sivasnr}.txt")
|
||||
|
||||
if update_txt_file(txt_path, xml_rel_path):
|
||||
print(f"Success: {svg_file} → {sivasnr}.xml")
|
||||
results["success"] += 1
|
||||
else:
|
||||
results["failed"] += 1
|
||||
|
||||
except Exception as e:
|
||||
print(f"Processing failed {svg_file}: {str(e)}")
|
||||
results["failed"] += 1
|
||||
|
||||
# Output report
|
||||
print(f"\nProcessing complete: {results['success']} succeeded, {results['failed']} failed")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Configuration - modify these paths as needed
|
||||
SVG_INPUT_FOLDER = os.environ.get('RD_CONF_OUTPUT_TEFBOGEN') # Folder containing SVG files
|
||||
SVG_OUTPUT_FOLDER = os.environ.get("SVG_PATH","svg")
|
||||
PRORPS_FOLDER = os.environ.get("PROPS_PATH", "props") # Folder containing txt files
|
||||
|
||||
# Start processing
|
||||
process_files(SVG_INPUT_FOLDER, PRORPS_FOLDER, SVG_OUTPUT_FOLDER)
|
||||
print("\nProcessing complete.")
|
||||
@@ -23,16 +23,16 @@
|
||||
"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,
|
||||
"Gruppe_width_mm":821.0391,
|
||||
"Gruppe_height_mm":821.0391,
|
||||
"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,
|
||||
"OFBogen_CP1_y_mm":21.0391,
|
||||
"TEFBogen_CP1_y_mm":121.0391,
|
||||
"SivasnrTEF": "0_B10050",
|
||||
"Antriebsart":1
|
||||
},
|
||||
@@ -41,16 +41,16 @@
|
||||
"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,
|
||||
"Gruppe_width_mm":537.5439,
|
||||
"Gruppe_height_mm":232.0561,
|
||||
"OFBogen_center_line_width_mm": 514.4906,
|
||||
"OFBogen_center_line_height_mm": 122.2298,
|
||||
"TEFBogen_center_line_width_mm": 412.6925,
|
||||
"TEFBogen_center_line_height_mm": 82.0896,
|
||||
"OFBogen_CP1_x_mm":15.002,
|
||||
"TEFBogen_CP1_x_mm":0,
|
||||
"OFBogen_CP1_y_mm":21.040,
|
||||
"TEFBogen_CP1_y_mm":121.049,
|
||||
"OFBogen_CP1_y_mm":21.0391,
|
||||
"TEFBogen_CP1_y_mm":121.0491,
|
||||
"SivasnrTEF": "0_B10090",
|
||||
"Antriebsart":1
|
||||
},
|
||||
@@ -59,12 +59,12 @@
|
||||
"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,
|
||||
"Gruppe_width_mm":655.569,
|
||||
"Gruppe_height_mm":272.9777,
|
||||
"OFBogen_center_line_width_mm": 514.4906,
|
||||
"OFBogen_center_line_height_mm": 122.2298,
|
||||
"TEFBogen_center_line_width_mm": 643.5863,
|
||||
"TEFBogen_center_line_height_mm": 125.6835,
|
||||
"OFBogen_CP1_x_mm":100.867,
|
||||
"TEFBogen_CP1_x_mm":0,
|
||||
"OFBogen_CP1_y_mm":131.310,
|
||||
@@ -78,16 +78,16 @@
|
||||
"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,
|
||||
"Gruppe_width_mm":610.1420,
|
||||
"Gruppe_height_mm":308.2175,
|
||||
"OFBogen_center_line_width_mm": 595.2651,
|
||||
"OFBogen_center_line_height_mm": 265.9976,
|
||||
"TEFBogen_center_line_width_mm": 398.4321,
|
||||
"TEFBogen_center_line_height_mm": 165.0360,
|
||||
"OFBogen_CP1_x_mm":0,
|
||||
"TEFBogen_CP1_x_mm":54.446,
|
||||
"OFBogen_CP1_y_mm":21.040,
|
||||
"TEFBogen_CP1_y_mm":121.049,
|
||||
"TEFBogen_CP1_x_mm":54.4459,
|
||||
"OFBogen_CP1_y_mm":21.0391,
|
||||
"TEFBogen_CP1_y_mm":121.0491,
|
||||
"SivasnrTEF": "0_B10071",
|
||||
"Antriebsart":1
|
||||
},
|
||||
@@ -96,13 +96,13 @@
|
||||
"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,
|
||||
"Gruppe_width_mm":958.8738,
|
||||
"Gruppe_height_mm":446.7458,
|
||||
"OFBogen_center_line_width_mm": 865.6135,
|
||||
"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_center_line_width_mm": 936.7413,
|
||||
"TEFBogen_center_line_height_mm":329.9848,
|
||||
"OFBogen_CP1_x_mm":0.2765,
|
||||
"TEFBogen_CP1_x_mm":0,
|
||||
"OFBogen_CP1_y_mm":131.310,
|
||||
"TEFBogen_CP1_y_mm":31.30,
|
||||
@@ -114,16 +114,16 @@
|
||||
"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,
|
||||
"Gruppe_width_mm":880.9424,
|
||||
"Gruppe_height_mm":414.4959,
|
||||
"OFBogen_center_line_width_mm": 865.6135,
|
||||
"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_center_line_width_mm": 759.3957,
|
||||
"TEFBogen_center_line_height_mm": 271.3132,
|
||||
"OFBogen_CP1_x_mm":0.4520,
|
||||
"TEFBogen_CP1_x_mm":0,
|
||||
"OFBogen_CP1_y_mm":21.04,
|
||||
"TEFBogen_CP1_y_mm":121.049,
|
||||
"OFBogen_CP1_y_mm":21.0391,
|
||||
"TEFBogen_CP1_y_mm":121.0491,
|
||||
"SivasnrTEF": "0_B10070",
|
||||
"Antriebsart":1
|
||||
},
|
||||
@@ -132,16 +132,16 @@
|
||||
"ProfilTyp": "APB 110 R 400/67,5° – 339/508 mit TEF Innen",
|
||||
"Radius": 400,
|
||||
"KurvenWinkel": 67.5,
|
||||
"Gruppe_width_mm":527.258,
|
||||
"Gruppe_width_mm":527.2577,
|
||||
"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_center_line_width_mm": 507.8202,
|
||||
"OFBogen_center_line_height_mm": 339.3146,
|
||||
"TEFBogen_center_line_width_mm": 306.3387,
|
||||
"TEFBogen_center_line_height_mm": 198.6754,
|
||||
"OFBogen_CP1_x_mm":0,
|
||||
"TEFBogen_CP1_x_mm":76.402,
|
||||
"OFBogen_CP1_y_mm":21.040,
|
||||
"TEFBogen_CP1_y_mm":121.049,
|
||||
"TEFBogen_CP1_x_mm":76.4023,
|
||||
"OFBogen_CP1_y_mm":21.0391,
|
||||
"TEFBogen_CP1_y_mm":121.0491,
|
||||
"SivasnrTEF": "0_B10081",
|
||||
"Antriebsart":1
|
||||
},
|
||||
@@ -150,16 +150,16 @@
|
||||
"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,
|
||||
"Gruppe_width_mm":768.0954,
|
||||
"Gruppe_height_mm":559.3956,
|
||||
"OFBogen_center_line_width_mm": 748.6579,
|
||||
"OFBogen_center_line_height_mm": 530.3052,
|
||||
"TEFBogen_center_line_width_mm": 469.7517,
|
||||
"TEFBogen_center_line_height_mm": 353.6347,
|
||||
"OFBogen_CP1_x_mm":0,
|
||||
"TEFBogen_CP1_x_mm":138.902,
|
||||
"OFBogen_CP1_y_mm":21.040,
|
||||
"TEFBogen_CP1_y_mm":121.050,
|
||||
"TEFBogen_CP1_x_mm":138.9023,
|
||||
"OFBogen_CP1_y_mm":21.0391,
|
||||
"TEFBogen_CP1_y_mm":121.0491,
|
||||
"SivasnrTEF": "0_B10080",
|
||||
"Antriebsart":1
|
||||
}
|
||||
|
||||
@@ -20,10 +20,10 @@
|
||||
"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,
|
||||
"Gruppe_width_px": 3519.874,
|
||||
"Gruppe_height_px": 3519.874,
|
||||
"calculated_SVG_width_px": 1000,
|
||||
"calculated_SVG_height_px": 1000.0,
|
||||
"calculated_SVG_height_px": 1000,
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
@@ -60,37 +60,37 @@
|
||||
"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,
|
||||
"Gruppe_width_mm": 821.0391,
|
||||
"Gruppe_height_mm": 821.0391,
|
||||
"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,
|
||||
"OFBogen_CP1_y_mm": 21.0391,
|
||||
"TEFBogen_CP1_y_mm": 121.0391,
|
||||
"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,
|
||||
"OFBogen_CP2_y_mm": 821.039,
|
||||
"TEFBogen_CP2_y_mm": 821.039,
|
||||
"Gruppe_width_px": 3103.1399,
|
||||
"Gruppe_height_px": 3103.1399,
|
||||
"calculated_SVG_width_px": 1000,
|
||||
"calculated_SVG_height_px": 1000.0,
|
||||
"calculated_SVG_height_px": 1000,
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 25.626,
|
||||
"y": 25.625,
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 974.374,
|
||||
"x": 974.375,
|
||||
"y": 1000.0,
|
||||
"direction": 180.0,
|
||||
"linkClass": "Omniflo"
|
||||
@@ -98,13 +98,13 @@
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 147.423,
|
||||
"y": 147.422,
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 852.577,
|
||||
"x": 852.578,
|
||||
"y": 1000.0,
|
||||
"direction": 180.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
@@ -116,52 +116,52 @@
|
||||
"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,
|
||||
"Gruppe_width_mm": 537.5439,
|
||||
"Gruppe_height_mm": 232.0561,
|
||||
"OFBogen_center_line_width_mm": 514.4906,
|
||||
"OFBogen_center_line_height_mm": 122.2298,
|
||||
"TEFBogen_center_line_width_mm": 412.6925,
|
||||
"TEFBogen_center_line_height_mm": 82.0896,
|
||||
"OFBogen_CP1_x_mm": 15.002,
|
||||
"TEFBogen_CP1_x_mm": 0.0,
|
||||
"OFBogen_CP1_y_mm": 21.04,
|
||||
"TEFBogen_CP1_y_mm": 121.049,
|
||||
"OFBogen_CP1_y_mm": 21.0391,
|
||||
"TEFBogen_CP1_y_mm": 121.0491,
|
||||
"SivasnrTEF": "0_B10090",
|
||||
"Antriebsart": 1,
|
||||
"OFBogen_CP2_x_mm": 529.493,
|
||||
"TEFBogen_CP2_x_mm": 412.692,
|
||||
"OFBogen_CP2_y_mm": 143.27,
|
||||
"OFBogen_CP2_y_mm": 143.269,
|
||||
"TEFBogen_CP2_y_mm": 203.139,
|
||||
"Gruppe_width_px": 2031.648,
|
||||
"Gruppe_height_px": 877.059,
|
||||
"Gruppe_width_px": 2031.662,
|
||||
"Gruppe_height_px": 877.0624,
|
||||
"calculated_SVG_width_px": 1000,
|
||||
"calculated_SVG_height_px": 433.588,
|
||||
"calculated_SVG_height_px": 431.697,
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 27.908,
|
||||
"y": 90.272,
|
||||
"y": 90.664,
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 985.023,
|
||||
"y": 614.701,
|
||||
"y": 617.39,
|
||||
"direction": 112.5,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 519.362,
|
||||
"y": 521.637,
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 767.736,
|
||||
"y": 871.57,
|
||||
"y": 875.387,
|
||||
"direction": 112.5,
|
||||
"linkClass": "OmnifloTEF"
|
||||
}
|
||||
@@ -172,12 +172,12 @@
|
||||
"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,
|
||||
"Gruppe_width_mm": 655.569,
|
||||
"Gruppe_height_mm": 272.9777,
|
||||
"OFBogen_center_line_width_mm": 514.4906,
|
||||
"OFBogen_center_line_height_mm": 122.2298,
|
||||
"TEFBogen_center_line_width_mm": 643.5863,
|
||||
"TEFBogen_center_line_height_mm": 125.6835,
|
||||
"OFBogen_CP1_x_mm": 100.867,
|
||||
"TEFBogen_CP1_x_mm": 0.0,
|
||||
"OFBogen_CP1_y_mm": 131.31,
|
||||
@@ -185,39 +185,39 @@
|
||||
"SivasnrTEF": "0_B10091",
|
||||
"Antriebsart": 2,
|
||||
"OFBogen_CP2_x_mm": 615.358,
|
||||
"TEFBogen_CP2_x_mm": 643.589,
|
||||
"TEFBogen_CP2_x_mm": 643.586,
|
||||
"OFBogen_CP2_y_mm": 253.54,
|
||||
"TEFBogen_CP2_y_mm": 156.983,
|
||||
"Gruppe_width_px": 2477.704,
|
||||
"Gruppe_height_px": 1031.72,
|
||||
"Gruppe_width_px": 2477.7411,
|
||||
"Gruppe_height_px": 1031.7267,
|
||||
"calculated_SVG_width_px": 1000,
|
||||
"calculated_SVG_height_px": 418.291,
|
||||
"calculated_SVG_height_px": 416.3981,
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 153.863,
|
||||
"y": 478.855,
|
||||
"x": 153.862,
|
||||
"y": 481.028,
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 938.67,
|
||||
"y": 924.598,
|
||||
"x": 938.662,
|
||||
"y": 928.794,
|
||||
"direction": 112.5,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 114.143,
|
||||
"y": 114.661,
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 981.733,
|
||||
"y": 572.478,
|
||||
"x": 981.721,
|
||||
"y": 575.076,
|
||||
"direction": 112.5,
|
||||
"linkClass": "OmnifloTEF"
|
||||
}
|
||||
@@ -229,51 +229,51 @@
|
||||
"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,
|
||||
"Gruppe_height_mm": 308.2175,
|
||||
"OFBogen_center_line_width_mm": 595.2651,
|
||||
"OFBogen_center_line_height_mm": 265.9976,
|
||||
"TEFBogen_center_line_width_mm": 398.4321,
|
||||
"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,
|
||||
"TEFBogen_CP1_x_mm": 54.4459,
|
||||
"OFBogen_CP1_y_mm": 21.0391,
|
||||
"TEFBogen_CP1_y_mm": 121.0491,
|
||||
"SivasnrTEF": "0_B10071",
|
||||
"Antriebsart": 1,
|
||||
"OFBogen_CP2_x_mm": 595.265,
|
||||
"TEFBogen_CP2_x_mm": 452.878,
|
||||
"OFBogen_CP2_y_mm": 287.038,
|
||||
"OFBogen_CP2_y_mm": 287.037,
|
||||
"TEFBogen_CP2_y_mm": 286.085,
|
||||
"Gruppe_width_px": 2306.032,
|
||||
"Gruppe_height_px": 1164.906,
|
||||
"Gruppe_width_px": 2306.0485,
|
||||
"Gruppe_height_px": 1164.9165,
|
||||
"calculated_SVG_width_px": 1000,
|
||||
"calculated_SVG_height_px": 507.046,
|
||||
"calculated_SVG_height_px": 505.157,
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 68.009,
|
||||
"y": 68.261,
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 975.617,
|
||||
"y": 927.815,
|
||||
"y": 931.281,
|
||||
"direction": 135.0,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 89.235,
|
||||
"y": 391.276,
|
||||
"y": 392.739,
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 742.25,
|
||||
"y": 924.734,
|
||||
"y": 928.192,
|
||||
"direction": 135.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
}
|
||||
@@ -284,13 +284,13 @@
|
||||
"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,
|
||||
"Gruppe_width_mm": 958.8738,
|
||||
"Gruppe_height_mm": 446.7458,
|
||||
"OFBogen_center_line_width_mm": 865.6135,
|
||||
"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_center_line_width_mm": 936.7413,
|
||||
"TEFBogen_center_line_height_mm": 329.9848,
|
||||
"OFBogen_CP1_x_mm": 0.2765,
|
||||
"TEFBogen_CP1_x_mm": 0.0,
|
||||
"OFBogen_CP1_y_mm": 131.31,
|
||||
"TEFBogen_CP1_y_mm": 31.3,
|
||||
@@ -300,36 +300,36 @@
|
||||
"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,
|
||||
"Gruppe_width_px": 3624.09,
|
||||
"Gruppe_height_px": 1688.4881,
|
||||
"calculated_SVG_width_px": 1000,
|
||||
"calculated_SVG_height_px": 467.797,
|
||||
"calculated_SVG_height_px": 465.9068,
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.288,
|
||||
"y": 292.738,
|
||||
"y": 293.926,
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 903.028,
|
||||
"y": 962.793,
|
||||
"y": 966.7,
|
||||
"direction": 135.0,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 69.779,
|
||||
"y": 70.062,
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 976.918,
|
||||
"y": 805.436,
|
||||
"y": 808.704,
|
||||
"direction": 135.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
}
|
||||
@@ -340,52 +340,52 @@
|
||||
"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,
|
||||
"Gruppe_width_mm": 880.9424,
|
||||
"Gruppe_height_mm": 414.4959,
|
||||
"OFBogen_center_line_width_mm": 865.6135,
|
||||
"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_center_line_width_mm": 759.3957,
|
||||
"TEFBogen_center_line_height_mm": 271.3132,
|
||||
"OFBogen_CP1_x_mm": 0.452,
|
||||
"TEFBogen_CP1_x_mm": 0.0,
|
||||
"OFBogen_CP1_y_mm": 21.04,
|
||||
"TEFBogen_CP1_y_mm": 121.049,
|
||||
"OFBogen_CP1_y_mm": 21.0391,
|
||||
"TEFBogen_CP1_y_mm": 121.0491,
|
||||
"SivasnrTEF": "0_B10070",
|
||||
"Antriebsart": 1,
|
||||
"OFBogen_CP2_x_mm": 866.067,
|
||||
"OFBogen_CP2_x_mm": 866.066,
|
||||
"TEFBogen_CP2_x_mm": 759.396,
|
||||
"OFBogen_CP2_y_mm": 321.599,
|
||||
"OFBogen_CP2_y_mm": 321.598,
|
||||
"TEFBogen_CP2_y_mm": 392.362,
|
||||
"Gruppe_width_px": 3329.52,
|
||||
"Gruppe_height_px": 1566.588,
|
||||
"Gruppe_width_px": 3329.5461,
|
||||
"Gruppe_height_px": 1566.5987,
|
||||
"calculated_SVG_width_px": 1000,
|
||||
"calculated_SVG_height_px": 472.404,
|
||||
"calculated_SVG_height_px": 470.5142,
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.514,
|
||||
"y": 50.557,
|
||||
"x": 0.513,
|
||||
"y": 50.758,
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 983.115,
|
||||
"y": 772.777,
|
||||
"x": 983.113,
|
||||
"y": 775.877,
|
||||
"direction": 135.0,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 0.0,
|
||||
"y": 290.871,
|
||||
"y": 292.039,
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 862.028,
|
||||
"y": 942.814,
|
||||
"x": 862.027,
|
||||
"y": 946.6,
|
||||
"direction": 135.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
}
|
||||
@@ -396,52 +396,52 @@
|
||||
"ProfilTyp": "APB 110 R 400/67,5° – 339/508 mit TEF Innen",
|
||||
"Radius": 400.0,
|
||||
"KurvenWinkel": 67.5,
|
||||
"Gruppe_width_mm": 527.258,
|
||||
"Gruppe_width_mm": 527.2577,
|
||||
"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_center_line_width_mm": 507.8202,
|
||||
"OFBogen_center_line_height_mm": 339.3146,
|
||||
"TEFBogen_center_line_width_mm": 306.3387,
|
||||
"TEFBogen_center_line_height_mm": 198.6754,
|
||||
"OFBogen_CP1_x_mm": 0.0,
|
||||
"TEFBogen_CP1_x_mm": 76.402,
|
||||
"OFBogen_CP1_y_mm": 21.04,
|
||||
"TEFBogen_CP1_y_mm": 121.049,
|
||||
"TEFBogen_CP1_x_mm": 76.4023,
|
||||
"OFBogen_CP1_y_mm": 21.0391,
|
||||
"TEFBogen_CP1_y_mm": 121.0491,
|
||||
"SivasnrTEF": "0_B10081",
|
||||
"Antriebsart": 1,
|
||||
"OFBogen_CP2_x_mm": 507.82,
|
||||
"TEFBogen_CP2_x_mm": 382.741,
|
||||
"OFBogen_CP2_y_mm": 360.355,
|
||||
"OFBogen_CP2_y_mm": 360.354,
|
||||
"TEFBogen_CP2_y_mm": 319.724,
|
||||
"Gruppe_width_px": 1992.772,
|
||||
"Gruppe_height_px": 1392.387,
|
||||
"Gruppe_width_px": 1992.785,
|
||||
"Gruppe_height_px": 1392.3969,
|
||||
"calculated_SVG_width_px": 1000,
|
||||
"calculated_SVG_height_px": 700.609,
|
||||
"calculated_SVG_height_px": 698.7191,
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 56.957,
|
||||
"y": 57.109,
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 963.134,
|
||||
"y": 975.51,
|
||||
"y": 978.146,
|
||||
"direction": 157.5,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 144.904,
|
||||
"y": 327.689,
|
||||
"x": 144.905,
|
||||
"y": 328.576,
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 725.908,
|
||||
"y": 865.519,
|
||||
"x": 725.909,
|
||||
"y": 867.86,
|
||||
"direction": 157.5,
|
||||
"linkClass": "OmnifloTEF"
|
||||
}
|
||||
@@ -452,52 +452,52 @@
|
||||
"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,
|
||||
"Gruppe_width_mm": 768.0954,
|
||||
"Gruppe_height_mm": 559.3956,
|
||||
"OFBogen_center_line_width_mm": 748.6579,
|
||||
"OFBogen_center_line_height_mm": 530.3052,
|
||||
"TEFBogen_center_line_width_mm": 469.7517,
|
||||
"TEFBogen_center_line_height_mm": 353.6347,
|
||||
"OFBogen_CP1_x_mm": 0.0,
|
||||
"TEFBogen_CP1_x_mm": 138.902,
|
||||
"OFBogen_CP1_y_mm": 21.04,
|
||||
"TEFBogen_CP1_y_mm": 121.05,
|
||||
"TEFBogen_CP1_x_mm": 138.9023,
|
||||
"OFBogen_CP1_y_mm": 21.0391,
|
||||
"TEFBogen_CP1_y_mm": 121.0491,
|
||||
"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,
|
||||
"OFBogen_CP2_y_mm": 551.344,
|
||||
"TEFBogen_CP2_y_mm": 474.684,
|
||||
"Gruppe_width_px": 2903.0378,
|
||||
"Gruppe_height_px": 2114.2511,
|
||||
"calculated_SVG_width_px": 1000,
|
||||
"calculated_SVG_height_px": 730.18,
|
||||
"calculated_SVG_height_px": 728.2892,
|
||||
"connectionPoints": [
|
||||
{
|
||||
"id": "cp1",
|
||||
"x": 0.0,
|
||||
"y": 37.515,
|
||||
"y": 37.61,
|
||||
"direction": 270.0,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp2",
|
||||
"x": 974.694,
|
||||
"y": 983.056,
|
||||
"y": 985.607,
|
||||
"direction": 157.5,
|
||||
"linkClass": "Omniflo"
|
||||
},
|
||||
{
|
||||
"id": "cp3",
|
||||
"x": 180.84,
|
||||
"y": 215.834,
|
||||
"y": 216.393,
|
||||
"direction": 270.0,
|
||||
"linkClass": "OmnifloTEF"
|
||||
},
|
||||
{
|
||||
"id": "cp4",
|
||||
"x": 792.42,
|
||||
"y": 846.37,
|
||||
"y": 848.566,
|
||||
"direction": 157.5,
|
||||
"linkClass": "OmnifloTEF"
|
||||
}
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
@echo off
|
||||
|
||||
set TEFBogen_PATH=%~dp0
|
||||
|
||||
set SVG_PATH=C:\Program Files\RuleDesigner\RDConfigurator Fusion\WebApi\Editor2D\SSG\shapes\svg
|
||||
|
||||
set JSON_PATH_TEFBOGEN=%TEFBogen_PATH%JSON
|
||||
|
||||
python 4_TEFBogen_SVG_XML_Modifier_Script.py
|
||||
|
||||
|
||||
pause
|
||||
@@ -5,8 +5,13 @@ set PROPS_PATH=C:\Program Files\RuleDesigner\RDConfigurator Fusion\WebApi\Editor
|
||||
|
||||
set JSON_PATH_TEFBOGEN=%TEFBogen_PATH%JSON
|
||||
|
||||
python 1_process_TEFBogen_json_1.py
|
||||
python 2_update_props_TEF_Boegen_from_json_1.py
|
||||
|
||||
python 01_props_step1_process_TEFBogen_json.py
|
||||
python 01_props_step2_update_props_TEF_Boegen_from_json.py
|
||||
:: Check if Python script succeeded
|
||||
if %ERRORLEVEL% equ 0 (
|
||||
echo update dimensions and connection points in props completed successfully
|
||||
) else (
|
||||
echo update dimensions and connection points in props failed with error %ERRORLEVEL%
|
||||
)
|
||||
|
||||
pause
|
||||
@@ -3,7 +3,7 @@ import os
|
||||
import re
|
||||
import xml.etree.ElementTree as ET
|
||||
from xml.dom import minidom
|
||||
import argparse
|
||||
import shutil
|
||||
|
||||
def analyze_and_normalize_path(d, path_type, path_id=""):
|
||||
"""Strictly normalize path direction and generate detailed report"""
|
||||
@@ -364,7 +364,18 @@ def batch_process_svgs(input_dir, output_dir):
|
||||
print("\nProcessing summary:")
|
||||
print(f"Successfully processed: {success_count} files")
|
||||
print(f"Failed to process: {failure_count} files")
|
||||
|
||||
def clear_output_dir(path: str):
|
||||
|
||||
os.makedirs(path, exist_ok=True)
|
||||
for filename in os.listdir(path):
|
||||
file_path = os.path.join(path, filename)
|
||||
try:
|
||||
if os.path.isdir(file_path):
|
||||
shutil.rmtree(file_path) # 删除目录
|
||||
elif os.path.isfile(file_path) or os.path.islink(file_path):
|
||||
os.unlink(file_path) # 删除文件或符号链接
|
||||
except Exception as e:
|
||||
print(f"Failed to delete {file_path}. Reason: {e}")
|
||||
if __name__ == '__main__':
|
||||
input_dir = os.environ.get('RD_CONF_TEFWEICHEN')
|
||||
output_dir = os.environ.get('RD_CONF_WORK')
|
||||
@@ -376,7 +387,7 @@ if __name__ == '__main__':
|
||||
if not os.path.exists(input_dir):
|
||||
print(f"Error: Input directory '{input_dir}' does not exist")
|
||||
exit(1)
|
||||
|
||||
clear_output_dir(output_dir)
|
||||
print(f"Starting SVG file processing, working directory: {input_dir}")
|
||||
print("=" * 50)
|
||||
|
||||
|
||||