Release of 2015-11-04 :
Modification and addition: Creation of TAB : Wire 2D and 3D parametric functions panel. A set of predefined functions is available via a combo box. With possible saving of your parametric functions into a file in the home directory. Creation of TAB : Sweeping Move of Section Sweep from "Object" TAB into "Sweeping" TAB: into "Object" TAB : Compute the common parts between selected shapes. - Select at least two objects and click. Highlight common parts by showing the common shape in red and setting half- transparency on original parts (the original objects are not modified). Original code from HighlightCommon.FCMacro https://github.com/FreeCAD/FreeCAD-macros/blob/master/Utility/HighlightCommon.FCMacro Authors = 2015 Javier Martinez Garcia into "Object" TAB : Compute the difference parts between selected shapes. - Select two objects and click. Compute the difference between two shapes. Additions are marked red, removals are marked green. Both original parts will be half transparent. The volume of the additions and removals are printed in the console. Original code from HighlightDifference.FCMacro https://github.com/FreeCAD/FreeCAD-macros/blob/master/Utility/HighlightDifference.FCMacro Authors = 2015 Gaël Ecorchard (Galou) into "Axis 1/2" TAB : Axis=(Points): Create a "best fit" line from a set of points using Singular Value Decomposition.. - First select several Points - Then push this button The 3 eigenvectors are generated. Orange one is the best fit line.
|
@ -327,6 +327,174 @@
|
|||
id="radialGradient5473"
|
||||
xlink:href="#linearGradient5238-3-9-7-8-5"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient7085-0-53"
|
||||
xlink:href="#linearGradient3144-2-7-7"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-2-7-7">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2-4-6" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-6-8-6" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="21.168837"
|
||||
fx="53.269112"
|
||||
cy="21.168837"
|
||||
cx="53.269112"
|
||||
gradientTransform="matrix(-0.48347996,-1.1563533,0.92260429,-0.38574776,71.952844,110.62943)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5326-7"
|
||||
xlink:href="#linearGradient5238-3-9-9"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-3-9-9">
|
||||
<stop
|
||||
id="stop5240-7-4-7"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-7-0-91"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="21.168837"
|
||||
fx="53.269112"
|
||||
cy="21.168837"
|
||||
cx="53.269112"
|
||||
gradientTransform="matrix(-0.48347996,-1.1563533,0.92260429,-0.38574776,71.952844,110.62943)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3256"
|
||||
xlink:href="#linearGradient5238-3-9-9"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="21.168837"
|
||||
fx="53.269112"
|
||||
cy="21.168837"
|
||||
cx="53.269112"
|
||||
gradientTransform="matrix(-0.48347996,-1.1563533,0.92260429,-0.38574776,71.952844,110.62943)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3256-3"
|
||||
xlink:href="#linearGradient5238-3-9-9-2"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-3-9-9-2">
|
||||
<stop
|
||||
id="stop5240-7-4-7-0"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-7-0-91-4"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient7085-0-53-1"
|
||||
xlink:href="#linearGradient3144-2-7-7-4"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-2-7-7-4">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2-4-6-8" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-6-8-6-4" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="21.168837"
|
||||
fx="53.269112"
|
||||
cy="21.168837"
|
||||
cx="53.269112"
|
||||
gradientTransform="matrix(-0.48347996,-1.1563533,0.92260429,-0.38574776,71.952844,110.62943)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3305"
|
||||
xlink:href="#linearGradient5238-3-9-9-2"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="21.168837"
|
||||
fx="53.269112"
|
||||
cy="21.168837"
|
||||
cx="53.269112"
|
||||
gradientTransform="matrix(-0.48347996,-1.1563533,0.92260429,-0.38574776,71.952844,110.62943)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3256-4"
|
||||
xlink:href="#linearGradient5238-3-9-9-4"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-3-9-9-4">
|
||||
<stop
|
||||
id="stop5240-7-4-7-06"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-7-0-91-3"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient7085-0-53-3"
|
||||
xlink:href="#linearGradient3144-2-7-7-8"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-2-7-7-8">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2-4-6-1" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-6-8-6-3" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="21.168837"
|
||||
fx="53.269112"
|
||||
cy="21.168837"
|
||||
cx="53.269112"
|
||||
gradientTransform="matrix(-0.48347996,-1.1563533,0.92260429,-0.38574776,71.952844,110.62943)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3305-9"
|
||||
xlink:href="#linearGradient5238-3-9-9-4"
|
||||
inkscape:collect="always" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
|
@ -355,7 +523,7 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -385,7 +553,7 @@
|
|||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
transform="matrix(0.31321424,0,0,0.30080742,-8.849291,36.873386)"
|
||||
transform="matrix(0.45102851,0,0,0.43316268,-16.37425,30.181343)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
|
@ -403,69 +571,9 @@
|
|||
sodipodi:rx="34.345188"
|
||||
sodipodi:ry="23.991123"
|
||||
d="m 259.60921,672.79736 a 34.345188,23.991123 0 1 1 -68.69038,0 34.345188,23.991123 0 1 1 68.69038,0 z"
|
||||
transform="matrix(-0.04987404,0.03299078,-0.03350487,-0.0491088,39.593041,70.844876)" />
|
||||
transform="matrix(-0.07181862,0.04750673,-0.04824701,-0.07071667,53.382707,79.100288)" />
|
||||
<path
|
||||
transform="matrix(0.31321424,0,0,0.30080742,20.241618,42.691567)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3696-5-7-8"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient5375);fill-opacity:1;fill-rule:evenodd;stroke:#00064a;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient7085-0-5);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.19132471;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
id="path3189-9-7"
|
||||
sodipodi:cx="225.26402"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:ry="23.991123"
|
||||
d="m 259.60921,672.79736 a 34.345188,23.991123 0 1 1 -68.69038,0 34.345188,23.991123 0 1 1 68.69038,0 z"
|
||||
transform="matrix(-0.04987404,0.03299078,-0.03350487,-0.0491088,68.68395,76.663057)" />
|
||||
<path
|
||||
transform="matrix(0.31321424,0,0,0.30080742,39.150709,30.327931)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3696-5-7-8-5"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient5424);fill-opacity:1;fill-rule:evenodd;stroke:#00064a;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient7085-0-5-9);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.19132471;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
id="path3189-9-7-5"
|
||||
sodipodi:cx="225.26402"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:ry="23.991123"
|
||||
d="m 259.60921,672.79736 a 34.345188,23.991123 0 1 1 -68.69038,0 34.345188,23.991123 0 1 1 68.69038,0 z"
|
||||
transform="matrix(-0.04987404,0.03299078,-0.03350487,-0.0491088,87.593041,64.299421)" />
|
||||
<path
|
||||
transform="matrix(0.31321424,0,0,0.30080742,40.0598,-3.3084325)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3696-5-7-8-5-7"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient5473);fill-opacity:1;fill-rule:evenodd;stroke:#00064a;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient7085-0-5-9-4);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.19132471;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
id="path3189-9-7-5-8"
|
||||
sodipodi:cx="225.26402"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:ry="23.991123"
|
||||
d="m 259.60921,672.79736 a 34.345188,23.991123 0 1 1 -68.69038,0 34.345188,23.991123 0 1 1 68.69038,0 z"
|
||||
transform="matrix(-0.04987404,0.03299078,-0.03350487,-0.0491088,88.502132,30.663058)" />
|
||||
<path
|
||||
transform="matrix(0.2573555,0,0,0.20702674,-3.6949895,51.751881)"
|
||||
transform="matrix(0.37059192,0,0,0.29811851,-8.9520558,51.606375)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
|
@ -475,34 +583,94 @@
|
|||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(0.2573555,0,0,0.20702674,28.486829,55.206427)"
|
||||
transform="matrix(0.37059192,0,0,0.29811851,24.279215,53.329981)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3968-4"
|
||||
id="path3968-7"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(0.2573555,0,0,0.20702674,43.214101,45.570064)"
|
||||
transform="matrix(0.37059192,0,0,0.29811851,37.551942,44.60271)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3968-4-6"
|
||||
id="path3968-7-1"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(0.2573555,0,0,0.20702674,46.305011,42.660972)"
|
||||
transform="matrix(0.37059192,0,0,0.29811851,44.642851,39.693618)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3968-4-6-4"
|
||||
id="path3968-7-1-4"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(0.45102851,0,0,0.43316268,15.453385,36.297675)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3696-5-7-2"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient3256);fill-opacity:1;fill-rule:evenodd;stroke:#00064a;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient7085-0-53);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.19132471;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
id="path3189-9-3"
|
||||
sodipodi:cx="225.26402"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:ry="23.991123"
|
||||
d="m 259.60921,672.79736 a 34.345188,23.991123 0 1 1 -68.69038,0 34.345188,23.991123 0 1 1 68.69038,0 z"
|
||||
transform="matrix(-0.07181862,0.04750673,-0.04824701,-0.07071667,85.210342,85.216621)" />
|
||||
<path
|
||||
transform="matrix(0.45102851,0,0,0.43316268,32.90793,26.297676)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3696-5-7-2-2"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient3305);fill-opacity:1;fill-rule:evenodd;stroke:#00064a;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient7085-0-53-1);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.19132471;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
id="path3189-9-3-3"
|
||||
sodipodi:cx="225.26402"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:ry="23.991123"
|
||||
d="m 259.60921,672.79736 a 34.345188,23.991123 0 1 1 -68.69038,0 34.345188,23.991123 0 1 1 68.69038,0 z"
|
||||
transform="matrix(-0.07181862,0.04750673,-0.04824701,-0.07071667,102.66489,75.216623)" />
|
||||
<path
|
||||
transform="matrix(0.45102851,0,0,0.43316268,32.362476,-6.6114153)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3696-5-7-2-5"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient3305-9);fill-opacity:1;fill-rule:evenodd;stroke:#00064a;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient7085-0-53-3);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.19132471;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
id="path3189-9-3-0"
|
||||
sodipodi:cx="225.26402"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:ry="23.991123"
|
||||
d="m 259.60921,672.79736 a 34.345188,23.991123 0 1 1 -68.69038,0 34.345188,23.991123 0 1 1 68.69038,0 z"
|
||||
transform="matrix(-0.07181862,0.04750673,-0.04824701,-0.07071667,102.11943,42.307531)" />
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 27 KiB |
|
@ -14,7 +14,7 @@
|
|||
width="64"
|
||||
height="64"
|
||||
id="svg3017"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="WF_Beam.svg"
|
||||
inkscape:export-filename="/home/mark/HyperbolaIcon.png"
|
||||
inkscape:export-xdpi="90"
|
||||
|
@ -398,15 +398,15 @@
|
|||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1301"
|
||||
inkscape:window-height="744"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="702"
|
||||
id="namedview13601"
|
||||
showgrid="false"
|
||||
inkscape:zoom="5.840651"
|
||||
inkscape:cx="60.002575"
|
||||
inkscape:cy="25.215672"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg3017" />
|
||||
<g
|
||||
|
@ -416,20 +416,6 @@
|
|||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="Layer1" />
|
||||
<path
|
||||
style="fill:none;stroke:#0079f0;stroke-width:4.9307642;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-start:none;filter:url(#filter42258-3)"
|
||||
d="M 59.56913,7.9400816 C 52.605606,20.282372 52.646355,12.180239 40.4768,16.330627 25.214023,24.892743 34.805959,31.293654 14.840698,34.047565"
|
||||
id="path41306-2"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc"
|
||||
transform="matrix(0.91635966,-0.33268937,0.34441163,0.8851708,-9.6046235,26.426786)" />
|
||||
<path
|
||||
style="fill:none;stroke:#0079f0;stroke-width:2.95845842;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter42258-1)"
|
||||
d="M 53.466148,40.841396 C 54.960979,34.41438 48.179469,13.17288 40.4768,16.330627 c -15.262777,8.562116 -9.554229,15.976085 -0.985029,20.249582 2.913415,2.039486 12.07402,7.793518 13.974377,4.261187 z"
|
||||
id="path41306-0"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
transform="matrix(1.0140416,0,0,1.0140416,-10.21039,-3.9181536)" />
|
||||
<path
|
||||
style="fill:none;stroke:#0079f0;stroke-width:2.95845842;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter42258-1-9)"
|
||||
d="M 53.466148,40.841396 C 54.960979,34.41438 48.179469,13.17288 40.4768,16.330627 c -15.262777,8.562116 -9.554229,15.976085 -0.985029,20.249582 2.913415,2.039486 12.07402,7.793518 13.974377,4.261187 z"
|
||||
|
@ -437,13 +423,20 @@
|
|||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
transform="matrix(1.0140416,0,0,1.0140416,6.7397744,-16.930401)" />
|
||||
<path
|
||||
style="fill:none;stroke:#0079f0;stroke-width:4.9307642;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-start:none;filter:url(#filter42258-3)"
|
||||
d="M 59.56913,7.9400816 14.840698,34.047565"
|
||||
id="path41306-2"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc"
|
||||
transform="matrix(0.93587081,-0.32882237,0.35174485,0.87488206,-10.056452,26.755735)" />
|
||||
<path
|
||||
style="opacity:0.75;fill:url(#radialGradient4972);fill-opacity:1;stroke:#7b5600;stroke-width:1.97230566;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter42258)"
|
||||
d="M 6.6613918,2.5495318 C 9.2305553,5.0712097 20.288955,23.501009 20.114154,29.63164 c 6.20581,8.839182 2.57458,8.81748 -0.188372,12.178573 -2.225672,2.707499 -2.064471,7.051135 -0.697402,7.997419 4.481547,3.102123 6.354714,4.03936 10.859411,4.821296 7.112471,1.2346 5.045004,2.123561 11.20649,2.995214 5.940277,0.840358 6.185458,1.430347 10.452615,1.364355 6.413081,-0.09918 13.422437,-0.691591 15.039049,-2.128547 1.616612,-1.436957 6.588793,-8.392511 1.514045,-15.840704 C 65.997631,37.640079 69.677573,35.107755 71.553137,29.49985 69.051243,16.104327 68.258012,12.906337 54.517268,1.5836261 L 50.129083,9.6635035 C 43.991819,12.312691 38.86159,10.422644 35.440528,10.84792 28.051671,10.309231 20.15682,7.0009091 16.5933,6.4423435 12.069524,5.6212399 7.7511199,3.1875723 6.6613918,2.5495318 z"
|
||||
d="M 5.6355134,3.1288963 18.202502,50.386996 c 4.481547,3.102123 6.508918,3.663424 10.697937,4.957264 6.523619,2.014916 10.431492,2.708408 16.592978,3.580061 5.940277,0.840358 10.042357,1.311866 18.251555,-0.935616 5.871839,-1.607569 4.984746,-11.508491 1.746683,-14.547053 L 49.661758,-4.8533273 50.129083,9.6635035 C 43.991819,12.312691 38.86159,10.422644 35.440528,10.84792 28.051671,10.309231 22.570106,8.9514381 19.006586,8.3928725 14.48281,7.5717689 6.7252415,3.7669368 5.6355134,3.1288963 z"
|
||||
id="path41302"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccssssssscccccc"
|
||||
transform="matrix(-0.37450424,-0.5067961,0.81446679,-0.60186189,28.68567,66.998638)" />
|
||||
sodipodi:nodetypes="ccssscccccc"
|
||||
transform="matrix(-0.37450424,-0.5067961,0.81446679,-0.60186189,27.487169,66.65621)" />
|
||||
<path
|
||||
style="fill:none;stroke:#0079f0;stroke-width:2.95845842;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter42258)"
|
||||
d="M 53.466148,40.841396 C 54.960979,34.41438 48.179469,13.17288 40.4768,16.330627 c -15.262777,8.562116 -9.554229,15.976085 -0.985029,20.249582 2.913415,2.039486 12.07402,7.793518 13.974377,4.261187 z"
|
||||
|
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 15 KiB |
986
WorkFeature/Icons/WF_Common.svg
Normal file
|
@ -0,0 +1,986 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64px"
|
||||
height="64px"
|
||||
id="svg2860"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="WF_isCommon.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs2862">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4247">
|
||||
<stop
|
||||
style="stop-color:#f30606;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4249" />
|
||||
<stop
|
||||
style="stop-color:#f30606;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4251" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4155">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4157" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4159" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4135">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4137" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4139" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377">
|
||||
<stop
|
||||
id="stop3379"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 32 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="64 : 32 : 1"
|
||||
inkscape:persp3d-origin="32 : 21.333333 : 1"
|
||||
id="perspective2868" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3377-7"
|
||||
id="radialGradient3692-3"
|
||||
cx="45.883327"
|
||||
cy="28.869568"
|
||||
fx="45.883327"
|
||||
fy="28.869568"
|
||||
r="19.467436"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient3377-7">
|
||||
<stop
|
||||
id="stop3379-8"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="28.869568"
|
||||
fx="45.883327"
|
||||
cy="28.869568"
|
||||
cx="45.883327"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3288-6"
|
||||
xlink:href="#linearGradient3377-7-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3377-7-5">
|
||||
<stop
|
||||
id="stop3379-8-7"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-4"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135"
|
||||
id="linearGradient4145"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="191.3165"
|
||||
y2="101.22672"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4155"
|
||||
id="linearGradient4161"
|
||||
x1="4.6279406"
|
||||
y1="100.81277"
|
||||
x2="60.639036"
|
||||
y2="100.81277"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4155"
|
||||
id="linearGradient4231"
|
||||
x1="33.746853"
|
||||
y1="34.571426"
|
||||
x2="72.681725"
|
||||
y2="34.571426"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135"
|
||||
id="linearGradient3034"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="184.22351"
|
||||
y2="100.7989" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144"
|
||||
id="radialGradient3191"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-4"
|
||||
id="radialGradient4272"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-4">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-3" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-6" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3809"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
id="linearGradient3144-8"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop3146-1"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3148-3"
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3811"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3799"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3819"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3827"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3361"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3363"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3365"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3367"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135-9"
|
||||
id="linearGradient4145-1"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="191.3165"
|
||||
y2="101.22672"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4135-9">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4137-0" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4139-9" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4247"
|
||||
id="linearGradient4253"
|
||||
x1="3.6551317"
|
||||
y1="12.367598"
|
||||
x2="17.097535"
|
||||
y2="12.367598"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-3.2003726,1.9706624)" />
|
||||
<linearGradient
|
||||
id="linearGradient5238">
|
||||
<stop
|
||||
id="stop5240"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3437"
|
||||
xlink:href="#linearGradient3144-47"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-47">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-7">
|
||||
<stop
|
||||
id="stop3379-4-2"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-6"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-22">
|
||||
<stop
|
||||
id="stop3379-4-4"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-11"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-5">
|
||||
<stop
|
||||
id="stop3379-4-8"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-1"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-67">
|
||||
<stop
|
||||
id="stop3379-4-54"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-37"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-9">
|
||||
<stop
|
||||
id="stop3379-4-7"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-0"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-29">
|
||||
<stop
|
||||
id="stop3379-4-9"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-3"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-2">
|
||||
<stop
|
||||
id="stop3379-4-5"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-2"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-6">
|
||||
<stop
|
||||
id="stop3379-4-1"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-8"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79">
|
||||
<stop
|
||||
id="stop3379-4"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-13"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4476">
|
||||
<stop
|
||||
id="stop4478"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4480"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4483">
|
||||
<stop
|
||||
id="stop4485"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4487"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5238-9">
|
||||
<stop
|
||||
id="stop5240-3"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3437-1"
|
||||
xlink:href="#linearGradient3144-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-5">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-17" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-13" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238"
|
||||
id="radialGradient5500"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-0.48347996,-1.1563533,0.92260429,-0.38574776,71.952844,110.62943)"
|
||||
cx="53.269112"
|
||||
cy="21.168837"
|
||||
fx="53.269112"
|
||||
fy="21.168837"
|
||||
r="19.467436" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-47"
|
||||
id="radialGradient5502"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5513"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,0,0.18208544)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5517"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,0,0.18208544)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5542"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5545"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5548"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5551"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5554"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5557"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5560"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5563"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.778876,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5566"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5569"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5572"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9-8"
|
||||
id="radialGradient5563-1"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.778876,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-9-8">
|
||||
<stop
|
||||
id="stop5240-3-8"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6-8"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-39.856219,8.9284534)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5591"
|
||||
xlink:href="#linearGradient5238-9-8"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-39.856219,8.9284534)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5591-2"
|
||||
xlink:href="#linearGradient5238-9-8-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-9-8-5">
|
||||
<stop
|
||||
id="stop5240-3-8-5"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6-8-4"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-18.476934,27.412948)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5633"
|
||||
xlink:href="#linearGradient5238-9-8-5"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-39.856219,8.9284534)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5591-8"
|
||||
xlink:href="#linearGradient5238-9-8-4"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-9-8-4">
|
||||
<stop
|
||||
id="stop5240-3-8-0"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6-8-8"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-31.066129,4.3948345)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5667"
|
||||
xlink:href="#linearGradient5238-9-8-4"
|
||||
inkscape:collect="always" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="6.7121053"
|
||||
inkscape:cx="58.182729"
|
||||
inkscape:cy="32.094002"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="1070"
|
||||
inkscape:window-height="665"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="63"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2865">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer0">
|
||||
<g
|
||||
id="g3813"
|
||||
transform="matrix(-0.0719454,0.08583917,-0.08364263,-0.06979446,100.90296,75.889312)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141" />
|
||||
<g
|
||||
id="g3821"
|
||||
transform="matrix(-0.0719454,0.08583917,-0.08364263,-0.06979446,125.77915,48.713266)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path3198-6"
|
||||
d="m 114.9741,73.223439 56.67942,-56.310384 2.99835,3.323948 -56.14916,56.285527 z"
|
||||
style="fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.30718172;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
</g>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<g
|
||||
id="g3564"
|
||||
transform="matrix(0.57893948,0,0,0.57354776,33.859216,-7.0273696)"
|
||||
style="fill:url(#linearGradient4161);fill-opacity:1" />
|
||||
<path
|
||||
transform="matrix(1.1022754,0,0,0.38094153,-28.016309,45.375294)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3694-2"
|
||||
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(1.0840729,0,0,1.1348087,-34.93237,4.0975175)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3696-2"
|
||||
style="fill:url(#radialGradient5500);fill-opacity:1;fill-rule:evenodd;stroke:#00064a;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient5502);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.19132471;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
id="path3189"
|
||||
sodipodi:cx="225.26402"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:ry="23.991123"
|
||||
d="m 259.60921,672.79736 a 34.345188,23.991123 0 1 1 -68.69038,0 34.345188,23.991123 0 1 1 68.69038,0 z"
|
||||
transform="matrix(-0.17262016,0.1244591,-0.11596444,-0.18526499,127.95453,131.21484)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
id="rect3522"
|
||||
d="M 37.569484,2.0043621 20.089034,8.3531546 46.992491,12.022128 47.367854,43.65736 61.58003,34.29201 62.08807,3.8844471 37.569484,2.0043621 z"
|
||||
style="opacity:0.55555558;fill:url(#radialGradient5572);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.94319201;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="rect3520-3"
|
||||
d="M 20.084355,8.4626046 47.215281,11.885373 47.598076,44.058548 20.086719,39.55212 z"
|
||||
style="opacity:0.5;fill:url(#radialGradient5569);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.95841074;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536"
|
||||
d="M 46.557985,11.852145 61.70506,4.5446981"
|
||||
style="fill:url(#radialGradient5566);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.77441907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5"
|
||||
d="M 47.464169,43.45085 47.444692,11.678137"
|
||||
style="fill:url(#radialGradient5563);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-51"
|
||||
d="M 20.557161,8.3821386 46.634102,11.448301"
|
||||
style="fill:url(#radialGradient5560);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-2"
|
||||
d="M 20.887964,7.9856676 36.853687,1.8193371"
|
||||
style="fill:url(#radialGradient5557);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-9"
|
||||
d="m 37.305679,2.0089961 24.217241,2.31975"
|
||||
style="fill:url(#radialGradient5554);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.32157636;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-6"
|
||||
d="M 61.43665,5.0638601 62.14692,33.582487"
|
||||
style="fill:url(#radialGradient5551);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-21"
|
||||
d="M 47.678823,43.269031 62.17975,33.731471"
|
||||
style="fill:url(#radialGradient5548);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-7"
|
||||
d="m 20.32486,39.685618 26.821863,4.106589"
|
||||
style="fill:url(#radialGradient5545);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-8"
|
||||
d="M 20.324859,9.0109096 20.206881,39.547187"
|
||||
style="fill:url(#radialGradient5542);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5-8"
|
||||
d="m 20.718591,39.064589 16.66679,-9.892804"
|
||||
style="opacity:0.3142857;fill:url(#radialGradient5591);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.2234602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5-8-4"
|
||||
d="m 37.777324,29.391004 23.669064,3.66479"
|
||||
style="opacity:0.3142857;fill:url(#radialGradient5633);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.2234602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5-8-48"
|
||||
d="M 37.702831,29.018542 37.385382,3.3333761"
|
||||
style="opacity:0.3142857;fill:url(#radialGradient5667);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.2234602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="opacity:0.67755103;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 20.410884,39.417549 0,-17.282208 c 5.413105,-0.446954 14.550824,1.787815 17.133223,6.704305 5.413105,5.115136 5.164798,9.634334 5.512428,14.004548 z"
|
||||
id="path5688"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path3198-9"
|
||||
d="m 42.462627,56.997784 34.257568,-26.9779 18.838952,6.94169 -32.593017,27.949337 z"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.30718172;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 35 KiB |
998
WorkFeature/Icons/WF_Difference.svg
Normal file
|
@ -0,0 +1,998 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64px"
|
||||
height="64px"
|
||||
id="svg2860"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="WF_Difference.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs2862">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4247">
|
||||
<stop
|
||||
style="stop-color:#f30606;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4249" />
|
||||
<stop
|
||||
style="stop-color:#f30606;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4251" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4155">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4157" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4159" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4135">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4137" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4139" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377">
|
||||
<stop
|
||||
id="stop3379"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 32 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="64 : 32 : 1"
|
||||
inkscape:persp3d-origin="32 : 21.333333 : 1"
|
||||
id="perspective2868" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3377-7"
|
||||
id="radialGradient3692-3"
|
||||
cx="45.883327"
|
||||
cy="28.869568"
|
||||
fx="45.883327"
|
||||
fy="28.869568"
|
||||
r="19.467436"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient3377-7">
|
||||
<stop
|
||||
id="stop3379-8"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="28.869568"
|
||||
fx="45.883327"
|
||||
cy="28.869568"
|
||||
cx="45.883327"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3288-6"
|
||||
xlink:href="#linearGradient3377-7-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3377-7-5">
|
||||
<stop
|
||||
id="stop3379-8-7"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-4"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135"
|
||||
id="linearGradient4145"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="191.3165"
|
||||
y2="101.22672"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4155"
|
||||
id="linearGradient4161"
|
||||
x1="4.6279406"
|
||||
y1="100.81277"
|
||||
x2="60.639036"
|
||||
y2="100.81277"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4155"
|
||||
id="linearGradient4231"
|
||||
x1="33.746853"
|
||||
y1="34.571426"
|
||||
x2="72.681725"
|
||||
y2="34.571426"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135"
|
||||
id="linearGradient3034"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="184.22351"
|
||||
y2="100.7989" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144"
|
||||
id="radialGradient3191"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-4"
|
||||
id="radialGradient4272"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-4">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-3" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-6" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3809"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
id="linearGradient3144-8"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop3146-1"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3148-3"
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3811"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3799"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3819"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3827"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3361"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3363"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3365"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3367"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135-9"
|
||||
id="linearGradient4145-1"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="191.3165"
|
||||
y2="101.22672"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4135-9">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4137-0" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4139-9" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4247"
|
||||
id="linearGradient4253"
|
||||
x1="3.6551317"
|
||||
y1="12.367598"
|
||||
x2="17.097535"
|
||||
y2="12.367598"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-3.2003726,1.9706624)" />
|
||||
<linearGradient
|
||||
id="linearGradient5238">
|
||||
<stop
|
||||
id="stop5240"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3437"
|
||||
xlink:href="#linearGradient3144-47"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-47">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-7">
|
||||
<stop
|
||||
id="stop3379-4-2"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-6"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-22">
|
||||
<stop
|
||||
id="stop3379-4-4"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-11"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-5">
|
||||
<stop
|
||||
id="stop3379-4-8"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-1"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-67">
|
||||
<stop
|
||||
id="stop3379-4-54"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-37"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-9">
|
||||
<stop
|
||||
id="stop3379-4-7"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-0"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-29">
|
||||
<stop
|
||||
id="stop3379-4-9"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-3"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-2">
|
||||
<stop
|
||||
id="stop3379-4-5"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-2"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-6">
|
||||
<stop
|
||||
id="stop3379-4-1"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-8"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79">
|
||||
<stop
|
||||
id="stop3379-4"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-13"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4476">
|
||||
<stop
|
||||
id="stop4478"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4480"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4483">
|
||||
<stop
|
||||
id="stop4485"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4487"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5238-9">
|
||||
<stop
|
||||
id="stop5240-3"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3437-1"
|
||||
xlink:href="#linearGradient3144-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-5">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-17" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-13" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-47"
|
||||
id="radialGradient5502"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5513"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,0,0.18208544)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5517"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,0,0.18208544)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5542"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5545"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5548"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5551"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5554"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5557"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5560"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5563"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.778876,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5566"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9-8"
|
||||
id="radialGradient5563-1"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.778876,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-9-8">
|
||||
<stop
|
||||
id="stop5240-3-8"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6-8"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-40.154188,8.9284534)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5591"
|
||||
xlink:href="#linearGradient5238-9-8"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-39.856219,8.9284534)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5591-2"
|
||||
xlink:href="#linearGradient5238-9-8-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-9-8-5">
|
||||
<stop
|
||||
id="stop5240-3-8-5"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6-8-4"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-18.476934,27.412948)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5633"
|
||||
xlink:href="#linearGradient5238-9-8-5"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-39.856219,8.9284534)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5591-8"
|
||||
xlink:href="#linearGradient5238-9-8-4"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-9-8-4">
|
||||
<stop
|
||||
id="stop5240-3-8-0"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6-8-8"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-31.066129,4.3948345)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5667"
|
||||
xlink:href="#linearGradient5238-9-8-4"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9-9"
|
||||
id="radialGradient5545-7"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-9-9">
|
||||
<stop
|
||||
id="stop5240-3-7"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6-0"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="25.338509"
|
||||
fx="80.959427"
|
||||
cy="25.338509"
|
||||
cx="80.959427"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-41.110527,-2.5117393)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3974"
|
||||
xlink:href="#linearGradient5238-9-9"
|
||||
inkscape:collect="always" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="6.7121053"
|
||||
inkscape:cx="31.737971"
|
||||
inkscape:cy="32.094002"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="1070"
|
||||
inkscape:window-height="665"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="63"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2865">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer0">
|
||||
<g
|
||||
id="g3813"
|
||||
transform="matrix(-0.0719454,0.08583917,-0.08364263,-0.06979446,100.90296,75.889312)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141" />
|
||||
<g
|
||||
id="g3821"
|
||||
transform="matrix(-0.0719454,0.08583917,-0.08364263,-0.06979446,125.77915,48.713266)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path3198-6"
|
||||
d="m 114.9741,73.223439 56.67942,-56.310384 2.99835,3.323948 -56.14916,56.285527 z"
|
||||
style="fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.30718172;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
</g>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<g
|
||||
id="g3564"
|
||||
transform="matrix(0.57893948,0,0,0.57354776,33.859216,-7.0273696)"
|
||||
style="fill:url(#linearGradient4161);fill-opacity:1" />
|
||||
<path
|
||||
transform="matrix(1.1022754,0,0,0.38094153,-28.016309,45.375294)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3694-2"
|
||||
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(1.0840729,0,0,1.1348087,-37.316123,5.7363476)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3696-2"
|
||||
style="fill:#ff0f2b;fill-opacity:1;fill-rule:evenodd;stroke:#00064a;stroke-width:1.79201268999999996;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient5502);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.19132471;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
id="path3189"
|
||||
sodipodi:cx="225.26402"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:ry="23.991123"
|
||||
d="m 259.60921,672.79736 a 34.345188,23.991123 0 1 1 -68.69038,0 34.345188,23.991123 0 1 1 68.69038,0 z"
|
||||
transform="matrix(-0.17262016,0.1244591,-0.11596444,-0.18526499,127.95453,131.21484)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
id="rect3522"
|
||||
d="M 37.569484,2.0043621 20.089034,8.3531546 46.992491,12.022128 47.367854,43.65736 61.58003,34.29201 62.08807,3.8844471 37.569484,2.0043621 z"
|
||||
style="opacity:1;fill:#29c401;fill-opacity:0.99607843;fill-rule:evenodd;stroke:#000000;stroke-width:1.94319200999999997;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
id="rect3520-3"
|
||||
d="M 20.084355,8.4626046 47.215281,11.885373 47.747061,43.760579 40.757483,42.894695 33.469936,28.322232 19.49078,22.716866 z"
|
||||
style="opacity:1;fill:#29c401;fill-opacity:0.97802197999999996;fill-rule:evenodd;stroke:#000000;stroke-width:1.95841073999999993;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536"
|
||||
d="M 46.557985,11.852145 61.70506,4.5446981"
|
||||
style="fill:url(#radialGradient5566);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.77441907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5"
|
||||
d="M 47.464169,43.45085 47.444692,11.678137"
|
||||
style="fill:url(#radialGradient5563);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-51"
|
||||
d="M 20.557161,8.3821386 46.634102,11.448301"
|
||||
style="fill:url(#radialGradient5560);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-2"
|
||||
d="M 20.887964,7.9856676 36.853687,1.8193371"
|
||||
style="fill:url(#radialGradient5557);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-9"
|
||||
d="m 37.305679,2.0089961 24.217241,2.31975"
|
||||
style="fill:url(#radialGradient5554);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.32157636;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-6"
|
||||
d="M 61.43665,5.0638601 62.14692,33.582487"
|
||||
style="fill:url(#radialGradient5551);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-21"
|
||||
d="M 47.678823,43.269031 62.17975,33.731471"
|
||||
style="fill:url(#radialGradient5548);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-7"
|
||||
d="m 39.543867,42.814293 7.602856,0.977914"
|
||||
style="fill:url(#radialGradient5545);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-8"
|
||||
d="M 20.324859,9.0109096 19.759927,23.307871"
|
||||
style="fill:url(#radialGradient5542);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5-8"
|
||||
d="m 20.420622,39.064589 16.66679,-9.892804"
|
||||
style="opacity:0.3142857;fill:url(#radialGradient5591);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.2234602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5-8-4"
|
||||
d="m 37.777324,29.391004 23.669064,3.66479"
|
||||
style="opacity:0.3142857;fill:url(#radialGradient5633);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.2234602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5-8-48"
|
||||
d="M 37.702831,29.018542 37.385382,3.3333761"
|
||||
style="opacity:0.3142857;fill:url(#radialGradient5667);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.2234602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path3198-9"
|
||||
d="m 42.462627,56.997784 34.257568,-26.9779 18.838952,6.94169 -32.593017,27.949337 z"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.30718172;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 16.984239,41.620746 0,-17.282208 c 5.413105,-0.446954 5.313781,5.21446 10.130949,10.577904 5.413105,5.115136 12.167072,5.760735 12.514702,10.130949 z"
|
||||
id="path5688-0"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#fdffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="M 26.966204,35.096997 20.410884,24.07214 c 5.018321,0.83949 6.399181,0.569112 12.961656,4.469537 5.413105,5.115136 6.356674,10.975195 6.704304,15.345409 z"
|
||||
id="path5688"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-7-2"
|
||||
d="m 17.503363,40.865391 9.241686,-5.72639"
|
||||
style="fill:url(#radialGradient3974);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
562
WorkFeature/Icons/WF_NpointsLine.svg
Normal file
|
@ -0,0 +1,562 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64px"
|
||||
height="64px"
|
||||
id="svg2918"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="WF_NpointsLine.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs2920">
|
||||
<linearGradient
|
||||
id="linearGradient3144">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144"
|
||||
id="radialGradient3183"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 32 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="64 : 32 : 1"
|
||||
inkscape:persp3d-origin="32 : 21.333333 : 1"
|
||||
id="perspective2926" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-6"
|
||||
id="radialGradient4272"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-6">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-5" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4558"
|
||||
xlink:href="#linearGradient3144-6"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135-3"
|
||||
id="linearGradient4145-1"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="191.3165"
|
||||
y2="101.22672"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4135-3">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4137-9" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4139-2" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135-3-5"
|
||||
id="linearGradient4145-1-8"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="191.3165"
|
||||
y2="101.22672"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4135-3-5">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4137-9-3" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4139-2-7" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4558-0"
|
||||
xlink:href="#linearGradient3144-6-2"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-6-2">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2-4" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-5-6" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3238"
|
||||
xlink:href="#linearGradient3144-6-2"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4558-7"
|
||||
xlink:href="#linearGradient3144-6-9"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-6-9">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2-7" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-5-7" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3278"
|
||||
xlink:href="#linearGradient3144-6-9"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-9"
|
||||
id="radialGradient3191"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
id="linearGradient3144-9">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-3" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-7" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3222"
|
||||
xlink:href="#linearGradient3144-9"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3238-6"
|
||||
xlink:href="#linearGradient3144-6-2-3"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-6-2-3">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2-4-5" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-5-6-3" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3264"
|
||||
xlink:href="#linearGradient3144-6-2-3"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3278-7"
|
||||
xlink:href="#linearGradient3144-6-9-4"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-6-9-4">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2-7-6" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-5-7-5" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3304"
|
||||
xlink:href="#linearGradient3144-6-9-4"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3222-2"
|
||||
xlink:href="#linearGradient3144-9-7"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3144-9-7">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-3-4" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-7-2" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3362"
|
||||
xlink:href="#linearGradient3144-9-7"
|
||||
inkscape:collect="always" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.6104543"
|
||||
inkscape:cx="36.921981"
|
||||
inkscape:cy="37.14341"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="1261"
|
||||
inkscape:window-height="625"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="103"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2923">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="path3187-6"
|
||||
sodipodi:cx="197.14285"
|
||||
sodipodi:cy="655.2193"
|
||||
sodipodi:rx="48.57143"
|
||||
sodipodi:ry="48.57143"
|
||||
d="m 245.71428,655.2193 a 48.57143,48.57143 0 1 1 -97.14286,0 48.57143,48.57143 0 1 1 97.14286,0 z"
|
||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,45.657933,108.15717)" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="path3187-6-5"
|
||||
sodipodi:cx="197.14285"
|
||||
sodipodi:cy="655.2193"
|
||||
sodipodi:rx="48.57143"
|
||||
sodipodi:ry="48.57143"
|
||||
d="m 245.71428,655.2193 a 48.57143,48.57143 0 1 1 -97.14286,0 48.57143,48.57143 0 1 1 97.14286,0 z"
|
||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,68.258423,110.25955)" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="path3187-6-5-7"
|
||||
sodipodi:cx="197.14285"
|
||||
sodipodi:cy="655.2193"
|
||||
sodipodi:rx="48.57143"
|
||||
sodipodi:ry="48.57143"
|
||||
d="m 245.71428,655.2193 a 48.57143,48.57143 0 1 1 -97.14286,0 48.57143,48.57143 0 1 1 97.14286,0 z"
|
||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,65.104866,133.77982)" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="path3187-6-5-7-2"
|
||||
sodipodi:cx="197.14285"
|
||||
sodipodi:cy="655.2193"
|
||||
sodipodi:rx="48.57143"
|
||||
sodipodi:ry="48.57143"
|
||||
d="m 245.71428,655.2193 a 48.57143,48.57143 0 1 1 -97.14286,0 48.57143,48.57143 0 1 1 97.14286,0 z"
|
||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,83.632013,142.5835)" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="path3187-6-5-7-2-9"
|
||||
sodipodi:cx="197.14285"
|
||||
sodipodi:cy="655.2193"
|
||||
sodipodi:rx="48.57143"
|
||||
sodipodi:ry="48.57143"
|
||||
d="m 245.71428,655.2193 a 48.57143,48.57143 0 1 1 -97.14286,0 48.57143,48.57143 0 1 1 97.14286,0 z"
|
||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,47.366109,146.65684)" />
|
||||
<g
|
||||
id="g3177"
|
||||
transform="matrix(-0.1459885,0.00366916,-0.00366916,-0.1459885,83.957793,125.97476)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141" />
|
||||
<g
|
||||
id="g3154"
|
||||
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,62.789867,103.927)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||
inkscape:export-xdpi="7.0721951"
|
||||
inkscape:export-ydpi="7.0721951">
|
||||
<path
|
||||
d="m 245.71428,655.2193 c 0,26.82526 -21.74617,48.57143 -48.57143,48.57143 -26.82526,0 -48.57143,-21.74617 -48.57143,-48.57143 0,-26.82526 21.74617,-48.57143 48.57143,-48.57143 26.82526,0 48.57143,21.74617 48.57143,48.57143 z"
|
||||
sodipodi:ry="48.57143"
|
||||
sodipodi:rx="48.57143"
|
||||
sodipodi:cy="655.2193"
|
||||
sodipodi:cx="197.14285"
|
||||
id="path2162"
|
||||
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||
d="m 259.60921,672.79736 c 0,13.24993 -15.37686,23.99113 -34.34519,23.99113 -18.96832,0 -34.34519,-10.7412 -34.34519,-23.99113 0,-13.24993 15.37687,-23.99112 34.34519,-23.99112 18.96833,0 34.34519,10.74119 34.34519,23.99112 z"
|
||||
sodipodi:ry="23.991123"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:cx="225.26402"
|
||||
id="path3134"
|
||||
style="fill:url(#radialGradient4558);fill-opacity:1;stroke:none"
|
||||
sodipodi:type="arc" />
|
||||
</g>
|
||||
<g
|
||||
id="g3154-5"
|
||||
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,40.912066,101.75893)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||
inkscape:export-xdpi="7.0721951"
|
||||
inkscape:export-ydpi="7.0721951">
|
||||
<path
|
||||
d="m 245.71428,655.2193 c 0,26.82526 -21.74617,48.57143 -48.57143,48.57143 -26.82526,0 -48.57143,-21.74617 -48.57143,-48.57143 0,-26.82526 21.74617,-48.57143 48.57143,-48.57143 26.82526,0 48.57143,21.74617 48.57143,48.57143 z"
|
||||
sodipodi:ry="48.57143"
|
||||
sodipodi:rx="48.57143"
|
||||
sodipodi:cy="655.2193"
|
||||
sodipodi:cx="197.14285"
|
||||
id="path2162-1"
|
||||
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||
d="m 259.60921,672.79736 c 0,13.24993 -15.37686,23.99113 -34.34519,23.99113 -18.96832,0 -34.34519,-10.7412 -34.34519,-23.99113 0,-13.24993 15.37687,-23.99112 34.34519,-23.99112 18.96833,0 34.34519,10.74119 34.34519,23.99112 z"
|
||||
sodipodi:ry="23.991123"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:cx="225.26402"
|
||||
id="path3134-2"
|
||||
style="fill:url(#radialGradient3238);fill-opacity:1;stroke:none"
|
||||
sodipodi:type="arc" />
|
||||
</g>
|
||||
<g
|
||||
id="g3154-9"
|
||||
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,61.80438,126.85598)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||
inkscape:export-xdpi="7.0721951"
|
||||
inkscape:export-ydpi="7.0721951">
|
||||
<path
|
||||
d="m 245.71428,655.2193 c 0,26.82526 -21.74617,48.57143 -48.57143,48.57143 -26.82526,0 -48.57143,-21.74617 -48.57143,-48.57143 0,-26.82526 21.74617,-48.57143 48.57143,-48.57143 26.82526,0 48.57143,21.74617 48.57143,48.57143 z"
|
||||
sodipodi:ry="48.57143"
|
||||
sodipodi:rx="48.57143"
|
||||
sodipodi:cy="655.2193"
|
||||
sodipodi:cx="197.14285"
|
||||
id="path2162-10"
|
||||
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||
d="m 259.60921,672.79736 c 0,13.24993 -15.37686,23.99113 -34.34519,23.99113 -18.96832,0 -34.34519,-10.7412 -34.34519,-23.99113 0,-13.24993 15.37687,-23.99112 34.34519,-23.99112 18.96833,0 34.34519,10.74119 34.34519,23.99112 z"
|
||||
sodipodi:ry="23.991123"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:cx="225.26402"
|
||||
id="path3134-28"
|
||||
style="fill:url(#radialGradient3278);fill-opacity:1;stroke:none"
|
||||
sodipodi:type="arc" />
|
||||
</g>
|
||||
<g
|
||||
id="g3154-5-3"
|
||||
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,43.408631,141.57257)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||
inkscape:export-xdpi="7.0721951"
|
||||
inkscape:export-ydpi="7.0721951">
|
||||
<path
|
||||
d="m 245.71428,655.2193 c 0,26.82526 -21.74617,48.57143 -48.57143,48.57143 -26.82526,0 -48.57143,-21.74617 -48.57143,-48.57143 0,-26.82526 21.74617,-48.57143 48.57143,-48.57143 26.82526,0 48.57143,21.74617 48.57143,48.57143 z"
|
||||
sodipodi:ry="48.57143"
|
||||
sodipodi:rx="48.57143"
|
||||
sodipodi:cy="655.2193"
|
||||
sodipodi:cx="197.14285"
|
||||
id="path2162-1-0"
|
||||
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||
d="m 259.60921,672.79736 c 0,13.24993 -15.37686,23.99113 -34.34519,23.99113 -18.96832,0 -34.34519,-10.7412 -34.34519,-23.99113 0,-13.24993 15.37687,-23.99112 34.34519,-23.99112 18.96833,0 34.34519,10.74119 34.34519,23.99112 z"
|
||||
sodipodi:ry="23.991123"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:cx="225.26402"
|
||||
id="path3134-2-9"
|
||||
style="fill:url(#radialGradient3264);fill-opacity:1;stroke:none"
|
||||
sodipodi:type="arc" />
|
||||
</g>
|
||||
<g
|
||||
id="g3154-9-7"
|
||||
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,78.49195,137.23643)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||
inkscape:export-xdpi="7.0721951"
|
||||
inkscape:export-ydpi="7.0721951">
|
||||
<path
|
||||
d="m 245.71428,655.2193 c 0,26.82526 -21.74617,48.57143 -48.57143,48.57143 -26.82526,0 -48.57143,-21.74617 -48.57143,-48.57143 0,-26.82526 21.74617,-48.57143 48.57143,-48.57143 26.82526,0 48.57143,21.74617 48.57143,48.57143 z"
|
||||
sodipodi:ry="48.57143"
|
||||
sodipodi:rx="48.57143"
|
||||
sodipodi:cy="655.2193"
|
||||
sodipodi:cx="197.14285"
|
||||
id="path2162-10-3"
|
||||
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||
d="m 259.60921,672.79736 c 0,13.24993 -15.37686,23.99113 -34.34519,23.99113 -18.96832,0 -34.34519,-10.7412 -34.34519,-23.99113 0,-13.24993 15.37687,-23.99112 34.34519,-23.99112 18.96833,0 34.34519,10.74119 34.34519,23.99112 z"
|
||||
sodipodi:ry="23.991123"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:cx="225.26402"
|
||||
id="path3134-28-1"
|
||||
style="fill:url(#radialGradient3304);fill-opacity:1;stroke:none"
|
||||
sodipodi:type="arc" />
|
||||
</g>
|
||||
<rect
|
||||
transform="matrix(0.10014998,0.99497235,-0.99717424,-0.07512353,0,0)"
|
||||
y="-56.775181"
|
||||
x="25.173418"
|
||||
height="56.917122"
|
||||
width="4.4272137"
|
||||
id="rect2269"
|
||||
style="fill:#ff8f00;fill-opacity:1;fill-rule:nonzero;stroke:#7b5600;stroke-width:1.0918169;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
ry="0.57263404" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 22 KiB |
454
WorkFeature/Icons/WF_Sweep.svg
Normal file
|
@ -0,0 +1,454 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with FreeCAD (http://www.freecadweb.org) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg3017"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
sodipodi:docname="WF_Beam.svg"
|
||||
inkscape:export-filename="/home/mark/HyperbolaIcon.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata13605">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs13603">
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3977"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
||||
transform="scale(0.8) translate(12.5,0)" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
id="linearGradient41404">
|
||||
<stop
|
||||
style="stop-color:#71b2f8;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop41406" />
|
||||
<stop
|
||||
style="stop-color:#002795;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop41408" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3593"
|
||||
id="radialGradient3599"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
cx="51.637894"
|
||||
cy="24.962704"
|
||||
fx="51.637894"
|
||||
fy="24.962704"
|
||||
r="19.571428" />
|
||||
<linearGradient
|
||||
id="linearGradient3593">
|
||||
<stop
|
||||
style="stop-color:#c8e0f9;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3595" />
|
||||
<stop
|
||||
style="stop-color:#637dca;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3597" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3864"
|
||||
id="radialGradient3552"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
cx="48.645836"
|
||||
cy="25.149042"
|
||||
fx="48.645836"
|
||||
fy="25.149042"
|
||||
r="19.571428" />
|
||||
<linearGradient
|
||||
id="linearGradient3864">
|
||||
<stop
|
||||
id="stop3866"
|
||||
offset="0"
|
||||
style="stop-color:#71b2f8;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3868"
|
||||
offset="1"
|
||||
style="stop-color:#002795;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="19.571428"
|
||||
fy="25.149042"
|
||||
fx="48.645836"
|
||||
cy="25.149042"
|
||||
cx="48.645836"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient41350"
|
||||
xlink:href="#linearGradient3864"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient41404"
|
||||
id="radialGradient41391"
|
||||
cx="-10.118154"
|
||||
cy="90.943642"
|
||||
fx="-10.118154"
|
||||
fy="90.943642"
|
||||
r="56.551216"
|
||||
gradientTransform="matrix(0.50193182,0.66234991,-0.74458126,0.56424671,128.48665,-4.100012)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3864"
|
||||
id="radialGradient41416"
|
||||
cx="50.641926"
|
||||
cy="-35.530994"
|
||||
fx="50.641926"
|
||||
fy="-35.530994"
|
||||
r="50.041149"
|
||||
gradientTransform="matrix(0.52060754,0.00630777,-0.01015338,0.96270494,50.318067,-1.2529118)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3864"
|
||||
id="radialGradient41424"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.52060754,0.00630777,-0.01015338,0.96270494,50.318067,-1.2529118)"
|
||||
cx="50.641926"
|
||||
cy="-35.530994"
|
||||
fx="50.641926"
|
||||
fy="-35.530994"
|
||||
r="50.041149" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient41404"
|
||||
id="radialGradient41426"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.50193182,0.66234991,-0.74458126,0.56424671,128.48665,-4.100012)"
|
||||
cx="-10.118154"
|
||||
cy="90.943642"
|
||||
fx="-10.118154"
|
||||
fy="90.943642"
|
||||
r="56.551216" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient41404"
|
||||
id="radialGradient41526"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.2683342,0.35409417,-0.39805529,0.30164792,43.740111,15.656731)"
|
||||
cx="-10.118154"
|
||||
cy="90.943642"
|
||||
fx="-10.118154"
|
||||
fy="90.943642"
|
||||
r="56.551216" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient41404"
|
||||
id="radialGradient41536"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.2683342,0.35409417,-0.39805529,0.30164792,43.740111,15.656731)"
|
||||
cx="-10.118154"
|
||||
cy="90.943642"
|
||||
fx="-10.118154"
|
||||
fy="90.943642"
|
||||
r="56.551216" />
|
||||
<filter
|
||||
id="filter42258"
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Drop Shadow">
|
||||
<feFlood
|
||||
id="feFlood42260"
|
||||
flood-opacity="0.705"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood" />
|
||||
<feComposite
|
||||
id="feComposite42262"
|
||||
in2="SourceGraphic"
|
||||
in="flood"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur42264"
|
||||
in="composite"
|
||||
stdDeviation="0.8"
|
||||
result="blur" />
|
||||
<feOffset
|
||||
id="feOffset42266"
|
||||
dx="1.4"
|
||||
dy="1.4"
|
||||
result="offset" />
|
||||
<feComposite
|
||||
id="feComposite42268"
|
||||
in2="offset"
|
||||
in="SourceGraphic"
|
||||
operator="over"
|
||||
result="composite2" />
|
||||
</filter>
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="97.369568"
|
||||
fx="135.38333"
|
||||
cy="97.369568"
|
||||
cx="135.38333"
|
||||
gradientTransform="matrix(0.64238306,-0.04135357,0.60238855,1.8564937,-126.43366,-120.1453)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3816"
|
||||
xlink:href="#linearGradient3377-7-9-8-1-6-7-1"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3377-7-9-8-1-6-7-1">
|
||||
<stop
|
||||
id="stop3379-9-0-3-8-6-4-6"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-3-0-2-3-7-1-0"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="97.369568"
|
||||
fx="135.38333"
|
||||
cy="97.369568"
|
||||
cx="135.38333"
|
||||
gradientTransform="matrix(0.64238306,-0.04135357,0.60238855,1.8564937,-83.929103,-124.84064)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3666"
|
||||
xlink:href="#linearGradient3377-7-9-8-1-6-7-1"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="21.168837"
|
||||
fx="53.269112"
|
||||
cy="21.168837"
|
||||
cx="53.269112"
|
||||
gradientTransform="matrix(-0.48347996,-1.1563533,0.92260429,-0.38574776,71.952844,110.62943)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5166"
|
||||
xlink:href="#linearGradient5238-3-9"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-3-9">
|
||||
<stop
|
||||
id="stop5240-7-4"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-7-0"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="21.168837"
|
||||
fx="53.269112"
|
||||
cy="21.168837"
|
||||
cx="53.269112"
|
||||
gradientTransform="matrix(-0.48347996,-1.1563533,0.92260429,-0.38574776,71.952844,110.62943)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4164"
|
||||
xlink:href="#linearGradient5238-3-9"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3377-7-9-8-1-6-7-1"
|
||||
id="radialGradient4972"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.2683342,0.35409417,-0.39805529,0.30164792,43.740111,15.656731)"
|
||||
cx="-10.118154"
|
||||
cy="90.943642"
|
||||
fx="-10.118154"
|
||||
fy="90.943642"
|
||||
r="56.551216" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3377-7-9-8-1-6-7-1"
|
||||
id="radialGradient4974"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.52060754,0.00630777,-0.01015338,0.96270494,50.318067,-1.2529118)"
|
||||
cx="50.641926"
|
||||
cy="-35.530994"
|
||||
fx="50.641926"
|
||||
fy="-35.530994"
|
||||
r="50.041149" />
|
||||
<filter
|
||||
color-interpolation-filters="sRGB"
|
||||
id="filter42258-3"
|
||||
inkscape:label="Drop Shadow">
|
||||
<feFlood
|
||||
id="feFlood42260-8"
|
||||
flood-opacity="0.705"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood" />
|
||||
<feComposite
|
||||
id="feComposite42262-1"
|
||||
in2="SourceGraphic"
|
||||
in="flood"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur42264-3"
|
||||
stdDeviation="0.8"
|
||||
result="blur" />
|
||||
<feOffset
|
||||
id="feOffset42266-1"
|
||||
dx="1.4"
|
||||
dy="1.4"
|
||||
result="offset" />
|
||||
<feComposite
|
||||
id="feComposite42268-0"
|
||||
in2="offset"
|
||||
in="SourceGraphic"
|
||||
operator="over"
|
||||
result="composite2" />
|
||||
</filter>
|
||||
<filter
|
||||
color-interpolation-filters="sRGB"
|
||||
id="filter42258-1"
|
||||
inkscape:label="Drop Shadow">
|
||||
<feFlood
|
||||
id="feFlood42260-9"
|
||||
flood-opacity="0.705"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood" />
|
||||
<feComposite
|
||||
id="feComposite42262-3"
|
||||
in2="SourceGraphic"
|
||||
in="flood"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur42264-7"
|
||||
stdDeviation="0.8"
|
||||
result="blur" />
|
||||
<feOffset
|
||||
id="feOffset42266-0"
|
||||
dx="1.4"
|
||||
dy="1.4"
|
||||
result="offset" />
|
||||
<feComposite
|
||||
id="feComposite42268-5"
|
||||
in2="offset"
|
||||
in="SourceGraphic"
|
||||
operator="over"
|
||||
result="composite2" />
|
||||
</filter>
|
||||
<filter
|
||||
color-interpolation-filters="sRGB"
|
||||
id="filter42258-1-9"
|
||||
inkscape:label="Drop Shadow">
|
||||
<feFlood
|
||||
id="feFlood42260-9-7"
|
||||
flood-opacity="0.705"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood" />
|
||||
<feComposite
|
||||
id="feComposite42262-3-6"
|
||||
in2="SourceGraphic"
|
||||
in="flood"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur42264-7-3"
|
||||
stdDeviation="0.8"
|
||||
result="blur" />
|
||||
<feOffset
|
||||
id="feOffset42266-0-7"
|
||||
dx="1.4"
|
||||
dy="1.4"
|
||||
result="offset" />
|
||||
<feComposite
|
||||
id="feComposite42268-5-0"
|
||||
in2="offset"
|
||||
in="SourceGraphic"
|
||||
operator="over"
|
||||
result="composite2" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1301"
|
||||
inkscape:window-height="744"
|
||||
id="namedview13601"
|
||||
showgrid="false"
|
||||
inkscape:zoom="5.840651"
|
||||
inkscape:cx="60.002575"
|
||||
inkscape:cy="25.215672"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg3017" />
|
||||
<g
|
||||
id="g3019"
|
||||
transform="translate(0,-126)" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="Layer1" />
|
||||
<path
|
||||
style="fill:none;stroke:#0079f0;stroke-width:4.9307642;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-start:none;filter:url(#filter42258-3)"
|
||||
d="M 59.56913,7.9400816 C 52.605606,20.282372 52.646355,12.180239 40.4768,16.330627 25.214023,24.892743 34.805959,31.293654 14.840698,34.047565"
|
||||
id="path41306-2"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc"
|
||||
transform="matrix(0.91635966,-0.33268937,0.34441163,0.8851708,-9.6046235,26.426786)" />
|
||||
<path
|
||||
style="fill:none;stroke:#0079f0;stroke-width:2.95845842;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter42258-1)"
|
||||
d="M 53.466148,40.841396 C 54.960979,34.41438 48.179469,13.17288 40.4768,16.330627 c -15.262777,8.562116 -9.554229,15.976085 -0.985029,20.249582 2.913415,2.039486 12.07402,7.793518 13.974377,4.261187 z"
|
||||
id="path41306-0"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
transform="matrix(1.0140416,0,0,1.0140416,-10.21039,-3.9181536)" />
|
||||
<path
|
||||
style="fill:none;stroke:#0079f0;stroke-width:2.95845842;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter42258-1-9)"
|
||||
d="M 53.466148,40.841396 C 54.960979,34.41438 48.179469,13.17288 40.4768,16.330627 c -15.262777,8.562116 -9.554229,15.976085 -0.985029,20.249582 2.913415,2.039486 12.07402,7.793518 13.974377,4.261187 z"
|
||||
id="path41306-0-9"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
transform="matrix(1.0140416,0,0,1.0140416,6.7397744,-16.930401)" />
|
||||
<path
|
||||
style="opacity:0.75;fill:url(#radialGradient4972);fill-opacity:1;stroke:#7b5600;stroke-width:1.97230566;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter42258)"
|
||||
d="M 6.6613918,2.5495318 C 9.2305553,5.0712097 20.288955,23.501009 20.114154,29.63164 c 6.20581,8.839182 2.57458,8.81748 -0.188372,12.178573 -2.225672,2.707499 -2.064471,7.051135 -0.697402,7.997419 4.481547,3.102123 6.354714,4.03936 10.859411,4.821296 7.112471,1.2346 5.045004,2.123561 11.20649,2.995214 5.940277,0.840358 6.185458,1.430347 10.452615,1.364355 6.413081,-0.09918 13.422437,-0.691591 15.039049,-2.128547 1.616612,-1.436957 6.588793,-8.392511 1.514045,-15.840704 C 65.997631,37.640079 69.677573,35.107755 71.553137,29.49985 69.051243,16.104327 68.258012,12.906337 54.517268,1.5836261 L 50.129083,9.6635035 C 43.991819,12.312691 38.86159,10.422644 35.440528,10.84792 28.051671,10.309231 20.15682,7.0009091 16.5933,6.4423435 12.069524,5.6212399 7.7511199,3.1875723 6.6613918,2.5495318 z"
|
||||
id="path41302"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccssssssscccccc"
|
||||
transform="matrix(-0.37450424,-0.5067961,0.81446679,-0.60186189,28.68567,66.998638)" />
|
||||
<path
|
||||
style="fill:none;stroke:#0079f0;stroke-width:2.95845842;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter42258)"
|
||||
d="M 53.466148,40.841396 C 54.960979,34.41438 48.179469,13.17288 40.4768,16.330627 c -15.262777,8.562116 -9.554229,15.976085 -0.985029,20.249582 2.913415,2.039486 12.07402,7.793518 13.974377,4.261187 z"
|
||||
id="path41306"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc"
|
||||
transform="matrix(1.0140416,0,0,1.0140416,-26.228007,19.516859)" />
|
||||
</svg>
|
After Width: | Height: | Size: 16 KiB |
998
WorkFeature/Icons/WF_isCommon.svg
Normal file
|
@ -0,0 +1,998 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64px"
|
||||
height="64px"
|
||||
id="svg2860"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="WF_isCommon.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs2862">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4247">
|
||||
<stop
|
||||
style="stop-color:#f30606;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4249" />
|
||||
<stop
|
||||
style="stop-color:#f30606;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4251" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4155">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4157" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4159" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4135">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4137" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4139" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377">
|
||||
<stop
|
||||
id="stop3379"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 32 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="64 : 32 : 1"
|
||||
inkscape:persp3d-origin="32 : 21.333333 : 1"
|
||||
id="perspective2868" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3377-7"
|
||||
id="radialGradient3692-3"
|
||||
cx="45.883327"
|
||||
cy="28.869568"
|
||||
fx="45.883327"
|
||||
fy="28.869568"
|
||||
r="19.467436"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient3377-7">
|
||||
<stop
|
||||
id="stop3379-8"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="19.467436"
|
||||
fy="28.869568"
|
||||
fx="45.883327"
|
||||
cy="28.869568"
|
||||
cx="45.883327"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3288-6"
|
||||
xlink:href="#linearGradient3377-7-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3377-7-5">
|
||||
<stop
|
||||
id="stop3379-8-7"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-4"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135"
|
||||
id="linearGradient4145"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="191.3165"
|
||||
y2="101.22672"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4155"
|
||||
id="linearGradient4161"
|
||||
x1="4.6279406"
|
||||
y1="100.81277"
|
||||
x2="60.639036"
|
||||
y2="100.81277"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4155"
|
||||
id="linearGradient4231"
|
||||
x1="33.746853"
|
||||
y1="34.571426"
|
||||
x2="72.681725"
|
||||
y2="34.571426"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135"
|
||||
id="linearGradient3034"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="184.22351"
|
||||
y2="100.7989" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144"
|
||||
id="radialGradient3191"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-4"
|
||||
id="radialGradient4272"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-4">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-3" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-6" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3809"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
id="linearGradient3144-8"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop3146-1"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3148-3"
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3811"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3799"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3819"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3827"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3361"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3363"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3365"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-8"
|
||||
id="radialGradient3367"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4135-9"
|
||||
id="linearGradient4145-1"
|
||||
x1="131.82286"
|
||||
y1="101.22672"
|
||||
x2="191.3165"
|
||||
y2="101.22672"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4135-9">
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4137-0" />
|
||||
<stop
|
||||
style="stop-color:#0079ff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4139-9" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4247"
|
||||
id="linearGradient4253"
|
||||
x1="3.6551317"
|
||||
y1="12.367598"
|
||||
x2="17.097535"
|
||||
y2="12.367598"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-3.2003726,1.9706624)" />
|
||||
<linearGradient
|
||||
id="linearGradient5238">
|
||||
<stop
|
||||
id="stop5240"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3437"
|
||||
xlink:href="#linearGradient3144-47"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-47">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-2" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-7">
|
||||
<stop
|
||||
id="stop3379-4-2"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-6"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-22">
|
||||
<stop
|
||||
id="stop3379-4-4"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-11"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-5">
|
||||
<stop
|
||||
id="stop3379-4-8"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-1"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-67">
|
||||
<stop
|
||||
id="stop3379-4-54"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-37"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-9">
|
||||
<stop
|
||||
id="stop3379-4-7"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-0"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-29">
|
||||
<stop
|
||||
id="stop3379-4-9"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-3"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-2">
|
||||
<stop
|
||||
id="stop3379-4-5"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-2"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79-6">
|
||||
<stop
|
||||
id="stop3379-4-1"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-8"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377-79">
|
||||
<stop
|
||||
id="stop3379-4"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381-5-13"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4476">
|
||||
<stop
|
||||
id="stop4478"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4480"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4483">
|
||||
<stop
|
||||
id="stop4485"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4487"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5238-9">
|
||||
<stop
|
||||
id="stop5240-3"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="34.345188"
|
||||
fy="672.79736"
|
||||
fx="225.26402"
|
||||
cy="672.79736"
|
||||
cx="225.26402"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3437-1"
|
||||
xlink:href="#linearGradient3144-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3144-5">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3146-17" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3148-13" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238"
|
||||
id="radialGradient5500"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-0.48347996,-1.1563533,0.92260429,-0.38574776,71.952844,110.62943)"
|
||||
cx="53.269112"
|
||||
cy="21.168837"
|
||||
fx="53.269112"
|
||||
fy="21.168837"
|
||||
r="19.467436" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3144-47"
|
||||
id="radialGradient5502"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||
cx="225.26402"
|
||||
cy="672.79736"
|
||||
fx="225.26402"
|
||||
fy="672.79736"
|
||||
r="34.345188" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5513"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,0,0.18208544)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5517"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,0,0.18208544)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5542"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5545"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5548"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5551"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5554"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5557"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5560"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5563"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.778876,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5566"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5569"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9"
|
||||
id="radialGradient5572"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.92786,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5238-9-8"
|
||||
id="radialGradient5563-1"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.99281388,-39.778876,-2.350652)"
|
||||
cx="80.959427"
|
||||
cy="25.338509"
|
||||
fx="80.959427"
|
||||
fy="25.338509"
|
||||
r="22.508684" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-9-8">
|
||||
<stop
|
||||
id="stop5240-3-8"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6-8"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-39.856219,8.9284534)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5591"
|
||||
xlink:href="#linearGradient5238-9-8"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-39.856219,8.9284534)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5591-2"
|
||||
xlink:href="#linearGradient5238-9-8-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-9-8-5">
|
||||
<stop
|
||||
id="stop5240-3-8-5"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6-8-4"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-18.476934,27.412948)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5633"
|
||||
xlink:href="#linearGradient5238-9-8-5"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-39.856219,8.9284534)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5591-8"
|
||||
xlink:href="#linearGradient5238-9-8-4"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient5238-9-8-4">
|
||||
<stop
|
||||
id="stop5240-3-8-0"
|
||||
offset="0"
|
||||
style="stop-color:#001ccc;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5242-6-8-8"
|
||||
offset="1"
|
||||
style="stop-color:#00afff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
r="22.508684"
|
||||
fy="27.361128"
|
||||
fx="80.661461"
|
||||
cy="27.361128"
|
||||
cx="80.661461"
|
||||
gradientTransform="matrix(1,0,0,0.66293275,-31.066129,4.3948345)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient5667"
|
||||
xlink:href="#linearGradient5238-9-8-4"
|
||||
inkscape:collect="always" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="6.7121053"
|
||||
inkscape:cx="58.182729"
|
||||
inkscape:cy="32.094002"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="1070"
|
||||
inkscape:window-height="665"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="63"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata2865">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer0">
|
||||
<g
|
||||
id="g3813"
|
||||
transform="matrix(-0.0719454,0.08583917,-0.08364263,-0.06979446,100.90296,75.889312)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141" />
|
||||
<g
|
||||
id="g3821"
|
||||
transform="matrix(-0.0719454,0.08583917,-0.08364263,-0.06979446,125.77915,48.713266)"
|
||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||
inkscape:export-xdpi="7.2934141"
|
||||
inkscape:export-ydpi="7.2934141" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:28px;font-style:normal;font-weight:normal;fill:#f30606;fill-opacity:1;stroke:#000000;stroke-width:0.94630939000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
|
||||
x="-0.99982059"
|
||||
y="24.728886"
|
||||
id="text3735"
|
||||
transform="matrix(0.88877016,-0.00548731,0.00694648,1.1251074,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3737"
|
||||
x="-0.99982059"
|
||||
y="24.728886"
|
||||
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#f30606;fill-opacity:1;stroke:#000000;stroke-width:0.94630939000000003;stroke-opacity:1;font-family:Arial Black;-inkscape-font-specification:'Arial Black, Bold'">?</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path3198-6"
|
||||
d="m 114.9741,73.223439 56.67942,-56.310384 2.99835,3.323948 -56.14916,56.285527 z"
|
||||
style="fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.30718172;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
</g>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<g
|
||||
id="g3564"
|
||||
transform="matrix(0.57893948,0,0,0.57354776,33.859216,-7.0273696)"
|
||||
style="fill:url(#linearGradient4161);fill-opacity:1" />
|
||||
<path
|
||||
transform="matrix(1.1022754,0,0,0.38094153,-28.016309,45.375294)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3694-2"
|
||||
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
transform="matrix(1.0840729,0,0,1.1348087,-34.93237,4.0975175)"
|
||||
d="m 71.785715,34.571426 a 18.571428,18.571428 0 1 1 -37.142856,0 18.571428,18.571428 0 1 1 37.142856,0 z"
|
||||
sodipodi:ry="18.571428"
|
||||
sodipodi:rx="18.571428"
|
||||
sodipodi:cy="34.571426"
|
||||
sodipodi:cx="53.214287"
|
||||
id="path3696-2"
|
||||
style="fill:url(#radialGradient5500);fill-opacity:1;fill-rule:evenodd;stroke:#00064a;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:url(#radialGradient5502);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.19132471;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
id="path3189"
|
||||
sodipodi:cx="225.26402"
|
||||
sodipodi:cy="672.79736"
|
||||
sodipodi:rx="34.345188"
|
||||
sodipodi:ry="23.991123"
|
||||
d="m 259.60921,672.79736 a 34.345188,23.991123 0 1 1 -68.69038,0 34.345188,23.991123 0 1 1 68.69038,0 z"
|
||||
transform="matrix(-0.17262016,0.1244591,-0.11596444,-0.18526499,127.95453,131.21484)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
id="rect3522"
|
||||
d="M 37.569484,2.0043621 20.089034,8.3531546 46.992491,12.022128 47.367854,43.65736 61.58003,34.29201 62.08807,3.8844471 37.569484,2.0043621 z"
|
||||
style="opacity:0.55555558;fill:url(#radialGradient5572);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.94319201;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="rect3520-3"
|
||||
d="M 20.084355,8.4626046 47.215281,11.885373 47.598076,44.058548 20.086719,39.55212 z"
|
||||
style="opacity:0.5;fill:url(#radialGradient5569);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.95841074;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536"
|
||||
d="M 46.557985,11.852145 61.70506,4.5446981"
|
||||
style="fill:url(#radialGradient5566);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.77441907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5"
|
||||
d="M 47.464169,43.45085 47.444692,11.678137"
|
||||
style="fill:url(#radialGradient5563);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-51"
|
||||
d="M 20.557161,8.3821386 46.634102,11.448301"
|
||||
style="fill:url(#radialGradient5560);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-2"
|
||||
d="M 20.887964,7.9856676 36.853687,1.8193371"
|
||||
style="fill:url(#radialGradient5557);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-9"
|
||||
d="m 37.305679,2.0089961 24.217241,2.31975"
|
||||
style="fill:url(#radialGradient5554);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.32157636;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-6"
|
||||
d="M 61.43665,5.0638601 62.14692,33.582487"
|
||||
style="fill:url(#radialGradient5551);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-21"
|
||||
d="M 47.678823,43.269031 62.17975,33.731471"
|
||||
style="fill:url(#radialGradient5548);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-7"
|
||||
d="m 20.32486,39.685618 26.821863,4.106589"
|
||||
style="fill:url(#radialGradient5545);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-8"
|
||||
d="M 20.324859,9.0109096 20.206881,39.547187"
|
||||
style="fill:url(#radialGradient5542);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.72099996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5-8"
|
||||
d="m 20.718591,39.064589 16.66679,-9.892804"
|
||||
style="opacity:0.3142857;fill:url(#radialGradient5591);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.2234602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5-8-4"
|
||||
d="m 37.777324,29.391004 23.669064,3.66479"
|
||||
style="opacity:0.3142857;fill:url(#radialGradient5633);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.2234602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3536-5-8-48"
|
||||
d="M 37.702831,29.018542 37.385382,3.3333761"
|
||||
style="opacity:0.3142857;fill:url(#radialGradient5667);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.2234602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="opacity:0.67755103;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 20.410884,39.417549 0,-17.282208 c 5.413105,-0.446954 14.550824,1.787815 17.133223,6.704305 5.413105,5.115136 5.164798,9.634334 5.512428,14.004548 z"
|
||||
id="path5688"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path3198-9"
|
||||
d="m 42.462627,56.997784 34.257568,-26.9779 18.838952,6.94169 -32.593017,27.949337 z"
|
||||
style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.30718172;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 36 KiB |
23
WorkFeature/Ressources/Parametric2D.dat
Normal file
|
@ -0,0 +1,23 @@
|
|||
Name, a (t), b (a,t), X (a,b,t), Y(a,b,t), Polar, tmin, tmax, tstep
|
||||
['Circle', '10 # Radius', 'a', 'a*cos(t)', 'a*sin(t)', '0', '2*pi', '0.01', '0']
|
||||
['Ellipse', '10 # X Radius 1', '20 # Y Radius 2', 'a*cos(t)', 'b*sin(t)', '0', '2*pi', '0.01', '0']
|
||||
['Double egg', '10 # Radius', '0', 'a*cos(t)*cos(t)', 't', '-pi', 'pi', '0.01', '1']
|
||||
['Catenary or funicular', '10', '0', 'a*log((1+sin(t))/(cos(t)))', 'a/cos(t)', '-pi/2 + 0.01', 'pi/2 - 0.01', '0.01', '0']
|
||||
['Sinusoid', '5 ', '1', 't', 'a*sin(t/b)', '0', '10', '0.01', '0']
|
||||
['Dipole part1', '5 ', '1', '-pow(a*a*cos(t),0.5)', 't', '-pi/2', 'pi/2', '0.01', '1']
|
||||
['Dipole part2', '5 ', '1', 'pow(a*a*cos(t),0.5)', 't', '-pi/2', 'pi/2', '0.01', '1']
|
||||
['Tear drop', '10', '2', 'a*cos(t)', 'a*sin(t)*pow(sin(t/2),b)', '0', '2*pi', '0.01', '0']
|
||||
['Kulp quartic', '10', '2*a', 'a*tan(t)', 'b*cos(t)', '-pi', 'pi', '0.01', '0']
|
||||
['Lemniscate of Bernoulli', '10', '1+pow(cos(t),2)', 'a*sin(t)/b', 'a*sin(t)*cos(t)/b', '-pi', 'pi', '0.01', '0']
|
||||
["Pascal's snail", '10', '2', 'a*(1+b*cos(t))', 't', '0', '2*pi', '0.01', '1']
|
||||
['Archimedian spiral', '2.5 # Radius', 'a', 'a*t', 't', '0', '5*2*pi # 5 circles', '0.01', '1']
|
||||
['Simple folium', '10 # Radius', '0', 'a*(cos(t)**3)', 't', '0', 'pi', '0.01', '1']
|
||||
['Regular bifolium', '2.5 # Radius', 'a', '4*a*sin(t)*(cos(t)**2)', 't', '0', 'pi', '0.01', '1']
|
||||
['Equilateral trefoil', '10 ', 'a', 'a*cos(3*t)', 't', '0', 'pi', '0.01', '1']
|
||||
['Circle with Teeth', '37 # Number of Teeth', '(a+cos(a*t)*2)*1 # 1 is diameter', 'b*cos(t)', 'b*sin(t)', '0.0', '2*pi', '0.01', '0']
|
||||
['Spiral', '0.5 ', '-0.75', 'a*t', 'b*t', '0', '10*2*pi', '0.01', '1']
|
||||
['transcendental butterfly curve ', '4', '24', 'exp(sin(t))-2*cos(a*t)+pow(sin((2*t-pi)/b),5)', 't', '-8*pi', '8*pi', '0.01', '1']
|
||||
['Parabola', '10 # Parabola parameter >0', 'a', 't', 'sqrt(2*a*t)', '0.01', '10', '0.01', '0']
|
||||
['Witch of Agnesi', '100 # Radius', 'a', 'a*tan(t)', 'b*cos(t)*cos(t)', '-pi/2.5+0.01', 'pi/2.5-0.01', '0.01', '0']
|
||||
['Kappa', '10 # Radius', 'a', 'a*tan(t)', 't', '0', '2*pi', '0.01', '1']
|
||||
['Trefle de Habenicht', '3', 'a', '1+cos(a*t)+(sin(a*t)*sin(a*t))', 't', '0', '2*pi', '0.01', '1']
|
20
WorkFeature/Ressources/Parametric3D.dat
Normal file
|
@ -0,0 +1,20 @@
|
|||
Name, a (t), b (a,t),c (a,b,t), X (a,b,c,t), Y (a,b,c,t), Z (a,b,c,t), tmin, tmax, tstep
|
||||
['Cylindrical helix', '10 # Radius', '10*0.05 #Vert. step', '1 # +-1 direction of rotation ', 'a*cos(t)', 'c*a*sin(t)', 'b*t', '0.0', '5*2*pi #5 circles', '0.01']
|
||||
['Circle with Teeth', '37', '1', '(a+cos(a*t)*2)*b', 'c*cos(t)', 'c*sin(t)', '0', '0.0', '2*pi', '0.01']
|
||||
['Seam of a tennis ball', '5', '5', '2*(sqrt(a*b))', 'a*(cos(t))+b*(cos(3*t))', 'a*(sin(t))-b*(sin(3*t))', 'c*(sin(2*t))', '0.0', '2*pi', '0.05*pi']
|
||||
['Archytas curve part1', '10', '0', '0', 'a*(cos(t)*cos(t))', 'a*(cos(t)*sin(t))', 'a*(sqrt((1-cos(t))*cos(t)))', '-1*pi/2', '+1*pi/2', '0.005*pi']
|
||||
['Archytas curve part2', '10', '0', '0', 'a*(cos(t)*cos(t))', 'a*(cos(t)*sin(t))', '-a*(sqrt((1-cos(t))*cos(t)))', '-1*pi/2', '+1*pi/2', '0.005*pi']
|
||||
['Conical helix', '25', '20', 'sin(a)*cos(b)/sin(b)', 'a*exp(c*t)*cos(t)', 'a*exp(c*t)*sin(t)', '-1*exp(c*t)*cos(a)/sin(a)', '0.0', '10*2*pi', '0.01']
|
||||
['Tangentoidal crown', '37', '1', '1 ', 'a*cos(t)', 'a*sin(t)', 'b*tan(c*t/2)', '0.0', '2*pi', '0.01']
|
||||
['Clelia', '10', '0', '20', 'a*cos(c*t)*cos(t)', 'a*cos(c*t)*sin(t)', 'a*sin(c*t)', '0.0', '2*pi', '0.01']
|
||||
['Cylindric sine wave', '25', '10', '5 #c>0', 'a*cos(t)', 'a*sin(t)', 'b*cos(c*t)', '0.0', '10*pi', '0.01']
|
||||
['Skew circle', '10', '0', '0', '-a*cos(t)*( 1-(pow(cos(t),2)/3) )', '-a*sin(t) *( 1+(sin(2*t)/3) ) ', 'a*(t/2 +(pow(sin(t),2))/4)', '0.01', '10*pi', '0.01']
|
||||
['Egg with Teeth', '1', '1', '(a+cos(a*t)*2)*b', 'c*cos(t)*c', 'c*sin(t)', '0', '0.0', '2*pi', '0.01']
|
||||
['Flower', '6.2', '3.1*t', '2', 'a*sin(t)-c*sin(b)', 'a*cos(t)-c*cos(b)', '0', '0.0', '10*2*pi', '0.1']
|
||||
['Bicylindrical', '5 # Radius of Cyl 1', '5 # Radius of Cyl 2', '0 # Axis distance', 'a*cos(t)', 'sqrt(b*b-pow(2*c+a*sin(t),2))', 'c+a*sin(t)', '0', '2*pi', '0.01']
|
||||
['Bicylindrical eight curved', '5 # Radius of Cyl 1', '10 # Radius of Cyl 2', '2.5 # Axis distance', 'a*cos(t)', '-sqrt(b*b-pow(2*c+a*sin(t),2))', 'c+a*sin(t)', '-pi', 'pi', '0.01']
|
||||
['Bicylindrical C small', '5 # Radius of Cyl 1', '5 # Radius of Cyl 2', '1.5 # Axis distance', 'a*cos(t)', '-sqrt(abs(b*b-pow(2*c+a*sin(t),2)))', 'c+a*sin(t)', '-pi', 'pi', '0.01']
|
||||
['Horopter', '20 # Radius', '10', 'tan(t/2)', '(2*a)/(1+c*c)', 'b*c', 'c*(2*a)/(1+c*c)', '-pi+0.01', 'pi-0.01', '0.01']
|
||||
['3D Lissajous', '10 ', '10', '0', 'a*cos(3*t)', 'a*sin(2*t)', 'b*sin(7*t)', '0.0', '2*pi', '0.01']
|
||||
['Trefoil knot', '10', '0', '1 #-1 senestre', 'a*(cos(t)+2*cos(2*t))', 'a*(sin(t)-2*sin(2*t))', 'a*2*c*sin(3*t)', '0.0', '2*pi', '0.01']
|
||||
['Nfoil knot', '10', '10 #number of foils', '1 #-1 senestre', 'a*(cos(t)+2*cos((b-1)*t))', 'a*(sin(t)-2*sin((b-1)*t))', 'a*2*c*sin(b*t)', '0.0', '2*pi', '0.01']
|
3309
WorkFeature/Ui/WFGui_2015.py
Normal file
6899
WorkFeature/Ui/WFGui_2015.ui
Normal file
193
WorkFeature/Ui/WF_ObjParCurve2DEditGui_2015.py
Normal file
|
@ -0,0 +1,193 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve2DEditGui_2015.ui'
|
||||
#
|
||||
# Created: Tue Oct 27 06:56:40 2015
|
||||
# by: PySide UI code generator 4.11.2
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PySide import QtCore, QtGui
|
||||
|
||||
try:
|
||||
_fromUtf8 = QtCore.QString.fromUtf8
|
||||
except AttributeError:
|
||||
def _fromUtf8(s):
|
||||
return s
|
||||
|
||||
try:
|
||||
_encoding = QtGui.QApplication.UnicodeUTF8
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig, _encoding)
|
||||
except AttributeError:
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig)
|
||||
|
||||
class Ui_Form(object):
|
||||
def setupUi(self, Form):
|
||||
Form.setObjectName(_fromUtf8("Form"))
|
||||
Form.resize(1039, 460)
|
||||
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
||||
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
||||
self.groupBox_2 = QtGui.QGroupBox(Form)
|
||||
self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
|
||||
self.gridLayout = QtGui.QGridLayout(self.groupBox_2)
|
||||
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
|
||||
self.horizontalLayout = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
|
||||
self.button_load = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_load.setObjectName(_fromUtf8("button_load"))
|
||||
self.horizontalLayout.addWidget(self.button_load)
|
||||
self.button_save = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_save.setObjectName(_fromUtf8("button_save"))
|
||||
self.horizontalLayout.addWidget(self.button_save)
|
||||
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem)
|
||||
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox_2, 0, 0, 1, 1)
|
||||
self.tableWidget = QtGui.QTableWidget(Form)
|
||||
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
||||
self.tableWidget.setColumnCount(10)
|
||||
self.tableWidget.setRowCount(2)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 8, item)
|
||||
self.gridLayout_3.addWidget(self.tableWidget, 1, 0, 1, 1)
|
||||
self.groupBox = QtGui.QGroupBox(Form)
|
||||
self.groupBox.setObjectName(_fromUtf8("groupBox"))
|
||||
self.gridLayout_2 = QtGui.QGridLayout(self.groupBox)
|
||||
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
|
||||
self.horizontalLayout_2 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
|
||||
self.button_addRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_addRow.setObjectName(_fromUtf8("button_addRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_addRow)
|
||||
self.button_removeRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_removeRow.setObjectName(_fromUtf8("button_removeRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_removeRow)
|
||||
spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_2.addItem(spacerItem1)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_2, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox, 2, 0, 1, 1)
|
||||
self.horizontalLayout_4 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
|
||||
self.comboBox_select = QtGui.QComboBox(Form)
|
||||
self.comboBox_select.setEnabled(False)
|
||||
self.comboBox_select.setMaximumSize(QtCore.QSize(0, 0))
|
||||
self.comboBox_select.setFrame(True)
|
||||
self.comboBox_select.setModelColumn(1)
|
||||
self.comboBox_select.setObjectName(_fromUtf8("comboBox_select"))
|
||||
self.horizontalLayout_4.addWidget(self.comboBox_select)
|
||||
spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem2)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_4, 3, 0, 1, 1)
|
||||
self.horizontalLayout_3 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
|
||||
self.button_quit = QtGui.QPushButton(Form)
|
||||
self.button_quit.setObjectName(_fromUtf8("button_quit"))
|
||||
self.horizontalLayout_3.addWidget(self.button_quit)
|
||||
spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_3.addItem(spacerItem3)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_3, 4, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(Form)
|
||||
QtCore.QMetaObject.connectSlotsByName(Form)
|
||||
|
||||
def retranslateUi(self, Form):
|
||||
Form.setWindowTitle(_translate("Form", "Form", None))
|
||||
self.groupBox_2.setTitle(_translate("Form", "2D Database", None))
|
||||
self.button_load.setToolTip(_translate("Form", "Click to load common and customs curves.", None))
|
||||
self.button_load.setText(_translate("Form", "Load", None))
|
||||
self.button_save.setToolTip(_translate("Form", "This will save customs curves only in your HOME directory under \"Parametric2D.dat\".", None))
|
||||
self.button_save.setText(_translate("Form", "Save", None))
|
||||
item = self.tableWidget.verticalHeaderItem(0)
|
||||
item.setText(_translate("Form", "1", None))
|
||||
item = self.tableWidget.verticalHeaderItem(1)
|
||||
item.setText(_translate("Form", "2", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(0)
|
||||
item.setText(_translate("Form", "Name", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(1)
|
||||
item.setText(_translate("Form", "a (t) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(2)
|
||||
item.setText(_translate("Form", "b (a, t) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(3)
|
||||
item.setText(_translate("Form", "X (a,b,c,t)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(4)
|
||||
item.setText(_translate("Form", "Y (a,b,c,t)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(5)
|
||||
item.setText(_translate("Form", "t min", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(6)
|
||||
item.setText(_translate("Form", "t max", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(7)
|
||||
item.setText(_translate("Form", "t step", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(8)
|
||||
item.setText(_translate("Form", "Polar", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(9)
|
||||
item.setText(_translate("Form", "Comments", None))
|
||||
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
||||
self.tableWidget.setSortingEnabled(False)
|
||||
item = self.tableWidget.item(0, 0)
|
||||
item.setText(_translate("Form", "Circle", None))
|
||||
item = self.tableWidget.item(0, 1)
|
||||
item.setText(_translate("Form", "10 # Radius", None))
|
||||
item = self.tableWidget.item(0, 2)
|
||||
item.setText(_translate("Form", "a", None))
|
||||
item = self.tableWidget.item(0, 3)
|
||||
item.setText(_translate("Form", "a*cos(t)", None))
|
||||
item = self.tableWidget.item(0, 4)
|
||||
item.setText(_translate("Form", "a*sin(t)", None))
|
||||
item = self.tableWidget.item(0, 5)
|
||||
item.setText(_translate("Form", "0", None))
|
||||
item = self.tableWidget.item(0, 6)
|
||||
item.setText(_translate("Form", "2*pi", None))
|
||||
item = self.tableWidget.item(0, 7)
|
||||
item.setText(_translate("Form", "0.01", None))
|
||||
item = self.tableWidget.item(0, 8)
|
||||
item.setText(_translate("Form", "0", None))
|
||||
self.tableWidget.setSortingEnabled(__sortingEnabled)
|
||||
self.groupBox.setTitle(_translate("Form", "Row", None))
|
||||
self.button_addRow.setToolTip(_translate("Form", "Add a row into the table.", None))
|
||||
self.button_addRow.setText(_translate("Form", "add", None))
|
||||
self.button_removeRow.setToolTip(_translate("Form", "Remove a row from the table.", None))
|
||||
self.button_removeRow.setText(_translate("Form", "remove", None))
|
||||
self.button_quit.setText(_translate("Form", "Quit", None))
|
||||
|
282
WorkFeature/Ui/WF_ObjParCurve2DEditGui_2015.ui
Normal file
|
@ -0,0 +1,282 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Form</class>
|
||||
<widget class="QWidget" name="Form">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1039</width>
|
||||
<height>460</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>2D Database</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_load">
|
||||
<property name="toolTip">
|
||||
<string>Click to load common and customs curves.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Load</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_save">
|
||||
<property name="toolTip">
|
||||
<string>This will save customs curves only in your HOME directory under "Parametric2D.dat".</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Save</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QTableWidget" name="tableWidget">
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</row>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</row>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>a (t) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>b (a, t) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>X (a,b,c,t)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Y (a,b,c,t)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t min</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t max</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t step</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Polar</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Comments</string>
|
||||
</property>
|
||||
</column>
|
||||
<item row="0" column="0">
|
||||
<property name="text">
|
||||
<string>Circle</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<property name="text">
|
||||
<string>10 # Radius</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<property name="text">
|
||||
<string>a</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<property name="text">
|
||||
<string>a*cos(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<property name="text">
|
||||
<string>a*sin(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<property name="text">
|
||||
<string>2*pi</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="7">
|
||||
<property name="text">
|
||||
<string>0.01</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="8">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Row</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_addRow">
|
||||
<property name="toolTip">
|
||||
<string>Add a row into the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_removeRow">
|
||||
<property name="toolTip">
|
||||
<string>Remove a row from the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboBox_select">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="modelColumn">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_quit">
|
||||
<property name="text">
|
||||
<string>Quit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
244
WorkFeature/Ui/WF_ObjParCurve3DEditGui_2015.py
Normal file
|
@ -0,0 +1,244 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve3DEditGui_2015.ui'
|
||||
#
|
||||
# Created: Tue Oct 27 06:56:50 2015
|
||||
# by: PySide UI code generator 4.11.2
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PySide import QtCore, QtGui
|
||||
|
||||
try:
|
||||
_fromUtf8 = QtCore.QString.fromUtf8
|
||||
except AttributeError:
|
||||
def _fromUtf8(s):
|
||||
return s
|
||||
|
||||
try:
|
||||
_encoding = QtGui.QApplication.UnicodeUTF8
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig, _encoding)
|
||||
except AttributeError:
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig)
|
||||
|
||||
class Ui_Form(object):
|
||||
def setupUi(self, Form):
|
||||
Form.setObjectName(_fromUtf8("Form"))
|
||||
Form.resize(1039, 460)
|
||||
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
||||
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
||||
self.groupBox_2 = QtGui.QGroupBox(Form)
|
||||
self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
|
||||
self.gridLayout = QtGui.QGridLayout(self.groupBox_2)
|
||||
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
|
||||
self.horizontalLayout = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
|
||||
self.button_load = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_load.setObjectName(_fromUtf8("button_load"))
|
||||
self.horizontalLayout.addWidget(self.button_load)
|
||||
self.button_save = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_save.setObjectName(_fromUtf8("button_save"))
|
||||
self.horizontalLayout.addWidget(self.button_save)
|
||||
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem)
|
||||
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox_2, 0, 0, 1, 1)
|
||||
self.tableWidget = QtGui.QTableWidget(Form)
|
||||
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
||||
self.tableWidget.setColumnCount(11)
|
||||
self.tableWidget.setRowCount(3)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(10, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 9, item)
|
||||
self.gridLayout_3.addWidget(self.tableWidget, 1, 0, 1, 1)
|
||||
self.groupBox = QtGui.QGroupBox(Form)
|
||||
self.groupBox.setObjectName(_fromUtf8("groupBox"))
|
||||
self.gridLayout_2 = QtGui.QGridLayout(self.groupBox)
|
||||
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
|
||||
self.horizontalLayout_2 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
|
||||
self.button_addRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_addRow.setObjectName(_fromUtf8("button_addRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_addRow)
|
||||
self.button_removeRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_removeRow.setObjectName(_fromUtf8("button_removeRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_removeRow)
|
||||
spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_2.addItem(spacerItem1)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_2, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox, 2, 0, 1, 1)
|
||||
self.horizontalLayout_4 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
|
||||
self.comboBox_select = QtGui.QComboBox(Form)
|
||||
self.comboBox_select.setEnabled(False)
|
||||
self.comboBox_select.setMaximumSize(QtCore.QSize(0, 0))
|
||||
self.comboBox_select.setModelColumn(1)
|
||||
self.comboBox_select.setObjectName(_fromUtf8("comboBox_select"))
|
||||
self.horizontalLayout_4.addWidget(self.comboBox_select)
|
||||
spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem2)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_4, 3, 0, 1, 1)
|
||||
self.horizontalLayout_3 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
|
||||
self.button_quit = QtGui.QPushButton(Form)
|
||||
self.button_quit.setObjectName(_fromUtf8("button_quit"))
|
||||
self.horizontalLayout_3.addWidget(self.button_quit)
|
||||
spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_3.addItem(spacerItem3)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_3, 4, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(Form)
|
||||
QtCore.QMetaObject.connectSlotsByName(Form)
|
||||
|
||||
def retranslateUi(self, Form):
|
||||
Form.setWindowTitle(_translate("Form", "Form", None))
|
||||
self.groupBox_2.setTitle(_translate("Form", "3D Database", None))
|
||||
self.button_load.setToolTip(_translate("Form", "Click to load common and customs curves.", None))
|
||||
self.button_load.setText(_translate("Form", "Load", None))
|
||||
self.button_save.setToolTip(_translate("Form", "This will save customs curves only in your HOME directory under \"Parametric3D.dat\".", None))
|
||||
self.button_save.setText(_translate("Form", "Save", None))
|
||||
item = self.tableWidget.verticalHeaderItem(0)
|
||||
item.setText(_translate("Form", "1", None))
|
||||
item = self.tableWidget.verticalHeaderItem(1)
|
||||
item.setText(_translate("Form", "2", None))
|
||||
item = self.tableWidget.verticalHeaderItem(2)
|
||||
item.setText(_translate("Form", "3", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(0)
|
||||
item.setText(_translate("Form", "Name", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(1)
|
||||
item.setText(_translate("Form", "a (t) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(2)
|
||||
item.setText(_translate("Form", "b (a, t) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(3)
|
||||
item.setText(_translate("Form", "c (a, b, t) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(4)
|
||||
item.setText(_translate("Form", "X (a,b,c,t)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(5)
|
||||
item.setText(_translate("Form", "Y (a,b,c,t)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(6)
|
||||
item.setText(_translate("Form", "Z (a,b,c,t)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(7)
|
||||
item.setText(_translate("Form", "t min", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(8)
|
||||
item.setText(_translate("Form", "t max", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(9)
|
||||
item.setText(_translate("Form", "t step", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(10)
|
||||
item.setText(_translate("Form", "Comments", None))
|
||||
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
||||
self.tableWidget.setSortingEnabled(False)
|
||||
item = self.tableWidget.item(0, 0)
|
||||
item.setText(_translate("Form", "Cylindrical helix", None))
|
||||
item = self.tableWidget.item(0, 1)
|
||||
item.setText(_translate("Form", "10*0.05 #Vert. step", None))
|
||||
item = self.tableWidget.item(0, 2)
|
||||
item.setText(_translate("Form", "1", None))
|
||||
item = self.tableWidget.item(0, 3)
|
||||
item.setText(_translate("Form", "10 # Radius", None))
|
||||
item = self.tableWidget.item(0, 4)
|
||||
item.setText(_translate("Form", "c*sin(t)", None))
|
||||
item = self.tableWidget.item(0, 5)
|
||||
item.setText(_translate("Form", "c*cos(t)", None))
|
||||
item = self.tableWidget.item(0, 6)
|
||||
item.setText(_translate("Form", "a*t", None))
|
||||
item = self.tableWidget.item(0, 7)
|
||||
item.setText(_translate("Form", "0", None))
|
||||
item = self.tableWidget.item(0, 8)
|
||||
item.setText(_translate("Form", "5*2*pi #5 circles", None))
|
||||
item = self.tableWidget.item(0, 9)
|
||||
item.setText(_translate("Form", "0.01", None))
|
||||
item = self.tableWidget.item(1, 0)
|
||||
item.setText(_translate("Form", "Circle with Teeth", None))
|
||||
item = self.tableWidget.item(1, 1)
|
||||
item.setText(_translate("Form", "37", None))
|
||||
item = self.tableWidget.item(1, 2)
|
||||
item.setText(_translate("Form", "1", None))
|
||||
item = self.tableWidget.item(1, 3)
|
||||
item.setText(_translate("Form", "(a+cos(a*t)*2)*b", None))
|
||||
item = self.tableWidget.item(1, 4)
|
||||
item.setText(_translate("Form", "c*cos(t)", None))
|
||||
item = self.tableWidget.item(1, 5)
|
||||
item.setText(_translate("Form", "c*sin(t)", None))
|
||||
item = self.tableWidget.item(1, 6)
|
||||
item.setText(_translate("Form", "0", None))
|
||||
item = self.tableWidget.item(1, 7)
|
||||
item.setText(_translate("Form", "0", None))
|
||||
item = self.tableWidget.item(1, 8)
|
||||
item.setText(_translate("Form", "2*pi", None))
|
||||
item = self.tableWidget.item(1, 9)
|
||||
item.setText(_translate("Form", "0.01", None))
|
||||
self.tableWidget.setSortingEnabled(__sortingEnabled)
|
||||
self.groupBox.setTitle(_translate("Form", "Row", None))
|
||||
self.button_addRow.setToolTip(_translate("Form", "Add a row into the table.", None))
|
||||
self.button_addRow.setText(_translate("Form", "add", None))
|
||||
self.button_removeRow.setToolTip(_translate("Form", "Remove a row from the table.", None))
|
||||
self.button_removeRow.setText(_translate("Form", "remove", None))
|
||||
self.button_quit.setText(_translate("Form", "Quit", None))
|
||||
|
344
WorkFeature/Ui/WF_ObjParCurve3DEditGui_2015.ui
Normal file
|
@ -0,0 +1,344 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Form</class>
|
||||
<widget class="QWidget" name="Form">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1039</width>
|
||||
<height>460</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>3D Database</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_load">
|
||||
<property name="toolTip">
|
||||
<string>Click to load common and customs curves.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Load</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_save">
|
||||
<property name="toolTip">
|
||||
<string>This will save customs curves only in your HOME directory under "Parametric3D.dat".</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Save</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QTableWidget" name="tableWidget">
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</row>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</row>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>3</string>
|
||||
</property>
|
||||
</row>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>a (t) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>b (a, t) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>c (a, b, t) </string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>X (a,b,c,t)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Y (a,b,c,t)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Z (a,b,c,t)</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t min</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t max</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>t step</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Comments</string>
|
||||
</property>
|
||||
</column>
|
||||
<item row="0" column="0">
|
||||
<property name="text">
|
||||
<string>Cylindrical helix</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<property name="text">
|
||||
<string>10*0.05 #Vert. step</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<property name="text">
|
||||
<string>10 # Radius</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<property name="text">
|
||||
<string>c*sin(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
<property name="text">
|
||||
<string>c*cos(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<property name="text">
|
||||
<string>a*t</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="7">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="8">
|
||||
<property name="text">
|
||||
<string>5*2*pi #5 circles</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="0" column="9">
|
||||
<property name="text">
|
||||
<string>0.01</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<property name="text">
|
||||
<string>Circle with Teeth</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<property name="text">
|
||||
<string>37</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<property name="text">
|
||||
<string>(a+cos(a*t)*2)*b</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<property name="text">
|
||||
<string>c*cos(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<property name="text">
|
||||
<string>c*sin(t)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="6">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="7">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="8">
|
||||
<property name="text">
|
||||
<string>2*pi</string>
|
||||
</property>
|
||||
</item>
|
||||
<item row="1" column="9">
|
||||
<property name="text">
|
||||
<string>0.01</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Row</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_addRow">
|
||||
<property name="toolTip">
|
||||
<string>Add a row into the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_removeRow">
|
||||
<property name="toolTip">
|
||||
<string>Remove a row from the table.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboBox_select">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="modelColumn">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="button_quit">
|
||||
<property name="text">
|
||||
<string>Quit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
0
WorkFeature/Ui/__init__.py
Normal file
4
WorkFeature/sh_ui2pySide → WorkFeature/Ui/sh_ui2pySide
Executable file → Normal file
|
@ -3,6 +3,8 @@
|
|||
m_ui_file=$1
|
||||
m_ui_base=`basename ${m_ui_file} .ui`
|
||||
pyuic4 ${m_ui_base}.ui > ${m_ui_base}.py
|
||||
cat ${m_ui_base}.py | sed 's#Icons/#icons:#g ' | sed 's#PyQt4#PySide#g ' | sed 's#QtCore.QString.fromUtf8(#_fromUtf8(#g '>tmp.py
|
||||
cat ${m_ui_base}.py | sed 's#Icons/#icons:#g ' | sed 's#PyQt4#PySide#g ' | sed 's#QtCore.QString.fromUtf8(#_fromUtf8(#g ' | sed 's#../icons:#icons:#g '>tmp.py
|
||||
mv tmp.py ${m_ui_base}.py
|
||||
cp ${m_ui_base}.py ../${m_ui_base}.py
|
||||
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
***************************************************************************
|
||||
* Thanks to original ideas, codes, and support from : *
|
||||
* - Javier Martinez Garcia 2014, 2015 for ideas and first WF codes *
|
||||
* for tje code on parallelism of two faces, forTour camera code *
|
||||
* for tje code on parallelism of two faces, forTour camera code... *
|
||||
* - Jonathan Wiedemann for Gui ideas and for view codes 2014 *
|
||||
* and support *
|
||||
* - NormandC for his support *
|
||||
|
@ -13,6 +13,7 @@
|
|||
* - Eriossoltero for macro Ellipse-Center+2Points *
|
||||
* - Ulrich Brammer for Geodesic dome code *
|
||||
* - Wmayer Many Thanks for active help on testing and debbuging *
|
||||
* - Gaël Ecorchard for HighlightDifference Macro *
|
||||
* Special thanks to Mario52 for diverse MACRO codes as FCCamera, *
|
||||
* cutCircle, cutWire, Delta xyz, bounding box ... *
|
||||
* and other diverse pieces of codes *
|
||||
|
@ -29,6 +30,7 @@
|
|||
* Copyright (c) 2013 galou_breizh *
|
||||
* Copyright (c) 2015 Ulrich Brammer <ulrich1a[at]users.sourceforge.net> *
|
||||
* Copyright (c) Eriossoltero *
|
||||
* Copyright (c) 2015 Gaël Ecorchard *
|
||||
* *
|
||||
* This file is a supplement to the FreeCAD CAx development system. *
|
||||
* *
|
||||
|
@ -51,15 +53,18 @@
|
|||
"""
|
||||
# First two lines to be able to launch with python
|
||||
import sys
|
||||
from WorkFeature import WF_ObjParCurve_2015
|
||||
# change this by your own FreeCAD lib path import FreeCAD
|
||||
if not sys.path.__contains__("/usr/lib/freecad/lib"):
|
||||
sys.path.append("/usr/lib/freecad/lib")
|
||||
|
||||
import WFGui_2015 as WFGui
|
||||
from WF_ObjRot_2015 import *
|
||||
from WF_Utils_2015 import *
|
||||
from WF_ObjParCurve_2015 import *
|
||||
|
||||
global myRelease
|
||||
myRelease = "2015_10_05"
|
||||
myRelease = "2015_10_20"
|
||||
|
||||
import os.path
|
||||
import time
|
||||
|
@ -84,9 +89,13 @@ ICONS_PATH = os.path.dirname(__file__) + "/Icons"
|
|||
QtCore.QDir.addSearchPath("icons", ICONS_PATH)
|
||||
|
||||
# LineColor
|
||||
red = 1.0 # 1 = 255
|
||||
green = 0.0 #
|
||||
blue = 0.0 #
|
||||
#red = 1.0 # 1 = 255
|
||||
#green = 0.0 #
|
||||
#blue = 0.0 #
|
||||
red=(1.00,0.00,0.00)
|
||||
green=(0.00,0.67,0.00)
|
||||
blue=(0.33,0.00,1.00)
|
||||
orange=(1.00,0.67,0.00)
|
||||
flag_for_face=True
|
||||
|
||||
# Some Global variables
|
||||
|
@ -1708,7 +1717,7 @@ def properties_point(Point_User_Name):
|
|||
return
|
||||
|
||||
|
||||
def properties_line(Line_User_Name):
|
||||
def properties_line(Line_User_Name, color=(1.00,0.67,0.00)):
|
||||
""" Define the properties of a Work feature Line.
|
||||
PointColor
|
||||
LineColor
|
||||
|
@ -1717,11 +1726,11 @@ def properties_line(Line_User_Name):
|
|||
Transparency
|
||||
"""
|
||||
try:
|
||||
Gui.ActiveDocument.getObject(Line_User_Name).PointColor = (1.00,0.67,0.00)
|
||||
Gui.ActiveDocument.getObject(Line_User_Name).PointColor = color
|
||||
except:
|
||||
print_msg("Not able to set PointColor !")
|
||||
try:
|
||||
Gui.ActiveDocument.getObject(Line_User_Name).LineColor = (1.00,0.67,0.00)
|
||||
Gui.ActiveDocument.getObject(Line_User_Name).LineColor = color
|
||||
except:
|
||||
print_msg("Not able to set LineColor !")
|
||||
try:
|
||||
|
@ -1788,14 +1797,14 @@ def plot_point(Vector_point, part="Part::Feature", name="Point", grp="WorkPoints
|
|||
return point_User_Name
|
||||
|
||||
|
||||
def plot_axis(Vector_A, Vector_B, part="Part::Feature", name="Axis", grp="WorkAxis"):
|
||||
def plot_axis(Vector_A, Vector_B, part="Part::Feature", name="Axis", grp="WorkAxis", color=(1.00,0.67,0.00)):
|
||||
if not(App.ActiveDocument.getObject( grp )):
|
||||
App.ActiveDocument.addObject("App::DocumentObjectGroup", grp)
|
||||
axis = App.ActiveDocument.addObject(part, name)
|
||||
axis.Shape = Part.makeLine(Vector_A, Vector_B)
|
||||
App.ActiveDocument.getObject( grp ).addObject(axis)
|
||||
axis_User_Name = axis.Label
|
||||
properties_line(axis_User_Name)
|
||||
properties_line(axis_User_Name, color)
|
||||
return axis_User_Name, axis
|
||||
|
||||
|
||||
|
@ -3304,6 +3313,7 @@ def point_toSketch():
|
|||
if m_num_point != num_point:
|
||||
printError_msg(error_msg)
|
||||
return
|
||||
if msg != 0:
|
||||
createFolders('WorkPoints')
|
||||
for point in return_points:
|
||||
plot_point(point, part="Part::Feature", name="Sketch_Proj", grp="WorkPoints")
|
||||
|
@ -3449,9 +3459,94 @@ def plot_2PointsAxis():
|
|||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
def plot_NPoints_axis():
|
||||
""" Create an Axis based on a linear regression from a set of Points.
|
||||
"""
|
||||
global verbose
|
||||
msg=verbose
|
||||
import numpy as np
|
||||
|
||||
m_actDoc = get_ActiveDocument(info=msg)
|
||||
if m_actDoc == None:
|
||||
return None
|
||||
|
||||
createFolders('WorkAxis')
|
||||
error_msg = "Unable to create Axis : \nSelect at least two points!"
|
||||
result_msg = " : Axis created !"
|
||||
name = "Line from N Points"
|
||||
part = "Part::Feature"
|
||||
grp = "WorkAxis"
|
||||
|
||||
Selection = get_SelectedObjects(info=msg, printError=False)
|
||||
|
||||
try:
|
||||
SelectedObjects = Selection
|
||||
Number_of_Points = SelectedObjects[0]
|
||||
if msg != 0:
|
||||
print_msg("Number_of_Points=" + str(Number_of_Points))
|
||||
if Number_of_Points > 1:
|
||||
m_x = []
|
||||
m_y = []
|
||||
m_z = []
|
||||
Point_List = SelectedObjects[3]
|
||||
if msg != 0:
|
||||
print_msg("Point_List=" + str(Point_List))
|
||||
for Selected_Point in Point_List:
|
||||
m_point = Selected_Point.Point
|
||||
m_x.append(m_point.x)
|
||||
m_y.append(m_point.y)
|
||||
m_z.append(m_point.z)
|
||||
|
||||
m_np_x = np.asfarray(m_x)
|
||||
m_np_y = np.asfarray(m_y)
|
||||
m_np_z = np.asfarray(m_z)
|
||||
if msg != 0:
|
||||
print_msg(" m_np_x=" + str(m_np_x))
|
||||
print_msg(" m_np_y=" + str(m_np_y))
|
||||
print_msg(" m_np_z=" + str(m_np_z))
|
||||
m_data = np.concatenate((m_np_x[:, np.newaxis],
|
||||
m_np_y[:, np.newaxis],
|
||||
m_np_z[:, np.newaxis]),
|
||||
axis=1)
|
||||
if msg != 0:
|
||||
print_msg(" m_data=" + str(m_data))
|
||||
# Calculate the mean of the points, i.e. the 'center' of the cloud
|
||||
m_datamean = m_data.mean(axis=0)
|
||||
if msg != 0:
|
||||
print_msg(" m_datamean=" + str(m_datamean))
|
||||
Axis_E0 = Base.Vector(m_datamean[0], m_datamean[1], m_datamean[2])
|
||||
|
||||
# Do an SVD on the mean-centered data.
|
||||
m_uu, m_dd, m_vv = np.linalg.svd(m_data - m_datamean)
|
||||
if msg != 0:
|
||||
print_msg(" m_uu=" + str(m_uu))
|
||||
print_msg(" m_dd=" + str(m_dd))
|
||||
print_msg(" m_vv=" + str(m_vv))
|
||||
# Now vv[0] contains the first principal component, i.e. the direction
|
||||
# vector of the 'best fit' line in the least squares sense.
|
||||
Axis_dir = Base.Vector(m_vv[0][0],m_vv[0][1],m_vv[0][2])
|
||||
Axis_E1 = Axis_E0 - Axis_dir.normalize().multiply(m_dd[0]/2.)
|
||||
Axis_E2 = Axis_E0 + Axis_dir.normalize().multiply(m_dd[0]/2.)
|
||||
Axis_User_Name, axis = plot_axis(Axis_E1, Axis_E2, part, name, grp, orange)
|
||||
print_msg(str(Axis_User_Name) + result_msg )
|
||||
Axis_dir = Base.Vector(m_vv[1][0],m_vv[1][1],m_vv[1][2])
|
||||
#Axis_E2 = Axis_E0 + Axis_dir.normalize().multiply(m_dd[1]/2.)
|
||||
Axis_E2 = Axis_E0 + Axis_dir
|
||||
Axis_User_Name, axis = plot_axis(Axis_E0, Axis_E2, part, name, grp, red)
|
||||
print_msg(str(Axis_User_Name) + result_msg )
|
||||
Axis_dir = Base.Vector(m_vv[2][0],m_vv[2][1],m_vv[2][2])
|
||||
#Axis_E2 = Axis_E0 + Axis_dir.normalize().multiply(m_dd[2]/2.)
|
||||
Axis_E2 = Axis_E0 + Axis_dir
|
||||
Axis_User_Name, axis = plot_axis(Axis_E0, Axis_E2, part, name, grp, green)
|
||||
print_msg(str(Axis_User_Name) + result_msg )
|
||||
else:
|
||||
printError_msg(error_msg)
|
||||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
def plot_cylinderAxis():
|
||||
msg=1
|
||||
global verbose
|
||||
msg=verbose
|
||||
createFolders('WorkAxis')
|
||||
error_msg = "Unable to create Cylinder Axis : \nSelect one cylindrical face only !"
|
||||
result_msg = " : Cylinder Axis created !"
|
||||
|
@ -3471,9 +3566,10 @@ def plot_cylinderAxis():
|
|||
if msg != 0:
|
||||
print_msg("Number_of_Faces=" + str(Number_of_Faces))
|
||||
print_msg("Number_of_Edges=" + str(Number_of_Edges))
|
||||
if Number_of_Faces == 1:
|
||||
if Number_of_Faces >= 1:
|
||||
Face_list = SelectedObjects[5]
|
||||
Face = Face_list[0]
|
||||
for Face in Face_list:
|
||||
#Face = Face_list[0]
|
||||
Face_Wire = Face.OuterWire
|
||||
Face_Edges = Face_Wire.Edges
|
||||
try:
|
||||
|
@ -4908,9 +5004,9 @@ def vertexToSketch(points,sketch):
|
|||
# Append the Projection
|
||||
geoList.append(Part.Point(Projection1))
|
||||
return_points.append(Part.Point(Projection2))
|
||||
m_sketch.addGeometry(geoList)
|
||||
num_point = num_point + 1
|
||||
|
||||
m_sketch.addGeometry(geoList)
|
||||
return num_point, return_points
|
||||
|
||||
|
||||
|
@ -5320,6 +5416,7 @@ def line_toSketch():
|
|||
if m_num_line != (num_edge + num_point):
|
||||
printError_msg(error_msg)
|
||||
return
|
||||
if msg != 0:
|
||||
createFolders('WorkPoints')
|
||||
createFolders('WorkAxis')
|
||||
for point in return_points:
|
||||
|
@ -7588,6 +7685,7 @@ def plot_sectionSweep():
|
|||
- Transition Option (Select a Transition option in case of trajectory with several wires; Transition can be:
|
||||
# 0 (default), 1 (right corners) or 2 (rounded corners).)
|
||||
"""
|
||||
global verbose
|
||||
msg=verbose
|
||||
|
||||
# Variable makeSolid = 1 to create solid if section is closed, 0 to create surfaces
|
||||
|
@ -7600,11 +7698,11 @@ def plot_sectionSweep():
|
|||
# will be processed
|
||||
allSubProfile=sweep_all
|
||||
|
||||
# if msg != 0:
|
||||
# print_msg("makeSolid = " + str(makeSolid))
|
||||
# print_msg("isFrenet = " + str(isFrenet))
|
||||
# print_msg("transition = " + str(transition))
|
||||
# print_msg("allSubProfile = " + str(allSubProfile))
|
||||
if msg != 0:
|
||||
print_msg("makeSolid = " + str(makeSolid))
|
||||
print_msg("isFrenet = " + str(isFrenet))
|
||||
print_msg("transition = " + str(transition))
|
||||
print_msg("allSubProfile = " + str(allSubProfile))
|
||||
|
||||
createFolders('WorkAxis')
|
||||
createFolders('WorkPoints')
|
||||
|
@ -7650,12 +7748,29 @@ def plot_sectionSweep():
|
|||
# Get the list of sections in case of first section is a Compound
|
||||
m_sections = []
|
||||
if isinstance(shape0,Part.Compound):
|
||||
m_msg = "Compound Section Found !"
|
||||
if msg != 0:
|
||||
print_msg("Compound Section Found !")
|
||||
for wire in shape0.Wires:
|
||||
m_sections.append(Part.Wire([wire]))
|
||||
else:
|
||||
m_msg = "NO Compound Found !"
|
||||
m_sections.append(Part.Wire([shape0]))
|
||||
if msg != 0:
|
||||
print_msg("NO Compound Section Found !")
|
||||
print_msg(str(getShapeType(shape0)))
|
||||
try:
|
||||
if len(shape0.Wires):
|
||||
for wire in shape0.Wires:
|
||||
m_sections.append(Part.Wire([wire]))
|
||||
elif len(shape0.Edges):
|
||||
for edge in shape0.Edges:
|
||||
m_sections.append(Part.Wire([edge]))
|
||||
elif len(shape0.Vertexes):
|
||||
for vertex in shape0.Vertexes:
|
||||
m_sections.append(Part.Wire([vertex]))
|
||||
else:
|
||||
print_msg("Not able to transform " + str(shape0) + "in wire !")
|
||||
return
|
||||
except:
|
||||
pass
|
||||
|
||||
if msg != 0:
|
||||
print_msg("03-Get the list of sections in case of first section is a Compound")
|
||||
|
@ -7744,7 +7859,21 @@ def plot_sectionSweep():
|
|||
for wire in shape3.Wires:
|
||||
m_sections3.append(Part.Wire([wire]))
|
||||
else:
|
||||
m_sections3.append(Part.Wire([shape3]))
|
||||
try:
|
||||
if len(shape3.Wires):
|
||||
for wire in shape3.Wires:
|
||||
m_sections3.append(Part.Wire([wire]))
|
||||
elif len(shape0.Edges):
|
||||
for edge in shape3.Edges:
|
||||
m_sections3.append(Part.Wire([edge]))
|
||||
elif len(shape0.Vertexes):
|
||||
for vertex in shape3.Vertexes:
|
||||
m_sections3.append(Part.Wire([vertex]))
|
||||
else:
|
||||
print_msg("Not able to transform " + str(shape3) + "in wire !")
|
||||
return
|
||||
except:
|
||||
pass
|
||||
# if msg != 0:
|
||||
# print_msg("m_sections3 = " + str(m_sections3))
|
||||
|
||||
|
@ -8979,6 +9108,16 @@ def object_perpendicular():
|
|||
def object_coplanar():
|
||||
two_objects_are("coplanar")
|
||||
|
||||
|
||||
def object_highlightCommon():
|
||||
"""
|
||||
Compute the common parts between selected shapes:
|
||||
Quick measurements between parallel faces and similarly placed objects
|
||||
|
||||
Original code from : 'JMG, galou and other contributors' 10/2015
|
||||
Adapted to WF by : Rentlau_64 10/2015
|
||||
"""
|
||||
|
||||
def object_clearance():
|
||||
"""
|
||||
Check for two Objects Clearance distance:
|
||||
|
@ -9026,6 +9165,7 @@ def object_angle():
|
|||
NB:
|
||||
Normals of Planes will be used.
|
||||
"""
|
||||
global verbose
|
||||
msg=verbose
|
||||
|
||||
error_msg =\
|
||||
|
@ -9264,6 +9404,242 @@ def camera_orientation():
|
|||
print_gui_msg(msg)
|
||||
|
||||
|
||||
def object_common():
|
||||
"""Compute the common parts between selected shapes.
|
||||
- Select at least two objects.
|
||||
|
||||
Original code from HighlightCommon.FCMacro
|
||||
https://github.com/FreeCAD/FreeCAD-macros/blob/master/Utility/HighlightCommon.FCMacro
|
||||
Authors = 2015 Javier Martinez Garcia
|
||||
"""
|
||||
global verbose
|
||||
msg=verbose
|
||||
|
||||
m_actDoc = get_ActiveDocument(info=msg)
|
||||
if m_actDoc == None:
|
||||
return None
|
||||
|
||||
createFolders('WorkObjects')
|
||||
error_msg =\
|
||||
"INCORRECT Object(s) Selection :\n" +\
|
||||
"You Must Select at least Two(2) Objects !"
|
||||
result_msg = " : Common object created into WorkFeatures/WorkObjects/"
|
||||
name = "Part"
|
||||
part = "Part::Feature"
|
||||
grp = "WorkObjects"
|
||||
|
||||
try:
|
||||
selectionObjects = Gui.Selection.getSelection()
|
||||
if len(selectionObjects) < 2:
|
||||
printError_msg(error_msg)
|
||||
return
|
||||
object_list = []
|
||||
for obj in selectionObjects:
|
||||
object_list.append(obj)
|
||||
for i, object_a in enumerate(object_list):
|
||||
shape_a = object_a.Shape
|
||||
label_a = object_a.Label
|
||||
for object_b in object_list[(i + 1):]:
|
||||
shape_b = object_b.Shape
|
||||
label_b = object_b.Label
|
||||
common = shape_a.common(shape_b)
|
||||
if common.Volume > 1e-6:
|
||||
if not(App.ActiveDocument.getObject( grp )):
|
||||
App.ActiveDocument.addObject("App::DocumentObjectGroup", grp)
|
||||
intersection_object = FreeCAD.ActiveDocument.addObject(part)
|
||||
intersection_object.Label = "Common (" +\
|
||||
str(label_a.encode('utf-8')) +\
|
||||
"-" +\
|
||||
str(label_b.encode('utf-8')) +\
|
||||
")"
|
||||
intersection_object.Shape = common
|
||||
App.ActiveDocument.getObject( grp ).addObject(intersection_object)
|
||||
intersection_object.ViewObject.ShapeColor = (1.0, 0.0, 0.0, 1.0)
|
||||
object_a.ViewObject.Transparency = 80
|
||||
object_b.ViewObject.Transparency = 80
|
||||
|
||||
print_msg( str(intersection_object.Label.encode('utf-8')) + result_msg )
|
||||
print_msg("Volume of the intersection between " +\
|
||||
str(label_a.encode('utf-8')) +\
|
||||
" and " +\
|
||||
str(label_b.encode('utf-8')) +\
|
||||
" : " +\
|
||||
str(common.Volume) + "\n")
|
||||
else:
|
||||
print_gui_msg("No intersection between " +\
|
||||
str(label_a.encode('utf-8')) +\
|
||||
" and " +\
|
||||
str(label_b.encode('utf-8')))
|
||||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
|
||||
def object_difference():
|
||||
"""Compute the difference parts between selected shapes.
|
||||
- Select two objects.
|
||||
|
||||
Original code from HighlightDifference.FCMacro
|
||||
https://github.com/FreeCAD/FreeCAD-macros/blob/master/Utility/HighlightDifference.FCMacro
|
||||
Authors = 2015 Gaël Ecorchard (Galou)
|
||||
"""
|
||||
global verbose
|
||||
msg=verbose
|
||||
msg=1
|
||||
|
||||
m_actDoc = get_ActiveDocument(info=msg)
|
||||
if m_actDoc == None:
|
||||
return None
|
||||
|
||||
createFolders('WorkObjects')
|
||||
error_msg =\
|
||||
"INCORRECT Object(s) Selection :\n" +\
|
||||
"You Must Select Two(2) Objects !"
|
||||
result_msg = " : Difference object created into WorkFeatures/WorkObjects/"
|
||||
name = "Part"
|
||||
part = "Part::Feature"
|
||||
grp = "WorkObjects"
|
||||
|
||||
try:
|
||||
selectionObjects = Gui.Selection.getSelection()
|
||||
|
||||
if len(selectionObjects) < 2:
|
||||
printError_msg(error_msg)
|
||||
return
|
||||
object_list = []
|
||||
for obj in selectionObjects:
|
||||
object_list.append(obj)
|
||||
for i, object_a in enumerate(object_list):
|
||||
shape_a = object_a.Shape
|
||||
label_a = object_a.Label
|
||||
for object_b in object_list[(i + 1):]:
|
||||
shape_b = object_b.Shape
|
||||
label_b = object_b.Label
|
||||
shape_addition = shape_a.cut(shape_b)
|
||||
if shape_addition.Volume < 1e-6:
|
||||
print_gui_msg("No Cut of " +\
|
||||
str(label_a.encode('utf-8')) +\
|
||||
" by " +\
|
||||
str(label_b.encode('utf-8')))
|
||||
else:
|
||||
print_msg("Volume of the red " +\
|
||||
str(label_a.encode('utf-8')) +\
|
||||
" Cut by " +\
|
||||
str(label_b.encode('utf-8')) +\
|
||||
" : " +\
|
||||
str(shape_addition.Volume) + "\n")
|
||||
if not(App.ActiveDocument.getObject( grp )):
|
||||
App.ActiveDocument.addObject("App::DocumentObjectGroup", grp)
|
||||
|
||||
added = FreeCAD.ActiveDocument.addObject(part)
|
||||
added.Label = "Cut red (" +\
|
||||
str(label_a.encode('utf-8')) +\
|
||||
"-" +\
|
||||
str(label_b.encode('utf-8')) +\
|
||||
")"
|
||||
added.Shape = shape_addition
|
||||
App.ActiveDocument.getObject( grp ).addObject(added)
|
||||
added.ViewObject.ShapeColor = (1.0, 0.0, 0.0, 1.0)
|
||||
|
||||
shape_removal = shape_b.cut(shape_a)
|
||||
if shape_removal.Volume < 1e-6:
|
||||
print_gui_msg("No Cut of " +\
|
||||
str(label_b.encode('utf-8')) +\
|
||||
" by " +\
|
||||
str(label_a.encode('utf-8')))
|
||||
else:
|
||||
print_msg("Volume of the green " +\
|
||||
str(label_b.encode('utf-8')) +\
|
||||
" Cut by " +\
|
||||
str(label_a.encode('utf-8')) +\
|
||||
" : " +\
|
||||
str(shape_removal.Volume) + "\n")
|
||||
|
||||
if not(App.ActiveDocument.getObject( grp )):
|
||||
App.ActiveDocument.addObject("App::DocumentObjectGroup", grp)
|
||||
|
||||
removed = FreeCAD.ActiveDocument.addObject(part)
|
||||
removed.Label = "Cut green (" +\
|
||||
str(label_b.encode('utf-8')) +\
|
||||
"-" +\
|
||||
str(label_a.encode('utf-8')) +\
|
||||
")"
|
||||
removed.Shape = shape_removal
|
||||
App.ActiveDocument.getObject( grp ).addObject(removed)
|
||||
removed.ViewObject.ShapeColor = (0.0, 0.5, 0.0, 1.0)
|
||||
|
||||
object_a.ViewObject.Transparency = 80
|
||||
object_b.ViewObject.Transparency = 80
|
||||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
|
||||
# object_a = FreeCAD.Gui.Selection.getSelectionEx()[0].Object
|
||||
# object_b = FreeCAD.Gui.Selection.getSelectionEx()[1].Object
|
||||
# shape_a = object_a.Shape
|
||||
# shape_b = object_b.Shape
|
||||
# label_a = object_a.Label
|
||||
# label_b = object_b.Label
|
||||
# shape_addition = shape_a.cut(shape_b)
|
||||
# if shape_addition.Volume < 1e-6:
|
||||
# FreeCAD.Console.PrintMessage('No addition from {} to {}\n'.format(
|
||||
# label_a, label_b))
|
||||
# else:
|
||||
# FreeCAD.Console.PrintMessage(
|
||||
# 'Volume of the addition from {} to {}: {}\n'.format(
|
||||
# label_a, label_b, shape_addition.Volume))
|
||||
#
|
||||
# shape_removal = shape_b.cut(shape_a)
|
||||
# if shape_removal.Volume < 1e-6:
|
||||
# FreeCAD.Console.PrintMessage('No removal from {} to {}\n'.format(
|
||||
# label_a, label_b))
|
||||
# else:
|
||||
# FreeCAD.Console.PrintMessage(
|
||||
# 'Volume of the removal from {} to {}: {}\n'.format(
|
||||
# label_a, label_b, shape_removal.Volume))
|
||||
#
|
||||
# if (shape_addition.Volume < 1e-6) and (shape_removal.Volume < 1e-6):
|
||||
# FreeCAD.Console.PrintMessage('{} and {} have the same shape\n'.format(
|
||||
# label_a, label_b))
|
||||
#
|
||||
# added = FreeCAD.ActiveDocument.addObject('Part::Feature')
|
||||
# added.Label = 'Addition ({} − {})'.format(label_a, label_b)
|
||||
# added.Shape = shape_addition
|
||||
# added.ViewObject.ShapeColor = (1.0, 0.0, 0.0, 1.0)
|
||||
# removed = FreeCAD.ActiveDocument.addObject('Part::Feature')
|
||||
# removed.Label = 'Removal ({} − {})'.format(label_b, label_a)
|
||||
# removed.Shape = shape_removal
|
||||
# removed.ViewObject.ShapeColor = (0.0, 0.5, 0.0, 1.0)
|
||||
#
|
||||
# object_a.ViewObject.Transparency = 80
|
||||
# object_b.ViewObject.Transparency = 80
|
||||
|
||||
def object_align2view_old():
|
||||
""" Align the object(s) selected to the actual view.
|
||||
- Click first to select a Face of an object.
|
||||
|
||||
The changed values are : Rotation Axis((X, Y, Z), Angle)
|
||||
Same Euler angles : Yaw, Pitch, Roll
|
||||
The Translation is not modifylace your object selected to the position ActiveView (camera)
|
||||
|
||||
Original Code from Mario52
|
||||
"""
|
||||
# revoir le point de rotation
|
||||
msg=verbose
|
||||
error_msg = "INCORRECT Object(s) Selection :\n\nYou Must at least one object !"
|
||||
|
||||
try:
|
||||
m_sel_list = Gui.Selection.getSelection()
|
||||
pl = App.Placement()
|
||||
pl.Rotation = FreeCADGui.ActiveDocument.ActiveView.getCameraOrientation()
|
||||
for m_sel in m_sel_list:
|
||||
m_Nameelement = m_sel.Name
|
||||
if msg!=0:
|
||||
print_msg("Object selected =" + str(m_Nameelement))
|
||||
pl.Base = m_sel.Placement.Base
|
||||
App.ActiveDocument.getObject(m_Nameelement).Placement=pl
|
||||
except:
|
||||
printError_msg(error_msg)
|
||||
|
||||
def object_align2view():
|
||||
"""
|
||||
Align the face of selected object(s) to the actual view Plane.
|
||||
|
@ -9763,10 +10139,14 @@ class WorkFeatureTab():
|
|||
self.m_tab.setCurrentIndex(3)
|
||||
|
||||
#----------------------------------------------------------------
|
||||
# Create a Rotation object
|
||||
self.rot = Rotation(self.ui)
|
||||
# Create a Translation object
|
||||
self.trans = Translation(self.ui)
|
||||
# Create a Rotation object and connect
|
||||
self.eventsRot = RotationEvents(self.ui)
|
||||
# Create a Translation object and connect
|
||||
self.eventsTrans = TranslationEvents(self.ui)
|
||||
# Create a Parametric 2D Curve object and connect
|
||||
self.events2D = ParametricCurve2DEvents(self.ui)
|
||||
# Create a Parametric 3D Curve object and connect
|
||||
self.events3D = ParametricCurve3DEvents(self.ui)
|
||||
|
||||
### Connect to functions
|
||||
self.connections_for_checkbox_toggled = {
|
||||
|
@ -9803,6 +10183,7 @@ class WorkFeatureTab():
|
|||
|
||||
"button_object_axis" : "plot_centerObjectAxes",
|
||||
"button_twopoints_axis" : "plot_2PointsAxis",
|
||||
"button_Npoints_axis" : "plot_NPoints_axis",
|
||||
"button_cylinder_axis" : "plot_cylinderAxis",
|
||||
"button_plane_axis" : "plot_planeAxis",
|
||||
"button_face_normal" : "plot_faceNormal",
|
||||
|
@ -9849,6 +10230,8 @@ class WorkFeatureTab():
|
|||
"button_dome_create" : "plot_centerDome",
|
||||
"button_letter" : "plot_letter",
|
||||
"button_revolve" : "plot_revolution",
|
||||
"button_common" : "object_common",
|
||||
"button_difference" : "object_difference",
|
||||
"button_sweep" : "plot_sectionSweep",
|
||||
|
||||
"button_alignview" : "view_align",
|
||||
|
@ -9984,117 +10367,6 @@ class WorkFeatureTab():
|
|||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL(_fromUtf8("currentIndexChanged(QString)")),globals()[str(m_val)])
|
||||
|
||||
#==============================================================================
|
||||
# Define Connections to Translation Object
|
||||
#==============================================================================
|
||||
self.connections_for_ObjTrans_button_pressed = {
|
||||
"ObjTrans_button_select" : "initialize",
|
||||
"ObjTrans_button_select_start" : "select_start",
|
||||
"ObjTrans_button_select_end" : "select_end",
|
||||
"ObjTrans_button_reset" : "reset",
|
||||
"ObjTrans_button_apply" : "application",
|
||||
}
|
||||
|
||||
self.connections_for_ObjTrans_combobox_changed = {
|
||||
"ObjTrans_comboBox_start" : "select_start_type",
|
||||
"ObjTrans_comboBox_end" : "select_end_type",
|
||||
}
|
||||
|
||||
self.connections_for_ObjTrans_checkbox_toggled = {
|
||||
"ObjTrans_duplicate" : "copyFlag",
|
||||
"ObjTrans_deepCopy" : "deepCopyFlag",
|
||||
}
|
||||
|
||||
self.connections_for_ObjTrans_spin_changed = {
|
||||
"ObjTrans_spin" : "numberCopies",
|
||||
}
|
||||
|
||||
self.connections_for_ObjTrans_return_pressed = {
|
||||
"ObjTrans_start_x" : "start_x_entered",
|
||||
"ObjTrans_start_y" : "start_y_entered",
|
||||
"ObjTrans_start_z" : "start_z_entered",
|
||||
"ObjTrans_end_x" : "end_x_entered",
|
||||
"ObjTrans_end_y" : "end_y_entered",
|
||||
"ObjTrans_end_z" : "end_z_entered",
|
||||
}
|
||||
#==============================================================================
|
||||
# Connect to Translation functions
|
||||
#==============================================================================
|
||||
for m_key, m_val in self.connections_for_ObjTrans_button_pressed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.trans, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("pressed()"),getattr(self.trans, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_ObjTrans_combobox_changed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.trans, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL(_fromUtf8("currentIndexChanged(QString)")),getattr(self.trans, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_ObjTrans_checkbox_toggled.items():
|
||||
#print_msg( "Connecting : " + str(m_key) + " and " + str(m_val) )
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.trans, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL(_fromUtf8("toggled(bool)")),getattr(self.trans, str(m_val)))
|
||||
|
||||
|
||||
for m_key, m_val in self.connections_for_ObjTrans_spin_changed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.trans, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("valueChanged(int)"),getattr(self.trans, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_ObjTrans_return_pressed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.trans, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("returnPressed()"),getattr(self.trans, str(m_val)))
|
||||
#==============================================================================
|
||||
# Define Connections to Rotation Object
|
||||
#==============================================================================
|
||||
self.connections_for_ObjRot_slider_changed = {
|
||||
"ObjRot_horizontalSlider" : "angle_value_changed",
|
||||
}
|
||||
|
||||
self.connections_for_ObjRot_button_pressed = {
|
||||
"ObjRot_button_select" : "initialize",
|
||||
"ObjRot_button_select_center" : "select_center",
|
||||
"ObjRot_button_select_axis" : "select_axis",
|
||||
"ObjRot_button_select_angle" : "select_angle",
|
||||
"ObjRot_button_reset" : "reset",
|
||||
"ObjRot_button_apply" : "application",
|
||||
}
|
||||
|
||||
self.connections_for_ObjRot_combobox_changed = {
|
||||
"ObjRot_comboBox_center" : "center_value",
|
||||
"ObjRot_comboBox_axis" : "axis_value",
|
||||
}
|
||||
|
||||
self.connections_for_ObjRot_return_pressed = {
|
||||
"ObjRot_lineEdit_angle" : "angle_value_entered",
|
||||
}
|
||||
|
||||
#==============================================================================
|
||||
# Connect to Rotation functions
|
||||
#==============================================================================
|
||||
for m_key, m_val in self.connections_for_ObjRot_button_pressed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.rot, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("pressed()"),getattr(self.rot, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_ObjRot_combobox_changed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.rot, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL(_fromUtf8("currentIndexChanged(QString)")),getattr(self.rot, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_ObjRot_slider_changed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.rot, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("valueChanged(int)"),getattr(self.rot, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_ObjRot_return_pressed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.rot, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("returnPressed()"),getattr(self.rot, str(m_val)))
|
||||
#==============================================================================
|
||||
|
||||
self.m_dialog.show()
|
||||
m_text=str(myRelease)
|
||||
self.ui.label_release.setText(QtGui.QApplication.translate("Form", m_text, None, QtGui.QApplication.UnicodeUTF8))
|
||||
|
|
193
WorkFeature/WF_ObjParCurve2DEditGui_2015.py
Normal file
|
@ -0,0 +1,193 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve2DEditGui_2015.ui'
|
||||
#
|
||||
# Created: Tue Oct 27 06:56:40 2015
|
||||
# by: PySide UI code generator 4.11.2
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PySide import QtCore, QtGui
|
||||
|
||||
try:
|
||||
_fromUtf8 = QtCore.QString.fromUtf8
|
||||
except AttributeError:
|
||||
def _fromUtf8(s):
|
||||
return s
|
||||
|
||||
try:
|
||||
_encoding = QtGui.QApplication.UnicodeUTF8
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig, _encoding)
|
||||
except AttributeError:
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig)
|
||||
|
||||
class Ui_Form(object):
|
||||
def setupUi(self, Form):
|
||||
Form.setObjectName(_fromUtf8("Form"))
|
||||
Form.resize(1039, 460)
|
||||
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
||||
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
||||
self.groupBox_2 = QtGui.QGroupBox(Form)
|
||||
self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
|
||||
self.gridLayout = QtGui.QGridLayout(self.groupBox_2)
|
||||
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
|
||||
self.horizontalLayout = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
|
||||
self.button_load = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_load.setObjectName(_fromUtf8("button_load"))
|
||||
self.horizontalLayout.addWidget(self.button_load)
|
||||
self.button_save = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_save.setObjectName(_fromUtf8("button_save"))
|
||||
self.horizontalLayout.addWidget(self.button_save)
|
||||
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem)
|
||||
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox_2, 0, 0, 1, 1)
|
||||
self.tableWidget = QtGui.QTableWidget(Form)
|
||||
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
||||
self.tableWidget.setColumnCount(10)
|
||||
self.tableWidget.setRowCount(2)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 8, item)
|
||||
self.gridLayout_3.addWidget(self.tableWidget, 1, 0, 1, 1)
|
||||
self.groupBox = QtGui.QGroupBox(Form)
|
||||
self.groupBox.setObjectName(_fromUtf8("groupBox"))
|
||||
self.gridLayout_2 = QtGui.QGridLayout(self.groupBox)
|
||||
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
|
||||
self.horizontalLayout_2 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
|
||||
self.button_addRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_addRow.setObjectName(_fromUtf8("button_addRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_addRow)
|
||||
self.button_removeRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_removeRow.setObjectName(_fromUtf8("button_removeRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_removeRow)
|
||||
spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_2.addItem(spacerItem1)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_2, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox, 2, 0, 1, 1)
|
||||
self.horizontalLayout_4 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
|
||||
self.comboBox_select = QtGui.QComboBox(Form)
|
||||
self.comboBox_select.setEnabled(False)
|
||||
self.comboBox_select.setMaximumSize(QtCore.QSize(0, 0))
|
||||
self.comboBox_select.setFrame(True)
|
||||
self.comboBox_select.setModelColumn(1)
|
||||
self.comboBox_select.setObjectName(_fromUtf8("comboBox_select"))
|
||||
self.horizontalLayout_4.addWidget(self.comboBox_select)
|
||||
spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem2)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_4, 3, 0, 1, 1)
|
||||
self.horizontalLayout_3 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
|
||||
self.button_quit = QtGui.QPushButton(Form)
|
||||
self.button_quit.setObjectName(_fromUtf8("button_quit"))
|
||||
self.horizontalLayout_3.addWidget(self.button_quit)
|
||||
spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_3.addItem(spacerItem3)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_3, 4, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(Form)
|
||||
QtCore.QMetaObject.connectSlotsByName(Form)
|
||||
|
||||
def retranslateUi(self, Form):
|
||||
Form.setWindowTitle(_translate("Form", "Form", None))
|
||||
self.groupBox_2.setTitle(_translate("Form", "2D Database", None))
|
||||
self.button_load.setToolTip(_translate("Form", "Click to load common and customs curves.", None))
|
||||
self.button_load.setText(_translate("Form", "Load", None))
|
||||
self.button_save.setToolTip(_translate("Form", "This will save customs curves only in your HOME directory under \"Parametric2D.dat\".", None))
|
||||
self.button_save.setText(_translate("Form", "Save", None))
|
||||
item = self.tableWidget.verticalHeaderItem(0)
|
||||
item.setText(_translate("Form", "1", None))
|
||||
item = self.tableWidget.verticalHeaderItem(1)
|
||||
item.setText(_translate("Form", "2", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(0)
|
||||
item.setText(_translate("Form", "Name", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(1)
|
||||
item.setText(_translate("Form", "a (t) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(2)
|
||||
item.setText(_translate("Form", "b (a, t) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(3)
|
||||
item.setText(_translate("Form", "X (a,b,c,t)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(4)
|
||||
item.setText(_translate("Form", "Y (a,b,c,t)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(5)
|
||||
item.setText(_translate("Form", "t min", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(6)
|
||||
item.setText(_translate("Form", "t max", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(7)
|
||||
item.setText(_translate("Form", "t step", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(8)
|
||||
item.setText(_translate("Form", "Polar", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(9)
|
||||
item.setText(_translate("Form", "Comments", None))
|
||||
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
||||
self.tableWidget.setSortingEnabled(False)
|
||||
item = self.tableWidget.item(0, 0)
|
||||
item.setText(_translate("Form", "Circle", None))
|
||||
item = self.tableWidget.item(0, 1)
|
||||
item.setText(_translate("Form", "10 # Radius", None))
|
||||
item = self.tableWidget.item(0, 2)
|
||||
item.setText(_translate("Form", "a", None))
|
||||
item = self.tableWidget.item(0, 3)
|
||||
item.setText(_translate("Form", "a*cos(t)", None))
|
||||
item = self.tableWidget.item(0, 4)
|
||||
item.setText(_translate("Form", "a*sin(t)", None))
|
||||
item = self.tableWidget.item(0, 5)
|
||||
item.setText(_translate("Form", "0", None))
|
||||
item = self.tableWidget.item(0, 6)
|
||||
item.setText(_translate("Form", "2*pi", None))
|
||||
item = self.tableWidget.item(0, 7)
|
||||
item.setText(_translate("Form", "0.01", None))
|
||||
item = self.tableWidget.item(0, 8)
|
||||
item.setText(_translate("Form", "0", None))
|
||||
self.tableWidget.setSortingEnabled(__sortingEnabled)
|
||||
self.groupBox.setTitle(_translate("Form", "Row", None))
|
||||
self.button_addRow.setToolTip(_translate("Form", "Add a row into the table.", None))
|
||||
self.button_addRow.setText(_translate("Form", "add", None))
|
||||
self.button_removeRow.setToolTip(_translate("Form", "Remove a row from the table.", None))
|
||||
self.button_removeRow.setText(_translate("Form", "remove", None))
|
||||
self.button_quit.setText(_translate("Form", "Quit", None))
|
||||
|
244
WorkFeature/WF_ObjParCurve3DEditGui_2015.py
Normal file
|
@ -0,0 +1,244 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'WF_ObjParCurve3DEditGui_2015.ui'
|
||||
#
|
||||
# Created: Tue Oct 27 06:56:50 2015
|
||||
# by: PySide UI code generator 4.11.2
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PySide import QtCore, QtGui
|
||||
|
||||
try:
|
||||
_fromUtf8 = QtCore.QString.fromUtf8
|
||||
except AttributeError:
|
||||
def _fromUtf8(s):
|
||||
return s
|
||||
|
||||
try:
|
||||
_encoding = QtGui.QApplication.UnicodeUTF8
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig, _encoding)
|
||||
except AttributeError:
|
||||
def _translate(context, text, disambig):
|
||||
return QtGui.QApplication.translate(context, text, disambig)
|
||||
|
||||
class Ui_Form(object):
|
||||
def setupUi(self, Form):
|
||||
Form.setObjectName(_fromUtf8("Form"))
|
||||
Form.resize(1039, 460)
|
||||
self.gridLayout_3 = QtGui.QGridLayout(Form)
|
||||
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
|
||||
self.groupBox_2 = QtGui.QGroupBox(Form)
|
||||
self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
|
||||
self.gridLayout = QtGui.QGridLayout(self.groupBox_2)
|
||||
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
|
||||
self.horizontalLayout = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
|
||||
self.button_load = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_load.setObjectName(_fromUtf8("button_load"))
|
||||
self.horizontalLayout.addWidget(self.button_load)
|
||||
self.button_save = QtGui.QPushButton(self.groupBox_2)
|
||||
self.button_save.setObjectName(_fromUtf8("button_save"))
|
||||
self.horizontalLayout.addWidget(self.button_save)
|
||||
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem)
|
||||
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox_2, 0, 0, 1, 1)
|
||||
self.tableWidget = QtGui.QTableWidget(Form)
|
||||
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
|
||||
self.tableWidget.setColumnCount(11)
|
||||
self.tableWidget.setRowCount(3)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setVerticalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setHorizontalHeaderItem(10, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(0, 9, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 0, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 1, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 2, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 3, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 4, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 5, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 6, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 7, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 8, item)
|
||||
item = QtGui.QTableWidgetItem()
|
||||
self.tableWidget.setItem(1, 9, item)
|
||||
self.gridLayout_3.addWidget(self.tableWidget, 1, 0, 1, 1)
|
||||
self.groupBox = QtGui.QGroupBox(Form)
|
||||
self.groupBox.setObjectName(_fromUtf8("groupBox"))
|
||||
self.gridLayout_2 = QtGui.QGridLayout(self.groupBox)
|
||||
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
|
||||
self.horizontalLayout_2 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
|
||||
self.button_addRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_addRow.setObjectName(_fromUtf8("button_addRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_addRow)
|
||||
self.button_removeRow = QtGui.QPushButton(self.groupBox)
|
||||
self.button_removeRow.setObjectName(_fromUtf8("button_removeRow"))
|
||||
self.horizontalLayout_2.addWidget(self.button_removeRow)
|
||||
spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_2.addItem(spacerItem1)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_2, 0, 0, 1, 1)
|
||||
self.gridLayout_3.addWidget(self.groupBox, 2, 0, 1, 1)
|
||||
self.horizontalLayout_4 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
|
||||
self.comboBox_select = QtGui.QComboBox(Form)
|
||||
self.comboBox_select.setEnabled(False)
|
||||
self.comboBox_select.setMaximumSize(QtCore.QSize(0, 0))
|
||||
self.comboBox_select.setModelColumn(1)
|
||||
self.comboBox_select.setObjectName(_fromUtf8("comboBox_select"))
|
||||
self.horizontalLayout_4.addWidget(self.comboBox_select)
|
||||
spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem2)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_4, 3, 0, 1, 1)
|
||||
self.horizontalLayout_3 = QtGui.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
|
||||
self.button_quit = QtGui.QPushButton(Form)
|
||||
self.button_quit.setObjectName(_fromUtf8("button_quit"))
|
||||
self.horizontalLayout_3.addWidget(self.button_quit)
|
||||
spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_3.addItem(spacerItem3)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_3, 4, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(Form)
|
||||
QtCore.QMetaObject.connectSlotsByName(Form)
|
||||
|
||||
def retranslateUi(self, Form):
|
||||
Form.setWindowTitle(_translate("Form", "Form", None))
|
||||
self.groupBox_2.setTitle(_translate("Form", "3D Database", None))
|
||||
self.button_load.setToolTip(_translate("Form", "Click to load common and customs curves.", None))
|
||||
self.button_load.setText(_translate("Form", "Load", None))
|
||||
self.button_save.setToolTip(_translate("Form", "This will save customs curves only in your HOME directory under \"Parametric3D.dat\".", None))
|
||||
self.button_save.setText(_translate("Form", "Save", None))
|
||||
item = self.tableWidget.verticalHeaderItem(0)
|
||||
item.setText(_translate("Form", "1", None))
|
||||
item = self.tableWidget.verticalHeaderItem(1)
|
||||
item.setText(_translate("Form", "2", None))
|
||||
item = self.tableWidget.verticalHeaderItem(2)
|
||||
item.setText(_translate("Form", "3", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(0)
|
||||
item.setText(_translate("Form", "Name", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(1)
|
||||
item.setText(_translate("Form", "a (t) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(2)
|
||||
item.setText(_translate("Form", "b (a, t) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(3)
|
||||
item.setText(_translate("Form", "c (a, b, t) ", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(4)
|
||||
item.setText(_translate("Form", "X (a,b,c,t)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(5)
|
||||
item.setText(_translate("Form", "Y (a,b,c,t)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(6)
|
||||
item.setText(_translate("Form", "Z (a,b,c,t)", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(7)
|
||||
item.setText(_translate("Form", "t min", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(8)
|
||||
item.setText(_translate("Form", "t max", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(9)
|
||||
item.setText(_translate("Form", "t step", None))
|
||||
item = self.tableWidget.horizontalHeaderItem(10)
|
||||
item.setText(_translate("Form", "Comments", None))
|
||||
__sortingEnabled = self.tableWidget.isSortingEnabled()
|
||||
self.tableWidget.setSortingEnabled(False)
|
||||
item = self.tableWidget.item(0, 0)
|
||||
item.setText(_translate("Form", "Cylindrical helix", None))
|
||||
item = self.tableWidget.item(0, 1)
|
||||
item.setText(_translate("Form", "10*0.05 #Vert. step", None))
|
||||
item = self.tableWidget.item(0, 2)
|
||||
item.setText(_translate("Form", "1", None))
|
||||
item = self.tableWidget.item(0, 3)
|
||||
item.setText(_translate("Form", "10 # Radius", None))
|
||||
item = self.tableWidget.item(0, 4)
|
||||
item.setText(_translate("Form", "c*sin(t)", None))
|
||||
item = self.tableWidget.item(0, 5)
|
||||
item.setText(_translate("Form", "c*cos(t)", None))
|
||||
item = self.tableWidget.item(0, 6)
|
||||
item.setText(_translate("Form", "a*t", None))
|
||||
item = self.tableWidget.item(0, 7)
|
||||
item.setText(_translate("Form", "0", None))
|
||||
item = self.tableWidget.item(0, 8)
|
||||
item.setText(_translate("Form", "5*2*pi #5 circles", None))
|
||||
item = self.tableWidget.item(0, 9)
|
||||
item.setText(_translate("Form", "0.01", None))
|
||||
item = self.tableWidget.item(1, 0)
|
||||
item.setText(_translate("Form", "Circle with Teeth", None))
|
||||
item = self.tableWidget.item(1, 1)
|
||||
item.setText(_translate("Form", "37", None))
|
||||
item = self.tableWidget.item(1, 2)
|
||||
item.setText(_translate("Form", "1", None))
|
||||
item = self.tableWidget.item(1, 3)
|
||||
item.setText(_translate("Form", "(a+cos(a*t)*2)*b", None))
|
||||
item = self.tableWidget.item(1, 4)
|
||||
item.setText(_translate("Form", "c*cos(t)", None))
|
||||
item = self.tableWidget.item(1, 5)
|
||||
item.setText(_translate("Form", "c*sin(t)", None))
|
||||
item = self.tableWidget.item(1, 6)
|
||||
item.setText(_translate("Form", "0", None))
|
||||
item = self.tableWidget.item(1, 7)
|
||||
item.setText(_translate("Form", "0", None))
|
||||
item = self.tableWidget.item(1, 8)
|
||||
item.setText(_translate("Form", "2*pi", None))
|
||||
item = self.tableWidget.item(1, 9)
|
||||
item.setText(_translate("Form", "0.01", None))
|
||||
self.tableWidget.setSortingEnabled(__sortingEnabled)
|
||||
self.groupBox.setTitle(_translate("Form", "Row", None))
|
||||
self.button_addRow.setToolTip(_translate("Form", "Add a row into the table.", None))
|
||||
self.button_addRow.setText(_translate("Form", "add", None))
|
||||
self.button_removeRow.setToolTip(_translate("Form", "Remove a row from the table.", None))
|
||||
self.button_removeRow.setText(_translate("Form", "remove", None))
|
||||
self.button_quit.setText(_translate("Form", "Quit", None))
|
||||
|
388
WorkFeature/WF_ObjParCurveEdit_2015.py
Normal file
|
@ -0,0 +1,388 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Created on Sat May 30 18:53:08 2015
|
||||
|
||||
@author: laurent
|
||||
"""
|
||||
import sys
|
||||
import os.path
|
||||
sys.path.append(os.path.dirname(__file__))
|
||||
#from ParCurve2DEditGui_2015 import Ui_Form
|
||||
import WorkFeature.WF_ObjParCurve2DEditGui_2015 as EDIT_2D
|
||||
import WorkFeature.WF_ObjParCurve3DEditGui_2015 as EDIT_3D
|
||||
from WorkFeature.WF_Utils_2015 import read_text_into_list, write_text, append_text
|
||||
|
||||
from PySide import QtCore, QtGui
|
||||
import FreeCAD as App
|
||||
|
||||
global myDatabase2DName
|
||||
myDatabase2DName = "Parametric2D.dat"
|
||||
global myDatabase3DName
|
||||
myDatabase3DName = "Parametric3D.dat"
|
||||
|
||||
####################################################################################
|
||||
try:
|
||||
_fromUtf8 = QtCore.QString.fromUtf8
|
||||
except AttributeError:
|
||||
_fromUtf8 = lambda s: s
|
||||
|
||||
|
||||
index = ['Name', 'a' , 'b' , 'c' , 'X' , 'Y', 'Z', 'tmin', 'tmax', 'tstep']
|
||||
d1 = ["default",37, 1, '(a+cos(a*t)*2)*b', 'cos(t)*c', 'sin(t)*c', 0, 0., '2*pi', 0.01]
|
||||
d2 = ["spiral", 5, 0, 10, 'c*sin(t)', 'c*cos(t)', 'a*0.05*t', .0, '20*pi', '0.05*pi']
|
||||
d3 = ["Seam of a tennis ball", '5', '5', '2*(sqrt(a*b))', 'a*(cos(t))+b*(cos(3*t))',
|
||||
'a*(sin(t))-b*(sin(3*t))', 'c*(sin(2*t))', 0., '2*pi', '0.05*pi']
|
||||
|
||||
|
||||
class Model(QtCore.QAbstractTableModel):
|
||||
def __init__(self,tableWidget):
|
||||
super(Model, self).__init__()
|
||||
self.table = []
|
||||
#print "Initialize table " + str(self.table)
|
||||
for i_row in range(tableWidget.rowCount()):
|
||||
m_line = []
|
||||
for i_column in range(tableWidget.columnCount()):
|
||||
#print str(i_column)
|
||||
m_item = tableWidget.item(i_row, i_column)
|
||||
if m_item is None:
|
||||
break
|
||||
else:
|
||||
#print str(tableWidget.item(i_row, i_column).text())
|
||||
m_line.append(str(tableWidget.item(i_row, i_column).text()))
|
||||
|
||||
if len(m_line) != 0:
|
||||
self.table.append(m_line)
|
||||
#print str(self.table)
|
||||
self.columnNumber = 0
|
||||
self.rowNumber = 0
|
||||
self.rowNumber = len(self.table)
|
||||
if self.rowNumber != 0:
|
||||
self.columnNumber = len(self.table[0])
|
||||
|
||||
|
||||
#print "self.rowNumber=" + str(self.rowNumber)
|
||||
#print "self.columnNumber=" + str(self.columnNumber)
|
||||
|
||||
def rowCount(self, index=QtCore.QModelIndex()):
|
||||
return self.rowNumber
|
||||
def columnCount(self, index=QtCore.QModelIndex()):
|
||||
return self.columnNumber
|
||||
def flags(self, index):
|
||||
return QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable
|
||||
|
||||
def data(self, index, role):
|
||||
if role == QtCore.Qt.DisplayRole:
|
||||
return self.table[index.row()][index.column()]
|
||||
def setData(self, index, role, value):
|
||||
if role == QtCore.Qt.DisplayRole:
|
||||
self.table[index.row()][index.column()] = value
|
||||
|
||||
|
||||
class tableWidget():
|
||||
def __init__(self, database):
|
||||
"""
|
||||
parameter database : the name of database file without path.
|
||||
"""
|
||||
# Flag for common database
|
||||
self.database_exists = False
|
||||
self.database_name = None
|
||||
self.curves_number = 0
|
||||
self.curves_loaded = False
|
||||
# Flag for user database
|
||||
self.database_user_exists = False
|
||||
self.database_user_name = None
|
||||
self.curves_user_number = 0
|
||||
self.curves_user_loaded = False
|
||||
if database :
|
||||
# Check if database file exists in current script directory
|
||||
m_current = os.path.dirname(__file__)
|
||||
m_dirs_to_look = [str(m_current), str(m_current) + "/Ressources",]
|
||||
for m_dir in m_dirs_to_look:
|
||||
self.database_path = m_dir + "/"
|
||||
#print self.database_path
|
||||
self.database_name = str(self.database_path) + str(database)
|
||||
if os.path.exists(self.database_name):
|
||||
self.database_exists = True
|
||||
|
||||
# Check if database file exists in home directory
|
||||
m_home = os.path.expanduser("~")
|
||||
self.database_path = m_home + "/"
|
||||
self.database_user_name = str(self.database_path) + str(database)
|
||||
if os.path.exists(self.database_user_name):
|
||||
self.database_user_exists = True
|
||||
|
||||
self.header = None
|
||||
|
||||
# This Object ill be created with the setupUi
|
||||
#self.tableWidget = QtGui.QTableWidget(Form)
|
||||
self.tableWidget = None
|
||||
#===============================================================================
|
||||
# class tableWidget2D(EDIT_2D.Ui_Form, tableWidget):
|
||||
# def __init__(self, database="Parametric2D.dat"):
|
||||
# EDIT_2D.Ui_Form.__init__(self)
|
||||
# tableWidget.__init__(self, database)
|
||||
# self.header = "Name, a (t), b (a,t), X (a,b,t), Y(a,b,t), Polar, tmin, tmax, tstep"
|
||||
#
|
||||
# def setupUi(self, Form, combox):
|
||||
# EDIT_2D.Ui_Form.setupUi(self,Form)
|
||||
# tableWidget.setupUi(self, Form, combox)
|
||||
#===============================================================================
|
||||
self.dialog = None
|
||||
self.comboBox = None
|
||||
self.connections_for_button_pressed = None
|
||||
self.connections_for_combobox_changed = None
|
||||
self.model = None
|
||||
|
||||
def setupUi(self, Form, combox):
|
||||
self.dialog = Form
|
||||
self.comboBox = combox
|
||||
self.updateModel()
|
||||
|
||||
# Connect to functions
|
||||
self.connections_for_button_pressed = {
|
||||
"button_addRow" : "insertRowAfter",
|
||||
"button_removeRow" : "removeSelectedRow",
|
||||
"button_load" : "loadDatabase",
|
||||
"button_save" : "saveDatabase",
|
||||
"button_quit" : "widgetQuit",
|
||||
}
|
||||
self.connections_for_combobox_changed = {
|
||||
"comboBox_select" : "selectCurve",
|
||||
}
|
||||
|
||||
for m_key, m_val in self.connections_for_button_pressed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self, str(m_key))) + " and " + str(getattr(self, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self, str(m_key)),
|
||||
QtCore.SIGNAL("pressed()"),getattr(self, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_combobox_changed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self, str(m_key))) + " and " + str(getattr(self, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self, str(m_key)),
|
||||
QtCore.SIGNAL("currentIndexChanged(QString)"),getattr(self, str(m_val)))
|
||||
self.curves_number = 0
|
||||
self.curves_user_number = 0
|
||||
if self.database_exists:
|
||||
self.curves_number = self.loadDatabase(self.database_name)
|
||||
print "Loaded from common database : " + str(self.curves_number) + " curves !"
|
||||
if self.curves_number != 0:
|
||||
self.curves_loaded = True
|
||||
|
||||
if self.database_user_exists:
|
||||
self.curves_user_number = self.loadDatabase(self.database_user_name)
|
||||
print "Loaded from user database : " + str(self.curves_user_number) + " curves !"
|
||||
if self.curves_user_number != 0:
|
||||
self.curves_user_loaded = True
|
||||
|
||||
|
||||
def updateModel(self):
|
||||
self.model = Model(self.tableWidget)
|
||||
self.comboBox.setModel(self.model)
|
||||
self.comboBox.setModelColumn(0)
|
||||
|
||||
|
||||
def insertRow(self,row):
|
||||
self.tableWidget.insertRow(row)
|
||||
|
||||
|
||||
def insertRowAfter(self):
|
||||
self.insertRow(self.tableWidget.rowCount())
|
||||
|
||||
|
||||
def setRowCount(self,row):
|
||||
self.tableWidget.setRowCount(row)
|
||||
|
||||
|
||||
def removeSelectedRow(self):
|
||||
m_index = self.tableWidget.currentRow()
|
||||
self.removeRow(m_index)
|
||||
|
||||
|
||||
def removeRow(self,row):
|
||||
self.tableWidget.removeRow(row)
|
||||
self.updateModel()
|
||||
|
||||
|
||||
def removeLastRow(self):
|
||||
self.removeRow(self.tableWidget.rowCount()-1)
|
||||
|
||||
|
||||
def insertDataAfter(self, data, rowCount):
|
||||
if isinstance(data,list) !=True:
|
||||
print "Type of input data must be a 'list'"
|
||||
return
|
||||
m_rowNumber = len(data)
|
||||
m_columnNumber = len(data[0])
|
||||
m_widget = self.tableWidget
|
||||
for i in range(m_rowNumber):
|
||||
self.insertRowAfter()
|
||||
for j in range(m_columnNumber):
|
||||
item = QtGui.QTableWidgetItem(str(data[i][j]))
|
||||
m_widget.setItem(rowCount + i, j, item)
|
||||
self.updateModel()
|
||||
|
||||
|
||||
def insertData(self, data):
|
||||
if isinstance(data,list) !=True:
|
||||
print "Type of input data must be a 'list'"
|
||||
return
|
||||
#print str(data)
|
||||
m_rowNumber = len(data)
|
||||
m_columnNumber = len(data[0])
|
||||
m_widget = self.tableWidget
|
||||
m_widget.setRowCount(m_rowNumber)
|
||||
#m_widget.setColumnCount(columns)
|
||||
#m_widget.setHorizontalHeaderLabels(['name', 'num','x','y','z'])
|
||||
for i in range(m_rowNumber):
|
||||
for j in range(m_columnNumber):
|
||||
item = QtGui.QTableWidgetItem(str(data[i][j]))
|
||||
m_widget.setItem(i, j, item)
|
||||
self.updateModel()
|
||||
|
||||
|
||||
def addCurveData(self,data):
|
||||
m_curveList = self.selectAllCurves()
|
||||
m_curveList.append(data)
|
||||
self.insertData(m_curveList)
|
||||
|
||||
|
||||
def loadDatabase(self, my_database_name):
|
||||
try:
|
||||
m_lines = read_text_into_list(my_database_name)
|
||||
del m_lines[0]
|
||||
m_data = []
|
||||
for m_line in m_lines:
|
||||
d = eval(m_line)
|
||||
#print str(d)
|
||||
m_data.append(d)
|
||||
|
||||
#print str(self.curves_number + self.curves_user_number)
|
||||
if (self.curves_number + self.curves_user_number) == 0:
|
||||
self.insertData(m_data)
|
||||
else:
|
||||
self.insertDataAfter(m_data,(self.curves_number + self.curves_user_number))
|
||||
|
||||
return len(m_data)
|
||||
except:
|
||||
message = "Unable to load the database file :" + str(my_database_name)
|
||||
print message
|
||||
App.Console.PrintError("\nERROR : " + message)
|
||||
|
||||
|
||||
def saveDatabase(self, my_database_name = None):
|
||||
if my_database_name in [None]:
|
||||
my_database_name = self.database_user_name
|
||||
|
||||
if (self.curves_number) != 0:
|
||||
m_curves = self.selectAllCurvesFrom(self.curves_number)
|
||||
else:
|
||||
m_curves = self.selectAllCurves()
|
||||
|
||||
#print str(m_curves)
|
||||
write_text(filename=my_database_name, text=str(self.header))
|
||||
append_text(filename=my_database_name, text="")
|
||||
for m_curve in m_curves:
|
||||
append_text(filename=my_database_name, text=str(m_curve))
|
||||
|
||||
|
||||
def selectCurve(self, *argc):
|
||||
#print str(*argc)
|
||||
m_curveRow = self.tableWidget.row(self.tableWidget.findItems(str(*argc), QtCore.Qt.MatchExactly)[0])
|
||||
print str(m_curveRow)
|
||||
m_line = []
|
||||
for i_column in range(self.tableWidget.columnCount()):
|
||||
#print str(i_column)
|
||||
m_item = self.tableWidget.item(m_curveRow, i_column)
|
||||
if m_item is None:
|
||||
break
|
||||
else:
|
||||
#print str(tableWidget.item(i_row, i_column).text())
|
||||
m_line.append(str(self.tableWidget.item(m_curveRow, i_column).text()))
|
||||
#print str(m_line)
|
||||
return m_line
|
||||
|
||||
def selectAllCurvesFrom(self,row):
|
||||
m_lineList = []
|
||||
m_total_rows = self.tableWidget.rowCount()
|
||||
m_total_cols = self.tableWidget.columnCount()
|
||||
for i_row in range(row, m_total_rows):
|
||||
m_line = []
|
||||
for i_column in range(m_total_cols):
|
||||
m_item = self.tableWidget.item(i_row, i_column)
|
||||
if m_item is None:
|
||||
break
|
||||
else:
|
||||
m_line.append(str(self.tableWidget.item(i_row, i_column).text()))
|
||||
m_lineList.append(m_line)
|
||||
#print str(m_lineList)
|
||||
return m_lineList
|
||||
|
||||
|
||||
def selectAllCurves(self):
|
||||
m_lineList = []
|
||||
m_total_rows = self.tableWidget.rowCount()
|
||||
m_total_cols = self.tableWidget.columnCount()
|
||||
for i_row in range(m_total_rows):
|
||||
m_line = []
|
||||
for i_column in range(m_total_cols):
|
||||
m_item = self.tableWidget.item(i_row, i_column)
|
||||
if m_item is None:
|
||||
break
|
||||
else:
|
||||
m_line.append(str(self.tableWidget.item(i_row, i_column).text()))
|
||||
m_lineList.append(m_line)
|
||||
#print str(m_lineList)
|
||||
return m_lineList
|
||||
|
||||
def widgetQuit(self):
|
||||
self.dialog.hide()
|
||||
|
||||
|
||||
class tableWidget2D(EDIT_2D.Ui_Form, tableWidget):
|
||||
def __init__(self, database="Parametric2D.dat"):
|
||||
EDIT_2D.Ui_Form.__init__(self)
|
||||
tableWidget.__init__(self, database)
|
||||
self.header = "Name, a (t), b (a,t), X (a,b,t), Y(a,b,t), Polar, tmin, tmax, tstep"
|
||||
|
||||
def setupUi(self, Form, combox):
|
||||
EDIT_2D.Ui_Form.setupUi(self,Form)
|
||||
tableWidget.setupUi(self, Form, combox)
|
||||
|
||||
|
||||
class tableWidget3D(EDIT_3D.Ui_Form, tableWidget):
|
||||
def __init__(self, database="Parametric3D.dat"):
|
||||
EDIT_3D.Ui_Form.__init__(self)
|
||||
tableWidget.__init__(self, database)
|
||||
self.header = "Name, a (t), b (a,t),c (a,b,t), X (a,b,c,t), Y (a,b,c,t), Z (a,b,c,t), tmin, tmax, tstep"
|
||||
|
||||
def setupUi(self, Form, combox):
|
||||
EDIT_3D.Ui_Form.setupUi(self,Form)
|
||||
tableWidget.setupUi(self, Form, combox)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QtGui.QApplication(sys.argv)
|
||||
#app = QtGui.qApp
|
||||
#app.exec_()
|
||||
myNewWidget = QtGui.QDockWidget()
|
||||
myNewWidget = QtGui.QWidget()
|
||||
#myNewWidget.ui = Ui_Form()
|
||||
myNewWidget.ui = tableWidget()
|
||||
myNewWidget.ui.setupUi(myNewWidget)
|
||||
#myNewWidget.ui.insertRow(1)
|
||||
#myNewWidget.ui.insertRow(3)
|
||||
#myNewWidget.ui.removeRow(3)
|
||||
myNewWidget.ui.insertRowAfter()
|
||||
myNewWidget.ui.insertRowAfter()
|
||||
myNewWidget.ui.insertRowAfter()
|
||||
myNewWidget.ui.removeLastRow()
|
||||
#myNewWidget.ui.setRowCount(20)
|
||||
mydata = []
|
||||
mydata.append(d1)
|
||||
mydata.append(d2)
|
||||
mydata.append(d3)
|
||||
myNewWidget.ui.insertData(mydata)
|
||||
myNewWidget.show()
|
||||
|
||||
#mw = app.activeWindow()
|
||||
#mw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewWidget)
|
||||
app.exec_()
|
545
WorkFeature/WF_ObjParCurve_2015.py
Normal file
|
@ -0,0 +1,545 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
"""
|
||||
from WorkFeature.WF_Utils_2015 import DefineAndConnectEvents
|
||||
import WorkFeature.WF_ObjParCurveEdit_2015 as ParCurveEdit
|
||||
|
||||
import FreeCAD
|
||||
import FreeCADGui
|
||||
import Draft
|
||||
import Part
|
||||
|
||||
from PySide import QtGui
|
||||
from math import *
|
||||
|
||||
####################################################################################
|
||||
# Classes
|
||||
class Parametric():
|
||||
def __init__(self, gui):
|
||||
""" A Parametric object
|
||||
"""
|
||||
self.debug = 1
|
||||
self.close = False
|
||||
self.face = False
|
||||
self.points = False
|
||||
self.poly = True
|
||||
self.bspline = False
|
||||
self.bezier = False
|
||||
self.meshes = False
|
||||
self.polar = False
|
||||
|
||||
self.dialog = None
|
||||
self.combox = None
|
||||
|
||||
self.gui = gui
|
||||
|
||||
|
||||
def updateOptions(self):
|
||||
pass
|
||||
|
||||
|
||||
def ccloseState(self, flag):
|
||||
if self.debug != 0:
|
||||
print self.ccloseState.__name__
|
||||
self.close = flag
|
||||
self.updateOptions()
|
||||
|
||||
|
||||
def cfaceState(self, flag):
|
||||
if self.debug != 0:
|
||||
print self.cfaceState.__name__
|
||||
self.face = flag
|
||||
self.updateOptions()
|
||||
|
||||
|
||||
def cpointsState(self, flag):
|
||||
if self.debug != 0:
|
||||
print self.cpointsState.__name__
|
||||
self.points = flag
|
||||
self.updateOptions()
|
||||
|
||||
|
||||
def cpolyState(self, flag):
|
||||
if self.debug != 0:
|
||||
print self.cpolyState.__name__
|
||||
self.poly = flag
|
||||
self.updateOptions()
|
||||
|
||||
|
||||
def cbsplineState(self, flag):
|
||||
if self.debug != 0:
|
||||
print self.cbsplineState.__name__
|
||||
self.bspline = flag
|
||||
self.updateOptions()
|
||||
|
||||
|
||||
def cbezierState(self, flag):
|
||||
if self.debug != 0:
|
||||
print self.cbezierState.__name__
|
||||
self.bezier = flag
|
||||
self.updateOptions()
|
||||
|
||||
|
||||
def cmeshesState (self, flag):
|
||||
if self.debug != 0:
|
||||
print self.cmeshesState.__name__
|
||||
self.meshes = flag
|
||||
self.updateOptions()
|
||||
|
||||
|
||||
def cpolarState(self, flag):
|
||||
if self.debug != 0:
|
||||
print self.ccloseState.__name__
|
||||
self.polar = flag
|
||||
self.updateOptions()
|
||||
|
||||
|
||||
def plot_matriz(self, matriz):
|
||||
""" Plot the dataset with different options.
|
||||
"""
|
||||
if self.debug != 0:
|
||||
print self.plot_matriz.__name__
|
||||
|
||||
if self.points == True:
|
||||
for point in matriz:
|
||||
Draft.makePoint(point)
|
||||
else:
|
||||
curva = Part.makePolygon(matriz)
|
||||
if self.bspline == True:
|
||||
Draft.makeBSpline(curva,closed=self.close,face=False)
|
||||
#Draft.makeBSpline(Draft.makeWire(curva,closed=self.close,face=False),closed=self.close,face=False)
|
||||
if self.bezier == True:
|
||||
Draft.makeBezCurve(curva,closed=self.close,face=False)
|
||||
if self.poly == True:
|
||||
Draft.makeWire(curva,closed=self.close,face=False)
|
||||
if self.close == True and self.face == True:
|
||||
Draft.upgrade(FreeCADGui.Selection.getSelection(),delete=True)
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
def edit(self):
|
||||
""" Launch the edit panel curve.
|
||||
"""
|
||||
if self.debug != 0:
|
||||
print self.edit.__name__
|
||||
|
||||
self.dialog.show()
|
||||
# self.dialog.exec_()
|
||||
|
||||
class ParametricCurve2D(Parametric):
|
||||
""" A ParametricCurve2D object
|
||||
"""
|
||||
def __init__(self, gui):
|
||||
Parametric.__init__(self, gui)
|
||||
|
||||
self.name = self.gui.ParCurve_name_2
|
||||
self.la = self.gui.ParCurve_a_2
|
||||
self.lb = self.gui.ParCurve_b_2
|
||||
self.lx = self.gui.ParCurve_x_2
|
||||
self.ly = self.gui.ParCurve_y_2
|
||||
self.ltmin = self.gui.ParCurve_tmin_2
|
||||
self.ltmax = self.gui.ParCurve_tmax_2
|
||||
self.ltstep = self.gui.ParCurve_tstep_2
|
||||
|
||||
self.lpolar = self.gui.checkBox_polar_2
|
||||
self.cb_points = self.gui.checkBox_points_2
|
||||
self.cb_polyline = self.gui.checkBox_polyline_2
|
||||
self.cb_bspline = self.gui.checkBox_bspline_2
|
||||
self.cb_bezier = self.gui.checkBox_bezier_2
|
||||
|
||||
self.cb_close = self.gui.checkBox_close_2
|
||||
self.cb_face = self.gui.checkBox_face_2
|
||||
|
||||
self.cb_face.setEnabled(False)
|
||||
self.close = False
|
||||
self.face = False
|
||||
|
||||
self.combox = self.gui.ParCurve_comboBox_2
|
||||
|
||||
self.dialog = QtGui.QDialog()
|
||||
self.dialog.resize(280,110)
|
||||
self.dialog.setWindowTitle("2D Parametric Curve Editor")
|
||||
self.dialog.ui = ParCurveEdit.tableWidget2D(database="Parametric2D.dat")
|
||||
self.dialog.ui.setupUi(self.dialog, self.combox)
|
||||
|
||||
|
||||
def updateOptions(self):
|
||||
if self.points:
|
||||
self.cb_close.setEnabled(False)
|
||||
self.cb_face.setEnabled(False)
|
||||
self.cb_close.setChecked(False)
|
||||
self.cb_face.setChecked(False)
|
||||
self.close = False
|
||||
self.face = False
|
||||
else:
|
||||
self.cb_close.setEnabled(True)
|
||||
if self.poly and self.close:
|
||||
self.cb_face.setEnabled(True)
|
||||
else:
|
||||
self.cb_face.setEnabled(False)
|
||||
self.cb_face.setChecked(False)
|
||||
self.face = False
|
||||
|
||||
|
||||
def select_curve(self, *argc):
|
||||
""" Selection of Curve by combo box.
|
||||
"""
|
||||
if self.debug != 0:
|
||||
print self.select_curve.__name__
|
||||
|
||||
m_line = self.dialog.ui.selectCurve(*argc)
|
||||
if self.debug != 0:
|
||||
print str(m_line)
|
||||
self.name.setText(str(m_line[0]))
|
||||
self.la.setText(str(m_line[1]))
|
||||
self.lb.setText(str(m_line[2]))
|
||||
self.lx.setText(str(m_line[3]))
|
||||
self.ly.setText(str(m_line[4]))
|
||||
self.ltmin.setText(str(m_line[5]))
|
||||
self.ltmax.setText(str(m_line[6]))
|
||||
self.ltstep.setText(str(m_line[7]))
|
||||
m_polar = int(str(m_line[8]))
|
||||
if self.debug != 0:
|
||||
print str(m_polar)
|
||||
print str(self.lpolar)
|
||||
self.polar = False
|
||||
if m_polar == 1:
|
||||
print str(m_polar)
|
||||
self.polar = True
|
||||
self.lpolar.setChecked(self.polar)
|
||||
|
||||
def draw(self):
|
||||
if self.debug != 0:
|
||||
print self.draw.__name__
|
||||
|
||||
msgBox = QtGui.QMessageBox()
|
||||
|
||||
fa = str(self.la.text())
|
||||
fb = str(self.lb.text())
|
||||
fx = str(self.lx.text())
|
||||
fy = str(self.ly.text())
|
||||
t = float(eval(str(self.ltmin.text())))
|
||||
tf = float(eval(str(self.ltmax.text())))
|
||||
intt = float(eval(str(self.ltstep.text())))
|
||||
|
||||
d = (tf + intt -t)/intt
|
||||
dmax = int(d)
|
||||
matriz = []
|
||||
|
||||
if self.debug != 0:
|
||||
print "t=" + str(t) +" to " + str(tf) + " with step of " + str(intt)
|
||||
print "d=" + str(d)
|
||||
print "a=" + str(fa)
|
||||
print "b=" + str(fb)
|
||||
print "x=" + str(fx)
|
||||
print "y=" + str(fy)
|
||||
|
||||
code = """
|
||||
def f(fa,fb,fx,fy,t):
|
||||
value=""
|
||||
msgBox = QtGui.QMessageBox()
|
||||
try:
|
||||
value="a() = """+str(fa)+""""
|
||||
a="""+str(fa)+"""
|
||||
value="b() = """+str(fb)+""""
|
||||
b="""+str(fb)+"""
|
||||
value="X() = """+str(fx)+""""
|
||||
fxx="""+str(fx)+"""
|
||||
value="Y() = """+str(fy)+""""
|
||||
fyy="""+str(fy)+"""
|
||||
except ZeroDivisionError:
|
||||
msgBox.setText("Error division by zero in calculus of "+value+" for (t) = "+str(t)+" !")
|
||||
msgBox.exec_()
|
||||
return
|
||||
except:
|
||||
msgBox.setText("Error in the formula of "+value+" for (t) = "+str(t)+" !")
|
||||
msgBox.exec_()
|
||||
return
|
||||
|
||||
return fxx, fyy
|
||||
"""
|
||||
#==============================================================================
|
||||
# for i in range(int(d)):
|
||||
# try:
|
||||
# value="a"
|
||||
# a=eval(fa)
|
||||
# value="b"
|
||||
# b=eval(fb)
|
||||
# value="X"
|
||||
# fxx=eval(fx)
|
||||
# value="Y"
|
||||
# fyy=eval(fy)
|
||||
# #print fxx,fyy
|
||||
# except ZeroDivisionError:
|
||||
# msgBox.setText("Error division by zero in calculus of "+value+"() for t="+str(t)+" !")
|
||||
# msgBox.exec_()
|
||||
# except:
|
||||
# msgBox.setText("Error in the formula of "+value+"() !")
|
||||
# msgBox.exec_()
|
||||
#
|
||||
# if self.polar == True:
|
||||
# matriz.append(FreeCAD.Vector(fxx*cos(fyy),fxx*sin(fyy),0.0))
|
||||
# else:
|
||||
# matriz.append(FreeCAD.Vector(fxx,fyy,0.0))
|
||||
# t+=intt
|
||||
#==============================================================================
|
||||
|
||||
if self.debug != 0:
|
||||
print code
|
||||
exec code
|
||||
|
||||
for i in range(dmax):
|
||||
fxx, fyy = f(fa,fb,fx,fy,t)
|
||||
if self.polar == True:
|
||||
matriz.append(FreeCAD.Vector(fxx*cos(fyy),fxx*sin(fyy),0.0))
|
||||
else:
|
||||
matriz.append(FreeCAD.Vector(fxx,fyy,0.0))
|
||||
t+=intt
|
||||
|
||||
self.plot_matriz(matriz)
|
||||
|
||||
|
||||
def store(self):
|
||||
""" Store the parametric curve.
|
||||
"""
|
||||
if self.debug != 0:
|
||||
print self.store.__name__
|
||||
m_line = []
|
||||
m_items = [self.name, self.la, self.lb,self.lx, self.ly,
|
||||
self.ltmin, self.ltmax, self.ltstep,]
|
||||
|
||||
for m_item in m_items:
|
||||
m_val = ""
|
||||
m_val = m_item.text()
|
||||
m_line.append(str(m_val))
|
||||
if self.polar:
|
||||
m_line.append("1")
|
||||
else:
|
||||
m_line.append("0")
|
||||
# append comment
|
||||
m_line.append("")
|
||||
print str(m_line)
|
||||
self.dialog.ui.addCurveData(m_line)
|
||||
|
||||
|
||||
class ParametricCurve3D(Parametric):
|
||||
""" A ParametricCurve3D object
|
||||
"""
|
||||
def __init__(self, gui):
|
||||
Parametric.__init__(self, gui)
|
||||
|
||||
self.name = self.gui.ParCurve_name_3
|
||||
self.la = self.gui.ParCurve_a_3
|
||||
self.lb = self.gui.ParCurve_b_3
|
||||
self.lc = self.gui.ParCurve_c_3
|
||||
self.lx = self.gui.ParCurve_x_3
|
||||
self.ly = self.gui.ParCurve_y_3
|
||||
self.lz = self.gui.ParCurve_z_3
|
||||
self.ltmin = self.gui.ParCurve_tmin_3
|
||||
self.ltmax = self.gui.ParCurve_tmax_3
|
||||
self.ltstep = self.gui.ParCurve_tstep_3
|
||||
|
||||
self.combox = self.gui.ParCurve_comboBox_3
|
||||
|
||||
self.dialog = QtGui.QDialog()
|
||||
self.dialog.resize(280,110)
|
||||
self.dialog.setWindowTitle("3D Parametric Curve Editor")
|
||||
self.dialog.ui = ParCurveEdit.tableWidget3D(database="Parametric3D.dat")
|
||||
self.dialog.ui.setupUi(self.dialog, self.combox)
|
||||
|
||||
|
||||
def select_curve(self, *argc):
|
||||
""" Selection of Curve by combo box.
|
||||
"""
|
||||
if self.debug != 0:
|
||||
print self.select_curve.__name__
|
||||
|
||||
m_line = self.dialog.ui.selectCurve(*argc)
|
||||
if self.debug != 0:
|
||||
print str(m_line)
|
||||
self.name.setText(str(m_line[0]))
|
||||
self.la.setText(str(m_line[1]))
|
||||
self.lb.setText(str(m_line[2]))
|
||||
self.lc.setText(str(m_line[3]))
|
||||
self.lx.setText(str(m_line[4]))
|
||||
self.ly.setText(str(m_line[5]))
|
||||
self.lz.setText(str(m_line[6]))
|
||||
self.ltmin.setText(str(m_line[7]))
|
||||
self.ltmax.setText(str(m_line[8]))
|
||||
self.ltstep.setText(str(m_line[9]))
|
||||
|
||||
|
||||
def draw(self):
|
||||
if self.debug != 0:
|
||||
print self.draw.__name__
|
||||
msgBox = QtGui.QMessageBox()
|
||||
fa = str(self.la.text())
|
||||
fb = str(self.lb.text())
|
||||
fc = str(self.lc.text())
|
||||
fx = str(self.lx.text())
|
||||
fy = str(self.ly.text())
|
||||
fz = str(self.lz.text())
|
||||
t = float(eval(str(self.ltmin.text())))
|
||||
tf = float(eval(str(self.ltmax.text())))
|
||||
intt = float(eval(str(self.ltstep.text())))
|
||||
|
||||
d = (tf + intt -t)/intt
|
||||
dmax = int(d)
|
||||
matriz = []
|
||||
|
||||
if self.debug != 0:
|
||||
print "t=" + str(t) +" to " + str(tf) + " with step of " + str(intt)
|
||||
print "d=" + str(d)
|
||||
print "a=" + str(fa)
|
||||
print "b=" + str(fb)
|
||||
print "c=" + str(fc)
|
||||
print "x=" + str(fx)
|
||||
print "y=" + str(fy)
|
||||
print "z=" + str(fz)
|
||||
|
||||
code = """
|
||||
def f(fa,fb,fc,fx,fy,fz,t):
|
||||
value=""
|
||||
msgBox = QtGui.QMessageBox()
|
||||
try:
|
||||
value="a() = """+str(fa)+""""
|
||||
a="""+str(fa)+"""
|
||||
value="b() = """+str(fb)+""""
|
||||
b="""+str(fb)+"""
|
||||
value="c() = """+str(fc)+""""
|
||||
c="""+str(fc)+"""
|
||||
value="X() = """+str(fx)+""""
|
||||
fxx="""+str(fx)+"""
|
||||
value="Y() = """+str(fy)+""""
|
||||
fyy="""+str(fy)+"""
|
||||
value="Z() = """+str(fz)+""""
|
||||
fzz="""+str(fz)+"""
|
||||
except ZeroDivisionError:
|
||||
msgBox.setText("Error division by zero in calculus of "+value+" for (t) = "+str(t)+" !")
|
||||
msgBox.exec_()
|
||||
return
|
||||
except:
|
||||
msgBox.setText("Error in the formula of "+value+" for (t) = "+str(t)+" !")
|
||||
msgBox.exec_()
|
||||
return
|
||||
return fxx, fyy, fzz
|
||||
"""
|
||||
#==============================================================================
|
||||
# for i in range(int(d)):
|
||||
# try:
|
||||
# value="a"
|
||||
# a=eval(fa)
|
||||
# value="b"
|
||||
# b=eval(fb)
|
||||
# value="c"
|
||||
# c=eval(fc)
|
||||
# value="X"
|
||||
# fxx=eval(fx)
|
||||
# value="Y"
|
||||
# fyy=eval(fy)
|
||||
# value="Z"
|
||||
# fzz=eval(fz)
|
||||
# except ZeroDivisionError:
|
||||
# msgBox.setText("Error division by zero in calculus of "+value+"() for t="+str(t)+" !")
|
||||
# msgBox.exec_()
|
||||
# except:
|
||||
# msgBox.setText("Error in the formula of "+value+"() !")
|
||||
# msgBox.exec_()
|
||||
# matriz.append(FreeCAD.Vector(fxx,fyy,fzz))
|
||||
# t+=intv
|
||||
#==============================================================================
|
||||
|
||||
if self.debug != 0:
|
||||
print code
|
||||
exec code
|
||||
for i in range(dmax):
|
||||
fxx, fyy, fzz = f(fa,fb,fc,fx,fy,fz,t)
|
||||
matriz.append(FreeCAD.Vector(fxx,fyy,fzz))
|
||||
t+=intt
|
||||
self.plot_matriz(matriz)
|
||||
|
||||
|
||||
def store(self):
|
||||
""" Store the parametric curve.
|
||||
"""
|
||||
if self.debug != 0:
|
||||
print self.store.__name__
|
||||
m_line = []
|
||||
m_items = [self.name, self.la, self.lb, self.lc, self.lx, self.ly, self.lz,
|
||||
self.ltmin, self.ltmax, self.ltstep,]
|
||||
for m_item in m_items:
|
||||
m_val = ""
|
||||
m_val = m_item.text()
|
||||
m_line.append(str(m_val))
|
||||
# append comment
|
||||
m_line.append("")
|
||||
print str(m_line)
|
||||
self.dialog.ui.addCurveData(m_line)
|
||||
|
||||
|
||||
class ParametricCurve2DEvents(DefineAndConnectEvents):
|
||||
def __init__(self,ui):
|
||||
self.ui = ui
|
||||
# Create Parametric Curve 2D object
|
||||
self.parcurv2D = ParametricCurve2D(self.ui)
|
||||
DefineAndConnectEvents.__init__(self, self.ui, self.parcurv2D)
|
||||
|
||||
def defineEvents(self):
|
||||
#======================================================================
|
||||
# Connect to 2D functions
|
||||
#======================================================================
|
||||
self.connections_for_slider_changed = {}
|
||||
self.connections_for_button_pressed = {
|
||||
"ParCurve_button_edit_2" : "edit",
|
||||
"ParCurve_button_apply_2" : "draw",
|
||||
"ParCurve_button_store_2" : "store",
|
||||
}
|
||||
self.connections_for_combobox_changed = {
|
||||
"ParCurve_comboBox_2" : "select_curve",
|
||||
}
|
||||
self.connections_for_checkbox_toggled = {
|
||||
"checkBox_close_2" : "ccloseState",
|
||||
"checkBox_face_2" : "cfaceState",
|
||||
"checkBox_points_2" : "cpointsState",
|
||||
"checkBox_polyline_2" : "cpolyState",
|
||||
"checkBox_bspline_2" : "cbsplineState",
|
||||
"checkBox_bezier_2" : "cbezierState",
|
||||
"checkBox_polar_2" : "cpolarState",
|
||||
}
|
||||
self.connections_for_spin_changed = {}
|
||||
self.connections_for_return_pressed = {}
|
||||
|
||||
|
||||
class ParametricCurve3DEvents(DefineAndConnectEvents):
|
||||
def __init__(self,ui):
|
||||
self.ui = ui
|
||||
# Create Parametric Curve 3D object
|
||||
self.parcurv3D = ParametricCurve3D(self.ui)
|
||||
DefineAndConnectEvents.__init__(self, self.ui, self.parcurv3D)
|
||||
|
||||
def defineEvents(self):
|
||||
#======================================================================
|
||||
# Connect to 3D functions
|
||||
#======================================================================
|
||||
self.connections_for_slider_changed = {}
|
||||
self.connections_for_button_pressed = {
|
||||
"ParCurve_button_edit_3" : "edit",
|
||||
"ParCurve_button_apply_3" : "draw",
|
||||
"ParCurve_button_store_3" : "store",
|
||||
}
|
||||
self.connections_for_combobox_changed = {
|
||||
"ParCurve_comboBox_3" : "select_curve",
|
||||
}
|
||||
self.connections_for_checkbox_toggled = {
|
||||
"checkBox_close_3" : "ccloseState",
|
||||
"checkBox_points_3" : "cpointsState",
|
||||
"checkBox_polyline_3" : "cpolyState",
|
||||
"checkBox_bspline_3" : "cbsplineState",
|
||||
"checkBox_bezier_3" : "cbezierState",
|
||||
}
|
||||
self.connections_for_spin_changed = {}
|
||||
self.connections_for_return_pressed = {}
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
myObject = Parametric(None)
|
|
@ -5,9 +5,11 @@ import sys
|
|||
if not sys.path.__contains__("/usr/lib/freecad/lib"):
|
||||
sys.path.append("/usr/lib/freecad/lib")
|
||||
|
||||
import __init__ as func
|
||||
import WF_2015 as func
|
||||
from WF_Utils_2015 import *
|
||||
|
||||
global myRelease
|
||||
myRelease = "2105_02"
|
||||
myRelease = "2015_10"
|
||||
|
||||
import os.path
|
||||
import math
|
||||
|
@ -21,32 +23,6 @@ from FreeCAD import Base
|
|||
|
||||
from PySide import QtCore, QtGui
|
||||
|
||||
####################################################################################
|
||||
# Functions
|
||||
def print_attributes(obj, doc=False):
|
||||
""" Print all the attributes of this object and their value """
|
||||
__m_type = obj.__class__.__name__
|
||||
print '* Attributes print for '+ str(__m_type) + '*'
|
||||
for names in dir(obj):
|
||||
attr = getattr(obj,names)
|
||||
if not callable(attr):
|
||||
if doc:
|
||||
print names,':',attr
|
||||
else:
|
||||
print names
|
||||
|
||||
|
||||
def print_methods(obj, doc=False):
|
||||
""" Print all the methods of this object and their doc string"""
|
||||
__m_type = obj.__class__.__name__
|
||||
print '\n* Methods print for '+ str(__m_type) + '*'
|
||||
for names in dir(obj):
|
||||
attr = getattr(obj,names)
|
||||
if callable(attr):
|
||||
if doc:
|
||||
print names,':',attr.__doc__
|
||||
else:
|
||||
print names
|
||||
|
||||
|
||||
def plot_point(Vector_point, part="Part::Feature", name="CenterObjects", grp="Rot_Trans"):
|
||||
|
@ -1407,6 +1383,69 @@ try:
|
|||
except AttributeError:
|
||||
_fromUtf8 = lambda s: s
|
||||
|
||||
class RotationEvents(DefineAndConnectEvents):
|
||||
def __init__(self,ui):
|
||||
self.ui = ui
|
||||
# Create a Rotation object
|
||||
self.rot = Rotation(self.ui)
|
||||
DefineAndConnectEvents.__init__(self, self.ui, self.rot)
|
||||
|
||||
def defineEvents(self):
|
||||
self.connections_for_slider_changed = {
|
||||
"ObjRot_horizontalSlider" : "angle_value_changed",
|
||||
}
|
||||
self.connections_for_button_pressed = {
|
||||
"ObjRot_button_select" : "initialize",
|
||||
"ObjRot_button_select_center" : "select_center",
|
||||
"ObjRot_button_select_axis" : "select_axis",
|
||||
"ObjRot_button_reset" : "reset",
|
||||
"ObjRot_button_apply" : "application",
|
||||
}
|
||||
self.connections_for_combobox_changed = {
|
||||
"ObjRot_comboBox_center" : "center_value",
|
||||
"ObjRot_comboBox_axis" : "axis_value",
|
||||
}
|
||||
self.connections_for_checkbox_toggled = {}
|
||||
self.connections_for_spin_changed = {}
|
||||
self.connections_for_return_pressed = {
|
||||
"ObjRot_lineEdit_angle" : "angle_value_entered",
|
||||
}
|
||||
|
||||
class TranslationEvents(DefineAndConnectEvents):
|
||||
def __init__(self,ui):
|
||||
self.ui = ui
|
||||
# Create a Translation object
|
||||
self.trans = Translation(self.ui)
|
||||
DefineAndConnectEvents.__init__(self, self.ui, self.trans)
|
||||
|
||||
def defineEvents(self):
|
||||
self.connections_for_slider_changed = {}
|
||||
self.connections_for_button_pressed = {
|
||||
"ObjTrans_button_select" : "initialize",
|
||||
"ObjTrans_button_select_start" : "select_start",
|
||||
"ObjTrans_button_select_end" : "select_end",
|
||||
"ObjTrans_button_reset" : "reset",
|
||||
"ObjTrans_button_apply" : "application",
|
||||
}
|
||||
self.connections_for_combobox_changed = {
|
||||
"ObjTrans_comboBox_start" : "select_start_type",
|
||||
"ObjTrans_comboBox_end" : "select_end_type",
|
||||
}
|
||||
self.connections_for_checkbox_toggled = {
|
||||
"ObjTrans_duplicate" : "copyFlag",
|
||||
"ObjTrans_deepCopy" : "deepCopyFlag",
|
||||
}
|
||||
self.connections_for_spin_changed = {
|
||||
"ObjTrans_spin" : "numberCopies",
|
||||
}
|
||||
self.connections_for_return_pressed = {
|
||||
"ObjTrans_start_x" : "start_x_entered",
|
||||
"ObjTrans_start_y" : "start_y_entered",
|
||||
"ObjTrans_start_z" : "start_z_entered",
|
||||
"ObjTrans_end_x" : "end_x_entered",
|
||||
"ObjTrans_end_y" : "end_y_entered",
|
||||
"ObjTrans_end_z" : "end_z_entered",
|
||||
}
|
||||
####################################################################################
|
||||
class ObjectRotationTab():
|
||||
def __init__(self):
|
||||
|
@ -1438,12 +1477,11 @@ class ObjectRotationTab():
|
|||
self.ui.setupUi(self.m_dialog)
|
||||
self.m_tab.setCurrentIndex(i+1)
|
||||
|
||||
# Create a Rotation object
|
||||
self.rot = Rotation(self.ui)
|
||||
# Create a Translation object
|
||||
self.trans = Translation(self.ui)
|
||||
|
||||
# Connect to functions
|
||||
# Create a Rotation object and connect
|
||||
self.eventsRot = RotationEvents(self.ui)
|
||||
|
||||
|
||||
self.connections_for_ObjTrans_button_pressed = {
|
||||
|
@ -1476,57 +1514,16 @@ class ObjectRotationTab():
|
|||
"ObjTrans_end_z" : "end_z_entered",
|
||||
}
|
||||
|
||||
self.connections_for_ObjRot_slider_changed = {
|
||||
"ObjRot_horizontalSlider" : "angle_value_changed",
|
||||
}
|
||||
|
||||
self.connections_for_ObjRot_button_pressed = {
|
||||
"ObjRot_button_select" : "initialize",
|
||||
"ObjRot_button_select_center" : "select_center",
|
||||
"ObjRot_button_select_axis" : "select_axis",
|
||||
"ObjRot_button_reset" : "reset",
|
||||
"ObjRot_button_apply" : "application",
|
||||
}
|
||||
|
||||
self.connections_for_ObjRot_combobox_changed = {
|
||||
"ObjRot_comboBox_center" : "center_value",
|
||||
"ObjRot_comboBox_axis" : "axis_value",
|
||||
}
|
||||
|
||||
self.connections_for_ObjRot_return_pressed = {
|
||||
"ObjRot_lineEdit_angle" : "angle_value_entered",
|
||||
}
|
||||
|
||||
self.connections_for_button_clicked = {
|
||||
"button_quit" : "quit_clicked",
|
||||
}
|
||||
|
||||
for m_key, m_val in self.connections_for_button_clicked.items():
|
||||
#func.print_msg( "Connecting : " + str(m_key) + " and " + str(m_val) )
|
||||
#print_msg( "Connecting : " + str(m_key) + " and " + str(m_val) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("clicked()"),getattr(self,str(m_val)))
|
||||
|
||||
# Connect to Rotation functions
|
||||
for m_key, m_val in self.connections_for_ObjRot_button_pressed.items():
|
||||
#func.print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.rot, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("pressed()"),getattr(self.rot, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_ObjRot_combobox_changed.items():
|
||||
#func.print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.rot, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL(_fromUtf8("currentIndexChanged(QString)")),getattr(self.rot, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_ObjRot_slider_changed.items():
|
||||
#func.print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.rot, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("valueChanged(int)"),getattr(self.rot, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_ObjRot_return_pressed.items():
|
||||
#func.print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.rot, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("returnPressed()"),getattr(self.rot, str(m_val)))
|
||||
|
||||
# Connect to Translation functions
|
||||
for m_key, m_val in self.connections_for_ObjTrans_button_pressed.items():
|
||||
#func.print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.trans, str(m_val))) )
|
||||
|
|
238
WorkFeature/WF_Utils_2015.py
Normal file
|
@ -0,0 +1,238 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
"""
|
||||
import os.path
|
||||
|
||||
from PySide import QtCore
|
||||
try:
|
||||
_fromUtf8 = QtCore.QString.fromUtf8
|
||||
except AttributeError:
|
||||
_fromUtf8 = lambda s: s
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Functions
|
||||
def print_attributes(obj, doc=False):
|
||||
""" Print all the attributes of this object and their value """
|
||||
__m_type = obj.__class__.__name__
|
||||
print '* Attributes print for '+ str(__m_type) + '*'
|
||||
for names in dir(obj):
|
||||
attr = getattr(obj,names)
|
||||
if not callable(attr):
|
||||
if doc:
|
||||
print names,':',attr
|
||||
else:
|
||||
print names
|
||||
|
||||
def print_methods(obj, doc=False):
|
||||
""" Print all the methods of this object and their doc string"""
|
||||
__m_type = obj.__class__.__name__
|
||||
print '\n* Methods print for '+ str(__m_type) + '*'
|
||||
for names in dir(obj):
|
||||
attr = getattr(obj,names)
|
||||
if callable(attr):
|
||||
if doc:
|
||||
print names,':',attr.__doc__
|
||||
else:
|
||||
print names
|
||||
|
||||
|
||||
def write_text(filename=None, text=None):
|
||||
"""
|
||||
Write the text into an ASCII file.
|
||||
|
||||
Return True if success, false if not.
|
||||
|
||||
*filename* : (string) full path name.
|
||||
|
||||
*text* : (string) the text to write.
|
||||
"""
|
||||
if filename != None and text != None:
|
||||
try:
|
||||
__m_f=open(filename,'w')
|
||||
__m_f.write(text)
|
||||
__m_f.close()
|
||||
return True
|
||||
except:
|
||||
print "\nERROR : The file " + str(filename) + \
|
||||
" cannot be opened in write mode !"
|
||||
return False
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
def append_text(filename=None, text="" ):
|
||||
"""
|
||||
Print/Add text either on screen or on at the end of an existing ASCII text file.
|
||||
|
||||
*filename* : (string) full path name.
|
||||
|
||||
*text* : (string) the text to add at the end of the file.
|
||||
"""
|
||||
if text.__class__.__name__ != 'str':
|
||||
return None
|
||||
if filename and os.path.exists(filename):
|
||||
try:
|
||||
__m_f=open(filename,'r+')
|
||||
__m_f.readlines()
|
||||
__m_f.write(text+'\n')
|
||||
__m_f.close()
|
||||
except:
|
||||
print "\nERROR : The file " + str(filename) + \
|
||||
" can not be opened for append mode !"
|
||||
return False
|
||||
else:
|
||||
print text +'\n'
|
||||
|
||||
def read_text_into_list(filename):
|
||||
"""
|
||||
Read the complete ASCII file *filename* (if possible) into a unique
|
||||
list of strings and return the list
|
||||
(or None in case of error).
|
||||
|
||||
Controls are done on *filename*.
|
||||
|
||||
*filename* : (string) full path name.
|
||||
"""
|
||||
if filename and os.path.exists(filename):
|
||||
try:
|
||||
__m_f=open(filename,'r')
|
||||
# read the complete ASCII file if possible into a unique list of strings
|
||||
try:
|
||||
#m_strings = __m_f.readlines()
|
||||
m_strings = __m_f.read().splitlines()
|
||||
except:
|
||||
__m_f.close()
|
||||
print "\nERROR : The file " + str(filename) + \
|
||||
" cannot be fully read !"
|
||||
return None
|
||||
finally:
|
||||
__m_f.close()
|
||||
__m_f.close()
|
||||
return m_strings
|
||||
except:
|
||||
print "\nERROR : The file " + str(filename) + \
|
||||
" cannot be opened in read mode !"
|
||||
return None
|
||||
else:
|
||||
if os.path.exists(filename) == False:
|
||||
print "\nERROR : " + str(filename) + " not a valid file !"
|
||||
return None
|
||||
|
||||
|
||||
def read_text(filename):
|
||||
"""
|
||||
Read the complete ASCII file *filename* (if possible) into a unique
|
||||
string and return the string
|
||||
(or None in case of error).
|
||||
|
||||
Controls are done on *filename*.
|
||||
|
||||
*filename* : (string) full path name.
|
||||
"""
|
||||
if filename and os.path.exists(filename):
|
||||
try:
|
||||
__m_f=open(filename,'r')
|
||||
# read the complete ASCII file if possible into a unique string
|
||||
try:
|
||||
m_string = __m_f.read()
|
||||
except:
|
||||
__m_f.close()
|
||||
print "\nERROR : The file " + str(filename) + \
|
||||
" cannot be fully read !"
|
||||
return None
|
||||
finally:
|
||||
__m_f.close()
|
||||
__m_f.close()
|
||||
return m_string
|
||||
except:
|
||||
print "\nERROR : The file " + str(filename) + \
|
||||
" cannot be opened in read mode !"
|
||||
return None
|
||||
else:
|
||||
if os.path.exists(filename) == False:
|
||||
print "\nERROR : " + str(filename) + " not a valid file !"
|
||||
return None
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Classes
|
||||
class DefineAndConnectEvents():
|
||||
def __init__(self, ui, obj):
|
||||
"""
|
||||
Definition of communications between a Gui and an python Object.
|
||||
This class is a base class and must be derived like :
|
||||
|
||||
class ParametricCurve2DEvents(DefineAndConnectEvents):
|
||||
def __init__(self,ui):
|
||||
self.ui = ui
|
||||
# Create Parametric Curve objects
|
||||
self.parcurv2D = ParametricCurve2D(self.ui)
|
||||
DefineAndConnectEvents.__init__(self, self.ui, self.parcurv2D)
|
||||
|
||||
|
||||
def defineEvents(self):
|
||||
#==============================
|
||||
|
||||
# Definition of connections
|
||||
|
||||
# by type of actions on widgets of the Gui.
|
||||
#==============================
|
||||
self.connections_for_button_pressed = {
|
||||
"ParCurve_button_edit_2" : "edit",
|
||||
"ParCurve_button_apply_2" : "draw",
|
||||
"ParCurve_button_store_2" : "store",
|
||||
}
|
||||
...
|
||||
"""
|
||||
if self.__class__ is DefineAndConnectEvents:
|
||||
raise Exception("Direct construction not allowed !\nSee doc of the Class.")
|
||||
self.ui = ui
|
||||
self.obj = obj
|
||||
self.defineEvents()
|
||||
self.connectEvents()
|
||||
|
||||
def defineEvents(self):
|
||||
"""
|
||||
Definition of connections by type of actions on widgets of the Gui.
|
||||
"""
|
||||
self.connections_for_slider_changed = {}
|
||||
self.connections_for_button_pressed = {}
|
||||
self.connections_for_combobox_changed = {}
|
||||
self.connections_for_checkbox_toggled = {}
|
||||
self.connections_for_spin_changed = {}
|
||||
self.connections_for_return_pressed = {}
|
||||
|
||||
def connectEvents(self):
|
||||
for m_key, m_val in self.connections_for_slider_changed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.obj, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("valueChanged(int)"),getattr(self.obj, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_button_pressed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.obj, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("pressed()"),getattr(self.obj, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_combobox_changed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.obj, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL(_fromUtf8("currentIndexChanged(QString)")),getattr(self.obj, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_checkbox_toggled.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.obj, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL(_fromUtf8("toggled(bool)")),getattr(self.obj, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_spin_changed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.obj, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("valueChanged(int)"),getattr(self.obj, str(m_val)))
|
||||
|
||||
for m_key, m_val in self.connections_for_return_pressed.items():
|
||||
#print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.obj, str(m_val))) )
|
||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||
QtCore.SIGNAL("returnPressed()"),getattr(self.obj, str(m_val)))
|
||||
|
||||
if __name__ == '__main__':
|
||||
myObject = DefineAndConnectEvents(None, None)
|
18
start_WF.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import sys
|
||||
import os.path
|
||||
|
||||
try:
|
||||
# try import
|
||||
import WorkFeature.WF_2015 as WF
|
||||
except:
|
||||
# get the path of the current python script
|
||||
m_current_path = os.path.realpath(__file__)
|
||||
m_current_path = os.path.dirname(m_current_path)
|
||||
# check if this path belongs to the PYTHONPATH variable and if not add it
|
||||
if not sys.path.__contains__(str(m_current_path)):
|
||||
sys.path.append(str(m_current_path))
|
||||
# retry import now
|
||||
import WorkFeature.WF_2015 as WF
|
||||
|
||||
WF.myDialog = WF.WorkFeatureTab()
|