Release of 2017-02-05 :
Addition: into "Point 1/3" TAB : Projected Point(s) into "Wire 1/2" TAB : Convex 2D Polygon Update: into "Modif." TAB: Translate Tutorials (into Doc/Tutorials directory): WF_Tuto_MODIF_TranslationBySegment.mp4 WF_Tuto_POINTS_ProjectedPoints.mp4 WF_Tuto_POINTS_RandomPoints.mp4 WF_Tuto_WIRE_2DConvexPolygon.mp4 WF_Tuto_WIRE_CreatePolygon.mp4 WF_Tuto_WIRE_Regression2D.mp4
BIN
WorkFeature/Doc/Tutorials/WF_Tuto_MODIF_TranslationBySegment.mp4
Normal file
BIN
WorkFeature/Doc/Tutorials/WF_Tuto_POINTS_ProjectedPoints.mp4
Normal file
BIN
WorkFeature/Doc/Tutorials/WF_Tuto_POINTS_RandomPoints.mp4
Normal file
BIN
WorkFeature/Doc/Tutorials/WF_Tuto_WIRE_2DConvexPolygon.mp4
Normal file
BIN
WorkFeature/Doc/Tutorials/WF_Tuto_WIRE_CreatePolygon.mp4
Normal file
BIN
WorkFeature/Doc/Tutorials/WF_Tuto_WIRE_Regression2D.mp4
Normal file
123
WorkFeature/Icons/WF_click.svg
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
<?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.91 r13725"
|
||||||
|
sodipodi:docname="WF_click.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||||
|
version="1.1">
|
||||||
|
<defs
|
||||||
|
id="defs2920">
|
||||||
|
<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
|
||||||
|
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"
|
||||||
|
id="radialGradient3075"
|
||||||
|
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" />
|
||||||
|
</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="4.2038293"
|
||||||
|
inkscape:cy="31.812827"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:grid-bbox="true"
|
||||||
|
inkscape:window-width="1366"
|
||||||
|
inkscape:window-height="702"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="1227"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<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">
|
||||||
|
<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" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="ccccccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path5799-2"
|
||||||
|
d="M 27.865364,32.991184 23.4039,47.623682 5.1420292,8.6874001 C 5.594662,7.243395 4.3516376,5.5692254 7.7077253,5.6469608 L 49.544536,22.069334 36.201615,26.606419 58.322749,45.403425 c 0.434076,4.442433 0.118637,8.445519 -7.920612,9.999191 z"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3.29860783;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.3 KiB |
619
WorkFeature/Icons/WF_convexPolygon.svg
Normal file
|
@ -0,0 +1,619 @@
|
||||||
|
<?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.91 r13725"
|
||||||
|
sodipodi:docname="WF_convexPolygon.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>
|
||||||
|
<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="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
|
||||||
|
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-7" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3148-2" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3144-9-3"
|
||||||
|
id="radialGradient4852-4"
|
||||||
|
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-3">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3146-7-5" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3148-2-7" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3144-9-4"
|
||||||
|
id="radialGradient4852-9"
|
||||||
|
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-4">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3146-7-7" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3148-2-9" />
|
||||||
|
</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-9"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
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="radialGradient3264-9-6"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
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="radialGradient3264-9-6-1"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
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="radialGradient3264-9-6-1-1"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
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="radialGradient3264-9-6-1-1-9"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
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="radialGradient3264-9-6-1-1-9-8"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
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="radialGradient3264-9-6-1-1-9-8-6"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
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.6088565"
|
||||||
|
inkscape:cx="33.444373"
|
||||||
|
inkscape:cy="30.440063"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:grid-bbox="true"
|
||||||
|
inkscape:window-width="1366"
|
||||||
|
inkscape:window-height="702"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="27"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<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 />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
id="layer1"
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer">
|
||||||
|
<ellipse
|
||||||
|
ry="6.2593665"
|
||||||
|
rx="5.8838305"
|
||||||
|
cy="45.098446"
|
||||||
|
cx="12.998963"
|
||||||
|
id="path3968"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<ellipse
|
||||||
|
ry="6.2593665"
|
||||||
|
rx="5.8838305"
|
||||||
|
cy="60.551296"
|
||||||
|
cx="41.915024"
|
||||||
|
id="path3968-4"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<ellipse
|
||||||
|
ry="6.2593665"
|
||||||
|
rx="5.8838305"
|
||||||
|
cy="16.978237"
|
||||||
|
cx="29.910881"
|
||||||
|
id="path3968-4-0"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<ellipse
|
||||||
|
ry="6.2593665"
|
||||||
|
rx="5.8838305"
|
||||||
|
cy="23.941969"
|
||||||
|
cx="58.097412"
|
||||||
|
id="path3968-4-0-7"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.79201269;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:0.84700072;marker:none;enable-background:accumulate"
|
||||||
|
d="M 57.905786,19.105436 29.578034,12.560311 9.4255882,45.49815 37.837962,63.67851 40.480295,57.198698 17.086112,41.9762 31.690938,17.646862 57.053414,23.748653 Z"
|
||||||
|
id="path4425-9-8"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccccc" />
|
||||||
|
<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" />
|
||||||
|
<path
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#ffa100;fill-opacity:1;fill-rule:nonzero;stroke:#665123;stroke-width:0.84700072;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||||
|
d="M 58.555579,11.316021 22.307841,5.7938518 4.8450848,37.848895 40.042117,59.66807 41.293589,54.194078 11.233991,36.399782 24.986028,10.157803 57.773488,15.36902 Z"
|
||||||
|
id="path4425-9"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccccc" />
|
||||||
|
<g
|
||||||
|
id="g3177-3"
|
||||||
|
transform="matrix(-0.1459885,0.00366916,-0.00366916,-0.1459885,160.08538,105.57482)"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
||||||
|
inkscape:export-xdpi="7.2934141"
|
||||||
|
inkscape:export-ydpi="7.2934141" />
|
||||||
|
<g
|
||||||
|
id="g5734-5"
|
||||||
|
transform="translate(-14.861945,44.831094)">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9-9"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-54.289261"
|
||||||
|
cy="-16.205133"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="7.0721951"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
|
id="g3154-5-3-9">
|
||||||
|
<circle
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path2162-1-0-7"
|
||||||
|
cx="197.14285"
|
||||||
|
cy="655.2193"
|
||||||
|
r="48.57143" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient3264-9);fill-opacity:1;stroke:none"
|
||||||
|
id="path3134-2-9-0"
|
||||||
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
|
cx="225.26402"
|
||||||
|
cy="672.79736"
|
||||||
|
rx="34.345188"
|
||||||
|
ry="23.991123" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g5734-5-3"
|
||||||
|
transform="translate(-44.827027,25.163146)">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9-9-7"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-54.289261"
|
||||||
|
cy="-16.205133"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="7.0721951"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
|
id="g3154-5-3-9-9">
|
||||||
|
<circle
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path2162-1-0-7-4"
|
||||||
|
cx="197.14285"
|
||||||
|
cy="655.2193"
|
||||||
|
r="48.57143" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient3264-9-6);fill-opacity:1;stroke:none"
|
||||||
|
id="path3134-2-9-0-4"
|
||||||
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
|
cx="225.26402"
|
||||||
|
cy="672.79736"
|
||||||
|
rx="34.345188"
|
||||||
|
ry="23.991123" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g5734-5-3-5"
|
||||||
|
transform="translate(-30.895892,-3.6191024)">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9-9-7-8"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-54.289261"
|
||||||
|
cy="-16.205133"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="7.0721951"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
|
id="g3154-5-3-9-9-6">
|
||||||
|
<circle
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path2162-1-0-7-4-7"
|
||||||
|
cx="197.14285"
|
||||||
|
cy="655.2193"
|
||||||
|
r="48.57143" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient3264-9-6-1);fill-opacity:1;stroke:none"
|
||||||
|
id="path3134-2-9-0-4-8"
|
||||||
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
|
cx="225.26402"
|
||||||
|
cy="672.79736"
|
||||||
|
rx="34.345188"
|
||||||
|
ry="23.991123" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g5734-5-3-5-2"
|
||||||
|
transform="translate(3.2748139,0.19224543)">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9-9-7-8-5"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-54.289261"
|
||||||
|
cy="-16.205133"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="7.0721951"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
|
id="g3154-5-3-9-9-6-0">
|
||||||
|
<circle
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path2162-1-0-7-4-7-5"
|
||||||
|
cx="197.14285"
|
||||||
|
cy="655.2193"
|
||||||
|
r="48.57143" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient3264-9-6-1-1);fill-opacity:1;stroke:none"
|
||||||
|
id="path3134-2-9-0-4-8-5"
|
||||||
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
|
cx="225.26402"
|
||||||
|
cy="672.79736"
|
||||||
|
rx="34.345188"
|
||||||
|
ry="23.991123" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g5734-5-3-5-2-8"
|
||||||
|
transform="translate(-13.416262,11.494864)">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9-9-7-8-5-8"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-54.289261"
|
||||||
|
cy="-16.205133"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="7.0721951"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
|
id="g3154-5-3-9-9-6-0-4">
|
||||||
|
<circle
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path2162-1-0-7-4-7-5-2"
|
||||||
|
cx="197.14285"
|
||||||
|
cy="655.2193"
|
||||||
|
r="48.57143" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient3264-9-6-1-1-9);fill-opacity:1;stroke:none"
|
||||||
|
id="path3134-2-9-0-4-8-5-8"
|
||||||
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
|
cx="225.26402"
|
||||||
|
cy="672.79736"
|
||||||
|
rx="34.345188"
|
||||||
|
ry="23.991123" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g5734-5-3-5-2-8-4"
|
||||||
|
transform="translate(-26.558841,19.643263)">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9-9-7-8-5-8-4"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-54.289261"
|
||||||
|
cy="-16.205133"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="7.0721951"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
|
id="g3154-5-3-9-9-6-0-4-1">
|
||||||
|
<circle
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path2162-1-0-7-4-7-5-2-2"
|
||||||
|
cx="197.14285"
|
||||||
|
cy="655.2193"
|
||||||
|
r="48.57143" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient3264-9-6-1-1-9-8);fill-opacity:1;stroke:none"
|
||||||
|
id="path3134-2-9-0-4-8-5-8-0"
|
||||||
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
|
cx="225.26402"
|
||||||
|
cy="672.79736"
|
||||||
|
rx="34.345188"
|
||||||
|
ry="23.991123" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g5734-5-3-5-2-8-4-4"
|
||||||
|
transform="translate(-12.102003,28.974495)">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9-9-7-8-5-8-4-8"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-54.289261"
|
||||||
|
cy="-16.205133"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="7.0721951"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
|
id="g3154-5-3-9-9-6-0-4-1-9">
|
||||||
|
<circle
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path2162-1-0-7-4-7-5-2-2-5"
|
||||||
|
cx="197.14285"
|
||||||
|
cy="655.2193"
|
||||||
|
r="48.57143" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient3264-9-6-1-1-9-8-6);fill-opacity:1;stroke:none"
|
||||||
|
id="path3134-2-9-0-4-8-5-8-0-5"
|
||||||
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
|
cx="225.26402"
|
||||||
|
cy="672.79736"
|
||||||
|
rx="34.345188"
|
||||||
|
ry="23.991123" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 24 KiB |
|
@ -182,17 +182,6 @@
|
||||||
offset="1"
|
offset="1"
|
||||||
id="stop3148-2" />
|
id="stop3148-2" />
|
||||||
</linearGradient>
|
</linearGradient>
|
||||||
<radialGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3144-9"
|
|
||||||
id="radialGradient4852"
|
|
||||||
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
|
<radialGradient
|
||||||
inkscape:collect="always"
|
inkscape:collect="always"
|
||||||
xlink:href="#linearGradient3144-9-3"
|
xlink:href="#linearGradient3144-9-3"
|
||||||
|
@ -215,17 +204,6 @@
|
||||||
offset="1"
|
offset="1"
|
||||||
id="stop3148-2-7" />
|
id="stop3148-2-7" />
|
||||||
</linearGradient>
|
</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="radialGradient4889"
|
|
||||||
xlink:href="#linearGradient3144-9-3"
|
|
||||||
inkscape:collect="always" />
|
|
||||||
<radialGradient
|
<radialGradient
|
||||||
inkscape:collect="always"
|
inkscape:collect="always"
|
||||||
xlink:href="#linearGradient3144-9-4"
|
xlink:href="#linearGradient3144-9-4"
|
||||||
|
@ -256,20 +234,42 @@
|
||||||
cx="225.26402"
|
cx="225.26402"
|
||||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||||
gradientUnits="userSpaceOnUse"
|
gradientUnits="userSpaceOnUse"
|
||||||
id="radialGradient4929"
|
id="radialGradient3264-9"
|
||||||
xlink:href="#linearGradient3144-9-4"
|
xlink:href="#linearGradient3144"
|
||||||
inkscape:collect="always" />
|
inkscape:collect="always" />
|
||||||
<radialGradient
|
<radialGradient
|
||||||
inkscape:collect="always"
|
r="34.345188"
|
||||||
xlink:href="#linearGradient3144"
|
|
||||||
id="radialGradient4852-6"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
|
||||||
cx="225.26402"
|
|
||||||
cy="672.79736"
|
|
||||||
fx="225.26402"
|
|
||||||
fy="672.79736"
|
fy="672.79736"
|
||||||
r="34.345188" />
|
fx="225.26402"
|
||||||
|
cy="672.79736"
|
||||||
|
cx="225.26402"
|
||||||
|
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="radialGradient3264-9-6"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
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="radialGradient3264-9-6-1"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
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="radialGradient3264-9-6-1-1"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
inkscape:collect="always" />
|
||||||
</defs>
|
</defs>
|
||||||
<sodipodi:namedview
|
<sodipodi:namedview
|
||||||
id="base"
|
id="base"
|
||||||
|
@ -278,17 +278,17 @@
|
||||||
borderopacity="1.0"
|
borderopacity="1.0"
|
||||||
inkscape:pageopacity="0.0"
|
inkscape:pageopacity="0.0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:zoom="15.078125"
|
inkscape:zoom="7.6088565"
|
||||||
inkscape:cx="31.933679"
|
inkscape:cx="33.444373"
|
||||||
inkscape:cy="23.941969"
|
inkscape:cy="30.440063"
|
||||||
inkscape:current-layer="layer1"
|
inkscape:current-layer="layer1"
|
||||||
showgrid="true"
|
showgrid="true"
|
||||||
inkscape:document-units="px"
|
inkscape:document-units="px"
|
||||||
inkscape:grid-bbox="true"
|
inkscape:grid-bbox="true"
|
||||||
inkscape:window-width="1920"
|
inkscape:window-width="1366"
|
||||||
inkscape:window-height="1161"
|
inkscape:window-height="702"
|
||||||
inkscape:window-x="0"
|
inkscape:window-x="0"
|
||||||
inkscape:window-y="0"
|
inkscape:window-y="27"
|
||||||
inkscape:window-maximized="1" />
|
inkscape:window-maximized="1" />
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata2923">
|
id="metadata2923">
|
||||||
|
@ -298,7 +298,7 @@
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
<dc:title />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -347,7 +347,7 @@
|
||||||
inkscape:export-xdpi="7.2934141"
|
inkscape:export-xdpi="7.2934141"
|
||||||
inkscape:export-ydpi="7.2934141" />
|
inkscape:export-ydpi="7.2934141" />
|
||||||
<path
|
<path
|
||||||
style="display:inline;overflow:visible;visibility:visible;fill:#0079ff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.84700072;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
style="display:inline;overflow:visible;visibility:visible;fill:#ffa100;fill-opacity:1;fill-rule:nonzero;stroke:#665123;stroke-width:0.84700072;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||||
d="M 58.555579,11.316021 22.307841,5.7938518 4.8450848,37.848895 40.042117,59.66807 41.293589,54.194078 11.233991,36.399782 24.986028,10.157803 57.773488,15.36902 Z"
|
d="M 58.555579,11.316021 22.307841,5.7938518 4.8450848,37.848895 40.042117,59.66807 41.293589,54.194078 11.233991,36.399782 24.986028,10.157803 57.773488,15.36902 Z"
|
||||||
id="path4425-9"
|
id="path4425-9"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
|
@ -359,88 +359,132 @@
|
||||||
inkscape:export-xdpi="7.2934141"
|
inkscape:export-xdpi="7.2934141"
|
||||||
inkscape:export-ydpi="7.2934141" />
|
inkscape:export-ydpi="7.2934141" />
|
||||||
<g
|
<g
|
||||||
id="g3185"
|
id="g5734-5"
|
||||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,40.882773,131.25331)"
|
transform="translate(-14.861945,44.831094)">
|
||||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
|
||||||
inkscape:export-xdpi="7.2934141"
|
|
||||||
inkscape:export-ydpi="7.2934141">
|
|
||||||
<circle
|
<circle
|
||||||
id="path3187"
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
style="display:inline;overflow:visible;visibility:visible;fill:#fcaf3e;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:5.79999971;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
id="path3187-6-5-7-2-9-9"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-54.289261"
|
||||||
|
cy="-16.205133"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="7.0721951"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
|
id="g3154-5-3-9">
|
||||||
|
<circle
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path2162-1-0-7"
|
||||||
cx="197.14285"
|
cx="197.14285"
|
||||||
cy="655.2193"
|
cy="655.2193"
|
||||||
r="48.57143" />
|
r="48.57143" />
|
||||||
<ellipse
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient3264-9);fill-opacity:1;stroke:none"
|
||||||
|
id="path3134-2-9-0"
|
||||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
id="path3189"
|
|
||||||
style="fill:url(#radialGradient4852);fill-opacity:1;stroke:none"
|
|
||||||
cx="225.26402"
|
cx="225.26402"
|
||||||
cy="672.79736"
|
cy="672.79736"
|
||||||
rx="34.345188"
|
rx="34.345188"
|
||||||
ry="23.991123" />
|
ry="23.991123" />
|
||||||
</g>
|
</g>
|
||||||
|
</g>
|
||||||
<g
|
<g
|
||||||
id="g3185-6"
|
id="g5734-5-3"
|
||||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,91.042198,108.25459)"
|
transform="translate(-44.827027,25.163146)">
|
||||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
|
||||||
inkscape:export-xdpi="7.2934141"
|
|
||||||
inkscape:export-ydpi="7.2934141">
|
|
||||||
<circle
|
<circle
|
||||||
id="path3187-2"
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
style="display:inline;overflow:visible;visibility:visible;fill:#fcaf3e;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:5.79999971;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
id="path3187-6-5-7-2-9-9-7"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-54.289261"
|
||||||
|
cy="-16.205133"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="7.0721951"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
|
id="g3154-5-3-9-9">
|
||||||
|
<circle
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path2162-1-0-7-4"
|
||||||
cx="197.14285"
|
cx="197.14285"
|
||||||
cy="655.2193"
|
cy="655.2193"
|
||||||
r="48.57143" />
|
r="48.57143" />
|
||||||
<ellipse
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient3264-9-6);fill-opacity:1;stroke:none"
|
||||||
|
id="path3134-2-9-0-4"
|
||||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
id="path3189-5"
|
|
||||||
style="fill:url(#radialGradient4889);fill-opacity:1;stroke:none"
|
|
||||||
cx="225.26402"
|
cx="225.26402"
|
||||||
cy="672.79736"
|
cy="672.79736"
|
||||||
rx="34.345188"
|
rx="34.345188"
|
||||||
ry="23.991123" />
|
ry="23.991123" />
|
||||||
</g>
|
</g>
|
||||||
|
</g>
|
||||||
<g
|
<g
|
||||||
id="g3185-66"
|
id="g5734-5-3-5"
|
||||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,73.763959,150.60875)"
|
transform="translate(-30.895892,-3.6191024)">
|
||||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
|
||||||
inkscape:export-xdpi="7.2934141"
|
|
||||||
inkscape:export-ydpi="7.2934141">
|
|
||||||
<circle
|
<circle
|
||||||
id="path3187-5"
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
style="display:inline;overflow:visible;visibility:visible;fill:#fcaf3e;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:5.79999971;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
id="path3187-6-5-7-2-9-9-7-8"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-54.289261"
|
||||||
|
cy="-16.205133"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="7.0721951"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
|
id="g3154-5-3-9-9-6">
|
||||||
|
<circle
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path2162-1-0-7-4-7"
|
||||||
cx="197.14285"
|
cx="197.14285"
|
||||||
cy="655.2193"
|
cy="655.2193"
|
||||||
r="48.57143" />
|
r="48.57143" />
|
||||||
<ellipse
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient3264-9-6-1);fill-opacity:1;stroke:none"
|
||||||
|
id="path3134-2-9-0-4-8"
|
||||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
id="path3189-0"
|
|
||||||
style="fill:url(#radialGradient4929);fill-opacity:1;stroke:none"
|
|
||||||
cx="225.26402"
|
cx="225.26402"
|
||||||
cy="672.79736"
|
cy="672.79736"
|
||||||
rx="34.345188"
|
rx="34.345188"
|
||||||
ry="23.991123" />
|
ry="23.991123" />
|
||||||
</g>
|
</g>
|
||||||
|
</g>
|
||||||
<g
|
<g
|
||||||
id="g3185-7"
|
id="g5734-5-3-5-2"
|
||||||
transform="matrix(-0.14592237,0.00572413,-0.00572413,-0.14592237,55.133656,102.30859)"
|
transform="translate(3.2748139,0.19224543)">
|
||||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/circle.png"
|
|
||||||
inkscape:export-xdpi="7.2934141"
|
|
||||||
inkscape:export-ydpi="7.2934141">
|
|
||||||
<circle
|
<circle
|
||||||
r="48.57143"
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
cy="655.2193"
|
id="path3187-6-5-7-2-9-9-7-8-5"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-54.289261"
|
||||||
|
cy="-16.205133"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
inkscape:export-ydpi="7.0721951"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
|
id="g3154-5-3-9-9-6-0">
|
||||||
|
<circle
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path2162-1-0-7-4-7-5"
|
||||||
cx="197.14285"
|
cx="197.14285"
|
||||||
id="path3187-0"
|
cy="655.2193"
|
||||||
style="display:inline;overflow:visible;visibility:visible;fill:#fcaf3e;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:5.79999971;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
r="48.57143" />
|
||||||
<ellipse
|
<ellipse
|
||||||
ry="23.991123"
|
style="fill:url(#radialGradient3264-9-6-1-1);fill-opacity:1;stroke:none"
|
||||||
rx="34.345188"
|
id="path3134-2-9-0-4-8-5"
|
||||||
cy="672.79736"
|
|
||||||
cx="225.26402"
|
|
||||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
id="path3189-1"
|
cx="225.26402"
|
||||||
style="fill:url(#radialGradient4852-6);fill-opacity:1;stroke:none" />
|
cy="672.79736"
|
||||||
|
rx="34.345188"
|
||||||
|
ry="23.991123" />
|
||||||
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 18 KiB |
|
@ -992,17 +992,6 @@
|
||||||
id="radialGradient4570"
|
id="radialGradient4570"
|
||||||
xlink:href="#linearGradient3362"
|
xlink:href="#linearGradient3362"
|
||||||
inkscape:collect="always" />
|
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="radialGradient3264"
|
|
||||||
xlink:href="#linearGradient3144"
|
|
||||||
inkscape:collect="always" />
|
|
||||||
<radialGradient
|
<radialGradient
|
||||||
r="34.345188"
|
r="34.345188"
|
||||||
fy="672.79736"
|
fy="672.79736"
|
||||||
|
@ -1047,6 +1036,72 @@
|
||||||
id="radialGradient3264-4"
|
id="radialGradient3264-4"
|
||||||
xlink:href="#linearGradient3144"
|
xlink:href="#linearGradient3144"
|
||||||
inkscape:collect="always" />
|
inkscape:collect="always" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
id="radialGradient5582"
|
||||||
|
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"
|
||||||
|
id="radialGradient5582-5"
|
||||||
|
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"
|
||||||
|
id="radialGradient5582-5-8"
|
||||||
|
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"
|
||||||
|
id="radialGradient5582-5-8-7"
|
||||||
|
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"
|
||||||
|
id="radialGradient5582-5-8-1"
|
||||||
|
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
|
||||||
|
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-7-3"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
inkscape:collect="always" />
|
||||||
</defs>
|
</defs>
|
||||||
<sodipodi:namedview
|
<sodipodi:namedview
|
||||||
id="base"
|
id="base"
|
||||||
|
@ -1056,8 +1111,8 @@
|
||||||
inkscape:pageopacity="0.0"
|
inkscape:pageopacity="0.0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:zoom="7.90625"
|
inkscape:zoom="7.90625"
|
||||||
inkscape:cx="32"
|
inkscape:cx="32.252964"
|
||||||
inkscape:cy="32"
|
inkscape:cy="31.810277"
|
||||||
inkscape:current-layer="layer1"
|
inkscape:current-layer="layer1"
|
||||||
showgrid="true"
|
showgrid="true"
|
||||||
inkscape:document-units="px"
|
inkscape:document-units="px"
|
||||||
|
@ -1075,7 +1130,7 @@
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
<dc:title />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -1084,11 +1139,11 @@
|
||||||
inkscape:label="Layer 1"
|
inkscape:label="Layer 1"
|
||||||
inkscape:groupmode="layer">
|
inkscape:groupmode="layer">
|
||||||
<g
|
<g
|
||||||
id="g5734"
|
id="g5734-1-7"
|
||||||
transform="translate(-29.640304,1.0762083)">
|
transform="translate(-22.785725,1.8475032)">
|
||||||
<circle
|
<circle
|
||||||
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
id="path3187-6-5-7-2-9"
|
id="path3187-6-5-7-2-9-3-6"
|
||||||
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
cx="-54.289261"
|
cx="-54.289261"
|
||||||
cy="-16.205133"
|
cy="-16.205133"
|
||||||
|
@ -1098,16 +1153,16 @@
|
||||||
inkscape:export-xdpi="7.0721951"
|
inkscape:export-xdpi="7.0721951"
|
||||||
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
transform="matrix(-0.14037891,0.00375861,-0.00375861,-0.14037891,83.443368,103.46311)"
|
||||||
id="g3154-5-3">
|
id="g3154-5-3-4-1">
|
||||||
<circle
|
<circle
|
||||||
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="path2162-1-0"
|
id="path2162-1-0-4-1"
|
||||||
cx="197.14285"
|
cx="197.14285"
|
||||||
cy="655.2193"
|
cy="655.2193"
|
||||||
r="48.57143" />
|
r="48.57143" />
|
||||||
<ellipse
|
<ellipse
|
||||||
style="fill:url(#radialGradient3264);fill-opacity:1;stroke:none"
|
style="fill:url(#radialGradient3264-7-3);fill-opacity:1;stroke:none"
|
||||||
id="path3134-2-9"
|
id="path3134-2-9-3-1"
|
||||||
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
cx="225.26402"
|
cx="225.26402"
|
||||||
cy="672.79736"
|
cy="672.79736"
|
||||||
|
@ -1243,5 +1298,159 @@
|
||||||
ry="23.991123" />
|
ry="23.991123" />
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
|
<g
|
||||||
|
id="g4325">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-30.710905"
|
||||||
|
cy="-15.977517"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
id="g5578"
|
||||||
|
transform="matrix(0.62053126,0,0,1.1370902,41.575125,0.83996784)"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;visibility:visible;fill:#ff2600;fill-opacity:1;fill-rule:nonzero;stroke:#731200;stroke-width:2.19132471;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none">
|
||||||
|
<circle
|
||||||
|
r="18.571428"
|
||||||
|
transform="matrix(0.58699307,0,0,0.32171623,-48.705235,0.37476683)"
|
||||||
|
cy="34.571426"
|
||||||
|
cx="53.214287"
|
||||||
|
id="path3696-4"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#ffbf00;fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<ellipse
|
||||||
|
ry="23.991123"
|
||||||
|
rx="34.345188"
|
||||||
|
cy="672.79736"
|
||||||
|
cx="225.26402"
|
||||||
|
transform="matrix(-0.16409395,0.06015817,-0.11023662,-0.08954912,91.030266,56.104458)"
|
||||||
|
id="path3189"
|
||||||
|
style="fill:url(#radialGradient5582);fill-opacity:1;stroke:none" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="translate(11.219611,11.985285)"
|
||||||
|
id="g4325-4">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9-1"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-30.710905"
|
||||||
|
cy="-15.977517"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
id="g5578-3"
|
||||||
|
transform="matrix(0.62053126,0,0,1.1370902,41.575125,0.83996784)"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;visibility:visible;fill:#ff2600;fill-opacity:1;fill-rule:nonzero;stroke:#731200;stroke-width:2.19132471;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none">
|
||||||
|
<circle
|
||||||
|
r="18.571428"
|
||||||
|
transform="matrix(0.58699307,0,0,0.32171623,-48.705235,0.37476683)"
|
||||||
|
cy="34.571426"
|
||||||
|
cx="53.214287"
|
||||||
|
id="path3696-4-2"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#ffbf00;fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<ellipse
|
||||||
|
ry="23.991123"
|
||||||
|
rx="34.345188"
|
||||||
|
cy="672.79736"
|
||||||
|
cx="225.26402"
|
||||||
|
transform="matrix(-0.16409395,0.06015817,-0.11023662,-0.08954912,91.030266,56.104458)"
|
||||||
|
id="path3189-7"
|
||||||
|
style="fill:url(#radialGradient5582-5);fill-opacity:1;stroke:none" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="translate(-21.918729,22.736275)"
|
||||||
|
id="g4325-4-0">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9-1-2"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-30.710905"
|
||||||
|
cy="-15.977517"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
id="g5578-3-9"
|
||||||
|
transform="matrix(0.62053126,0,0,1.1370902,41.575125,0.83996784)"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;visibility:visible;fill:#ff2600;fill-opacity:1;fill-rule:nonzero;stroke:#731200;stroke-width:2.19132471;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none">
|
||||||
|
<circle
|
||||||
|
r="18.571428"
|
||||||
|
transform="matrix(0.58699307,0,0,0.32171623,-48.705235,0.37476683)"
|
||||||
|
cy="34.571426"
|
||||||
|
cx="53.214287"
|
||||||
|
id="path3696-4-2-5"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#ffbf00;fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<ellipse
|
||||||
|
ry="23.991123"
|
||||||
|
rx="34.345188"
|
||||||
|
cy="672.79736"
|
||||||
|
cx="225.26402"
|
||||||
|
transform="matrix(-0.16409395,0.06015817,-0.11023662,-0.08954912,91.030266,56.104458)"
|
||||||
|
id="path3189-7-8"
|
||||||
|
style="fill:url(#radialGradient5582-5-8);fill-opacity:1;stroke:none" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="translate(-7.1203101,35.258013)"
|
||||||
|
id="g4325-4-0-3">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9-1-2-1"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-30.710905"
|
||||||
|
cy="-15.977517"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
id="g5578-3-9-8"
|
||||||
|
transform="matrix(0.62053126,0,0,1.1370902,41.575125,0.83996784)"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;visibility:visible;fill:#ff2600;fill-opacity:1;fill-rule:nonzero;stroke:#731200;stroke-width:2.19132471;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none">
|
||||||
|
<circle
|
||||||
|
r="18.571428"
|
||||||
|
transform="matrix(0.58699307,0,0,0.32171623,-48.705235,0.37476683)"
|
||||||
|
cy="34.571426"
|
||||||
|
cx="53.214287"
|
||||||
|
id="path3696-4-2-5-4"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#ffbf00;fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<ellipse
|
||||||
|
ry="23.991123"
|
||||||
|
rx="34.345188"
|
||||||
|
cy="672.79736"
|
||||||
|
cx="225.26402"
|
||||||
|
transform="matrix(-0.16409395,0.06015817,-0.11023662,-0.08954912,91.030266,56.104458)"
|
||||||
|
id="path3189-7-8-2"
|
||||||
|
style="fill:url(#radialGradient5582-5-8-7);fill-opacity:1;stroke:none" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="translate(-22.045211,40.317302)"
|
||||||
|
id="g4325-4-0-6">
|
||||||
|
<circle
|
||||||
|
transform="matrix(-0.9992315,0.03919708,-0.03919708,-0.9992315,0,0)"
|
||||||
|
id="path3187-6-5-7-2-9-1-2-4"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0.58431373;fill-rule:nonzero;stroke:none;stroke-width:5.79999971;marker:none;enable-background:accumulate"
|
||||||
|
cx="-30.710905"
|
||||||
|
cy="-15.977517"
|
||||||
|
r="7.0931091" />
|
||||||
|
<g
|
||||||
|
id="g5578-3-9-9"
|
||||||
|
transform="matrix(0.62053126,0,0,1.1370902,41.575125,0.83996784)"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;visibility:visible;fill:#ff2600;fill-opacity:1;fill-rule:nonzero;stroke:#731200;stroke-width:2.19132471;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none">
|
||||||
|
<circle
|
||||||
|
r="18.571428"
|
||||||
|
transform="matrix(0.58699307,0,0,0.32171623,-48.705235,0.37476683)"
|
||||||
|
cy="34.571426"
|
||||||
|
cx="53.214287"
|
||||||
|
id="path3696-4-2-5-6"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#ffbf00;fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<ellipse
|
||||||
|
ry="23.991123"
|
||||||
|
rx="34.345188"
|
||||||
|
cy="672.79736"
|
||||||
|
cx="225.26402"
|
||||||
|
transform="matrix(-0.16409395,0.06015817,-0.11023662,-0.08954912,91.030266,56.104458)"
|
||||||
|
id="path3189-7-8-9"
|
||||||
|
style="fill:url(#radialGradient5582-5-8-1);fill-opacity:1;stroke:none" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 50 KiB |
812
WorkFeature/Icons/WF_projectedPoint.svg
Normal file
|
@ -0,0 +1,812 @@
|
||||||
|
<?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="svg2816"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
|
sodipodi:docname="WF_projectedPoint.svg"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||||
|
inkscape:export-filename="/home/yorik/PartDesign_Pocket.png"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90">
|
||||||
|
<defs
|
||||||
|
id="defs2818">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3669">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#001ccc;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3671" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#00afff;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3673" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3602">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff2600;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3604" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff5f00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3606" />
|
||||||
|
</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="perspective2824" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3618"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3602-7"
|
||||||
|
id="linearGradient3608-5"
|
||||||
|
x1="3.909091"
|
||||||
|
y1="14.363636"
|
||||||
|
x2="24.81818"
|
||||||
|
y2="14.363636"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3602-7">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#c51900;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3604-1" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff5f00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3606-3" />
|
||||||
|
</linearGradient>
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3677"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3602-5"
|
||||||
|
id="linearGradient3608-1"
|
||||||
|
x1="3.909091"
|
||||||
|
y1="14.363636"
|
||||||
|
x2="24.81818"
|
||||||
|
y2="14.363636"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3602-5">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#c51900;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3604-9" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff5f00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3606-9" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
y2="14.363636"
|
||||||
|
x2="24.81818"
|
||||||
|
y1="14.363636"
|
||||||
|
x1="3.909091"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3686"
|
||||||
|
xlink:href="#linearGradient3602-5"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3717"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3602-58"
|
||||||
|
id="linearGradient3608-8"
|
||||||
|
x1="3.909091"
|
||||||
|
y1="14.363636"
|
||||||
|
x2="24.81818"
|
||||||
|
y2="14.363636"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3602-58">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#d82b1e;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3604-2" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#840000;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3606-2" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
y2="14.363636"
|
||||||
|
x2="24.81818"
|
||||||
|
y1="14.363636"
|
||||||
|
x1="3.909091"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3726"
|
||||||
|
xlink:href="#linearGradient3602-58"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective4410"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective4944"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective4966"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective5009"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective5165"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective7581"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective7606"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective7638"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective7660"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective7704"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective7730"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective7762"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective7783"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective7843"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective7881"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective7932"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective2866"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective2878"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3602-1">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff2600;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3604-8" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff5f00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3606-96" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3602-1"
|
||||||
|
id="linearGradient2875"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="3.909091"
|
||||||
|
y1="14.363636"
|
||||||
|
x2="24.81818"
|
||||||
|
y2="14.363636" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective2885"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3602-1-5">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff2600;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3604-8-3" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff5f00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3606-96-8" />
|
||||||
|
</linearGradient>
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3720"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3602-1-8">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff2600;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3604-8-5" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff5f00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3606-96-2" />
|
||||||
|
</linearGradient>
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3822"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3849"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3879"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective2896"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective2925"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective2925-4"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3726"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3669"
|
||||||
|
id="linearGradient3675"
|
||||||
|
x1="81.451569"
|
||||||
|
y1="14.993487"
|
||||||
|
x2="3.0457773"
|
||||||
|
y2="17.729464"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.073092,0,0,1.5149249,-3.4880263,-14.297954)" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3689"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3669-2">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#af7d00;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3671-7" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffed00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3673-5" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
gradientTransform="matrix(0.73872768,0,0,1.3536788,-2.25,-1.9999999)"
|
||||||
|
y2="1.8468192"
|
||||||
|
x2="48.259949"
|
||||||
|
y1="33.61211"
|
||||||
|
x1="34.290413"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3698"
|
||||||
|
xlink:href="#linearGradient3669-2"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3689-6"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3669-22"
|
||||||
|
id="linearGradient3675-0"
|
||||||
|
x1="34.290413"
|
||||||
|
y1="33.61211"
|
||||||
|
x2="73.185463"
|
||||||
|
y2="31.368526"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.3536788,0,0,0.7441538,0,1.1950203)" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3669-22">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#af7d00;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3671-8" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffed00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3673-4" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
gradientTransform="matrix(0.73872768,0,0,1.3536788,-2.25,-1.9999999)"
|
||||||
|
y2="1.8468192"
|
||||||
|
x2="48.259949"
|
||||||
|
y1="33.61211"
|
||||||
|
x1="34.290413"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3698-3"
|
||||||
|
xlink:href="#linearGradient3669-22"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3689-1"
|
||||||
|
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||||
|
inkscape:vp_z="1 : 0.5 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 0.5 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3669-0">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#af7d00;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3671-9" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffed00;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3673-1" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
gradientTransform="matrix(0.73872768,0,0,1.3536788,-2.25,-1.9999999)"
|
||||||
|
y2="1.8468192"
|
||||||
|
x2="48.259949"
|
||||||
|
y1="33.61211"
|
||||||
|
x1="34.290413"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3698-9"
|
||||||
|
xlink:href="#linearGradient3669-0"
|
||||||
|
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="radialGradient4577"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<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"
|
||||||
|
id="radialGradient5582"
|
||||||
|
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"
|
||||||
|
id="linearGradient4145"
|
||||||
|
x1="131.82286"
|
||||||
|
y1="101.22672"
|
||||||
|
x2="191.3165"
|
||||||
|
y2="101.22672"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<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
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient4135"
|
||||||
|
id="linearGradient5652"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="131.82286"
|
||||||
|
y1="101.22672"
|
||||||
|
x2="191.3165"
|
||||||
|
y2="101.22672" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient4135-0"
|
||||||
|
id="linearGradient5674-5"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="131.82286"
|
||||||
|
y1="101.22672"
|
||||||
|
x2="191.3165"
|
||||||
|
y2="101.22672" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient4135-0">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#0079ff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4137-2" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#0079ff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop4139-4" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
gradientTransform="matrix(0.73872768,0,0,1.3536788,-18.440975,-32.313429)"
|
||||||
|
y2="37.183754"
|
||||||
|
x2="13.421829"
|
||||||
|
y1="32.874828"
|
||||||
|
x1="98.042648"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient4017"
|
||||||
|
xlink:href="#linearGradient3669"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
gradientTransform="matrix(0.73872768,0,0,1.3536788,24.703726,-43.061219)"
|
||||||
|
y2="37.183754"
|
||||||
|
x2="13.421829"
|
||||||
|
y1="32.874828"
|
||||||
|
x1="98.042648"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient4017-6"
|
||||||
|
xlink:href="#linearGradient3669"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
gradientTransform="matrix(0.73872768,0,0,1.3536788,-9.0750444,3.6148984)"
|
||||||
|
y2="37.183754"
|
||||||
|
x2="13.421829"
|
||||||
|
y1="32.874828"
|
||||||
|
x1="98.042648"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient4017-6-0"
|
||||||
|
xlink:href="#linearGradient3669"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
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" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3144"
|
||||||
|
id="radialGradient5582-8"
|
||||||
|
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"
|
||||||
|
id="radialGradient5582-3"
|
||||||
|
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" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="6.5129668"
|
||||||
|
inkscape:cx="24.879924"
|
||||||
|
inkscape:cy="16.944636"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:grid-bbox="true"
|
||||||
|
inkscape:window-width="1265"
|
||||||
|
inkscape:window-height="1087"
|
||||||
|
inkscape:window-x="529"
|
||||||
|
inkscape:window-y="24"
|
||||||
|
inkscape:window-maximized="0" />
|
||||||
|
<metadata
|
||||||
|
id="metadata2821">
|
||||||
|
<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="layer4"
|
||||||
|
inkscape:label="Layer2">
|
||||||
|
<g
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;visibility:visible;fill:url(#linearGradient5674-5);fill-opacity:1;fill-rule:nonzero;stroke:#001833;stroke-width:2.19132471;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||||
|
transform="matrix(-0.03563458,0.35738558,-0.38486089,-0.0404254,80.653631,175.31488)"
|
||||||
|
id="g3618-3">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccc"
|
||||||
|
id="rect3520-1"
|
||||||
|
d="M 131.8509,176.39728 244.39428,74.003665 c 5.58489,-0.0245 7.4488,3.170189 5.85178,5.863995 L 138.73758,182.21743 Z"
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#0079f0;fill-opacity:1;fill-rule:evenodd;stroke:#001833;stroke-width:1.76347613;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.74117647;marker:none;enable-background:accumulate" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="layer1"
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccc"
|
||||||
|
id="path2887-1-6-3"
|
||||||
|
d="M 33.449727,30.22585 1.5459003,49.073509 -3.3559227,16.669194 33.372795,-0.60715256 Z"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;opacity:0.40700001;fill:url(#linearGradient4017);fill-opacity:1;fill-rule:nonzero;stroke:#00064a;stroke-width:1.80387402;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccc"
|
||||||
|
id="path2887-1-6-3-4"
|
||||||
|
d="M 71.066992,45.733376 33.328651,30.495186 33.340104,-0.83434929 76.517495,-11.354943 Z"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;opacity:0.40700001;fill:url(#linearGradient4017-6);fill-opacity:1;fill-rule:nonzero;stroke:#00064a;stroke-width:1.80387402;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccc"
|
||||||
|
id="path2887-1-6-3-4-4"
|
||||||
|
d="M 70.913452,46.193995 10.911832,85.001836 1.4038126,49.373184 33.372794,29.947279 Z"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;opacity:0.40700001;fill:url(#linearGradient4017-6-0);fill-opacity:1;fill-rule:nonzero;stroke:#00064a;stroke-width:1.80387402;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer3"
|
||||||
|
inkscape:label="Layer0">
|
||||||
|
<g
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;visibility:visible;fill:#ff2600;fill-opacity:1;fill-rule:nonzero;stroke:#731200;stroke-width:2.19132471;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||||
|
transform="matrix(0.51710938,0,0,0.94757516,48.15418,44.93522)"
|
||||||
|
id="g5578">
|
||||||
|
<circle
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#ffbf00;fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||||
|
id="path3696-4"
|
||||||
|
cx="53.214287"
|
||||||
|
cy="34.571426"
|
||||||
|
transform="matrix(0.58699307,0,0,0.32171623,-48.705235,0.37476683)"
|
||||||
|
r="18.571428" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient5582);fill-opacity:1;stroke:none"
|
||||||
|
id="path3189"
|
||||||
|
transform="matrix(-0.16409395,0.06015817,-0.11023662,-0.08954912,91.030266,56.104458)"
|
||||||
|
cx="225.26402"
|
||||||
|
cy="672.79736"
|
||||||
|
rx="34.345188"
|
||||||
|
ry="23.991123" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;visibility:visible;fill:#ff2600;fill-opacity:1;fill-rule:nonzero;stroke:#731200;stroke-width:2.19132471;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||||
|
transform="matrix(0.51710938,0,0,0.94757516,62.77224,7.3508928)"
|
||||||
|
id="g5578-8">
|
||||||
|
<circle
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#ffbf00;fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||||
|
id="path3696-4-4"
|
||||||
|
transform="matrix(0.58699307,0,0,0.32171623,-48.705235,0.37476683)"
|
||||||
|
cx="53.214287"
|
||||||
|
cy="34.571426"
|
||||||
|
r="18.571428" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient5582-8);fill-opacity:1;stroke:none"
|
||||||
|
id="path3189-5"
|
||||||
|
transform="matrix(-0.16409395,0.06015817,-0.11023662,-0.08954912,91.030266,56.104458)"
|
||||||
|
cx="225.26402"
|
||||||
|
cy="672.79736"
|
||||||
|
rx="34.345188"
|
||||||
|
ry="23.991123" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;visibility:visible;fill:#ff2600;fill-opacity:1;fill-rule:nonzero;stroke:#731200;stroke-width:2.19132471;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||||
|
transform="matrix(0.51710938,0,0,0.94757516,28.532852,9.1933705)"
|
||||||
|
id="g5578-7">
|
||||||
|
<circle
|
||||||
|
style="display:inline;overflow:visible;visibility:visible;fill:#ffbf00;fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:1.79201269;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||||
|
id="path3696-4-9"
|
||||||
|
transform="matrix(0.58699307,0,0,0.32171623,-48.705235,0.37476683)"
|
||||||
|
cx="53.214287"
|
||||||
|
cy="34.571426"
|
||||||
|
r="18.571428" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#radialGradient5582-3);fill-opacity:1;stroke:none"
|
||||||
|
id="path3189-1"
|
||||||
|
transform="matrix(-0.16409395,0.06015817,-0.11023662,-0.08954912,91.030266,56.104458)"
|
||||||
|
cx="225.26402"
|
||||||
|
cy="672.79736"
|
||||||
|
rx="34.345188"
|
||||||
|
ry="23.991123" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="czcc"
|
||||||
|
id="path3677"
|
||||||
|
d="m 20.668102,20.76976 c 0,0 2.148341,1.291598 8.217222,5.054803 6.068883,3.763206 9.162169,5.84513 9.162169,5.84513 l 0.141781,0.368467"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#00064a;stroke-width:2.09090662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:2.09090676, 2.09090676;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="czcc"
|
||||||
|
id="path3677-9"
|
||||||
|
d="m 52.774423,18.999455 c 0,0 -2.103735,1.473655 -8.046604,5.767307 -5.942869,4.293652 -8.971927,6.669033 -8.971927,6.669033 L 35.617055,31.8562"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#00064a;stroke-width:2.21010447;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:2.21010455, 2.21010455;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cscc"
|
||||||
|
id="path3677-2"
|
||||||
|
d="m 38.311172,31.541361 c 0,0 0.151371,-6.691865 0.233149,0.448607 l 0.256857,22.427434 -0.01176,0.368467"
|
||||||
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:54.21519089px;font-family:Arial;-inkscape-font-specification:Arial;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#00064a;stroke-width:2.09090662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:2.09090676, 2.09090676;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||||
|
<g
|
||||||
|
id="g3154"
|
||||||
|
transform="matrix(-0.16207011,0.00433939,-0.00433939,-0.16207011,73.02564,136.01783)"
|
||||||
|
inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/line.png"
|
||||||
|
inkscape:export-xdpi="7.0721951"
|
||||||
|
inkscape:export-ydpi="7.0721951">
|
||||||
|
<circle
|
||||||
|
r="48.57143"
|
||||||
|
cy="655.2193"
|
||||||
|
cx="197.14285"
|
||||||
|
id="path2162"
|
||||||
|
style="fill:#0079ff;fill-opacity:1;stroke:#001833;stroke-width:5.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<ellipse
|
||||||
|
ry="23.991123"
|
||||||
|
rx="34.345188"
|
||||||
|
cy="672.79736"
|
||||||
|
cx="225.26402"
|
||||||
|
transform="matrix(0.8513023,-0.5246754,0.5246754,0.8513023,-338.69692,214.19328)"
|
||||||
|
id="path3134"
|
||||||
|
style="fill:url(#radialGradient4272);fill-opacity:1;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 31 KiB |
|
@ -45,8 +45,8 @@ global myTabName
|
||||||
myTabName = "Parametric Curves"
|
myTabName = "Parametric Curves"
|
||||||
global myObjName
|
global myObjName
|
||||||
myObjName = "ParametricCurves"
|
myObjName = "ParametricCurves"
|
||||||
global myRelease
|
global ParametricRelease
|
||||||
myRelease = "2016_11"
|
ParametricRelease = "2017_01"
|
||||||
global f2
|
global f2
|
||||||
def f2(fa,fb,fx,fy,t,i):
|
def f2(fa,fb,fx,fy,t,i):
|
||||||
pass
|
pass
|
||||||
|
@ -788,13 +788,15 @@ class ParametricCurve2D(Parametric):
|
||||||
|
|
||||||
#msgBox = QtGui.QMessageBox()
|
#msgBox = QtGui.QMessageBox()
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
t=0.
|
||||||
|
|
||||||
fa = str(self.la.text())
|
fa = str(self.la.text())
|
||||||
fb = str(self.lb.text())
|
fb = str(self.lb.text())
|
||||||
|
|
||||||
t=0.
|
|
||||||
a=eval(fa)
|
a=eval(fa)
|
||||||
b=eval(fb)
|
b=eval(fb)
|
||||||
|
|
||||||
|
def iterate():
|
||||||
if hasattr(a, '__iter__') and hasattr(b, '__iter__'):
|
if hasattr(a, '__iter__') and hasattr(b, '__iter__'):
|
||||||
for m_a in a:
|
for m_a in a:
|
||||||
for m_b in b:
|
for m_b in b:
|
||||||
|
@ -820,6 +822,21 @@ class ParametricCurve2D(Parametric):
|
||||||
print "b=" + str(b)
|
print "b=" + str(b)
|
||||||
self.draw_par_function(a, b)
|
self.draw_par_function(a, b)
|
||||||
|
|
||||||
|
oxs = eval(str(self.x_ref.text()))
|
||||||
|
oys = eval(str(self.y_ref.text()))
|
||||||
|
ozs = eval(str(self.z_ref.text()))
|
||||||
|
if hasattr(oxs, '__iter__'):
|
||||||
|
for m_ox, m_oy, m_oz in zip(oxs, oys, ozs):
|
||||||
|
self.ox = float(m_ox)
|
||||||
|
self.oy = float(m_oy)
|
||||||
|
self.oz = float(m_oz)
|
||||||
|
iterate()
|
||||||
|
else:
|
||||||
|
self.ox = float(eval(str(self.x_ref.text())))
|
||||||
|
self.oy = float(eval(str(self.y_ref.text())))
|
||||||
|
self.oz = float(eval(str(self.z_ref.text())))
|
||||||
|
iterate()
|
||||||
|
|
||||||
|
|
||||||
def draw_par_function(self,fa ,fb):
|
def draw_par_function(self,fa ,fb):
|
||||||
if self.debug != 0:
|
if self.debug != 0:
|
||||||
|
@ -832,9 +849,7 @@ class ParametricCurve2D(Parametric):
|
||||||
intt = float(eval(str(self.ltstep.text())))
|
intt = float(eval(str(self.ltstep.text())))
|
||||||
#fz = float(eval(str(self.lz.text())))
|
#fz = float(eval(str(self.lz.text())))
|
||||||
|
|
||||||
ox = float(eval(str(self.x_ref.text())))
|
ox, oy, oz = self.ox, self.oy, self.oz
|
||||||
oy = float(eval(str(self.y_ref.text())))
|
|
||||||
oz = float(eval(str(self.z_ref.text())))
|
|
||||||
|
|
||||||
d = (tf + intt -t)/intt
|
d = (tf + intt -t)/intt
|
||||||
dmax = int(d)
|
dmax = int(d)
|
||||||
|
@ -848,9 +863,9 @@ class ParametricCurve2D(Parametric):
|
||||||
print "x=" + str(fx)
|
print "x=" + str(fx)
|
||||||
print "y=" + str(fy)
|
print "y=" + str(fy)
|
||||||
print "Ref Point :"
|
print "Ref Point :"
|
||||||
print "ox=" + str(ox)
|
print "x_ref=" + str(ox)
|
||||||
print "oy=" + str(oy)
|
print "y_ref=" + str(oy)
|
||||||
print "oz=" + str(oz)
|
print "z_ref=" + str(oz)
|
||||||
|
|
||||||
code = """
|
code = """
|
||||||
def f2(fa,fb,fx,fy,t,i,msgBox):
|
def f2(fa,fb,fx,fy,t,i,msgBox):
|
||||||
|
@ -1261,6 +1276,7 @@ class ParametricCurve3D(Parametric):
|
||||||
print "x=" + str(fx)
|
print "x=" + str(fx)
|
||||||
print "y=" + str(fy)
|
print "y=" + str(fy)
|
||||||
print "z=" + str(fz)
|
print "z=" + str(fz)
|
||||||
|
print "Ref Point :"
|
||||||
print "x_ref=" + str(ox)
|
print "x_ref=" + str(ox)
|
||||||
print "y_ref=" + str(oy)
|
print "y_ref=" + str(oy)
|
||||||
print "z_ref=" + str(oz)
|
print "z_ref=" + str(oz)
|
||||||
|
@ -1960,6 +1976,8 @@ class SurfaceEvents(DefineAndConnectEvents):
|
||||||
}
|
}
|
||||||
self.connections_for_return_pressed = {}
|
self.connections_for_return_pressed = {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
class RegressionCurve2DEvents(DefineAndConnectEvents):
|
class RegressionCurve2DEvents(DefineAndConnectEvents):
|
||||||
def __init__(self,ui):
|
def __init__(self,ui):
|
||||||
|
@ -2110,6 +2128,16 @@ class ParametricTab():
|
||||||
self.ui.setupUi(self.m_dialog)
|
self.ui.setupUi(self.m_dialog)
|
||||||
self.m_tab.setCurrentIndex(3)
|
self.m_tab.setCurrentIndex(3)
|
||||||
|
|
||||||
|
#----------------------------------------------------------------
|
||||||
|
self.connections_for_button_clicked = {
|
||||||
|
"button_quit" : "quit_clicked",
|
||||||
|
}
|
||||||
|
|
||||||
|
for m_key, m_val in self.connections_for_button_clicked.items():
|
||||||
|
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)))
|
||||||
|
|
||||||
# Create a Regression 2D Curve object and connect
|
# Create a Regression 2D Curve object and connect
|
||||||
self.reg_events2D = RegressionCurve2DEvents(self.ui)
|
self.reg_events2D = RegressionCurve2DEvents(self.ui)
|
||||||
# Create a Parametric 2D Curve object and connect
|
# Create a Parametric 2D Curve object and connect
|
||||||
|
@ -2119,6 +2147,11 @@ class ParametricTab():
|
||||||
# Create a Surface object and connect
|
# Create a Surface object and connect
|
||||||
self.surface = SurfaceEvents(self.ui)
|
self.surface = SurfaceEvents(self.ui)
|
||||||
|
|
||||||
|
|
||||||
|
m_text=str(ParametricRelease)
|
||||||
|
self.ui.label_release.setText(QtGui.QApplication.translate("Form", m_text, None, QtGui.QApplication.UnicodeUTF8))
|
||||||
|
|
||||||
|
#----------------------------------------------------------------
|
||||||
if self.movable:
|
if self.movable:
|
||||||
t=FreeCADGui.getMainWindow()
|
t=FreeCADGui.getMainWindow()
|
||||||
wf = t.findChild(QtGui.QDockWidget, str(self.objname))
|
wf = t.findChild(QtGui.QDockWidget, str(self.objname))
|
||||||
|
@ -2131,10 +2164,14 @@ class ParametricTab():
|
||||||
wf.activateWindow()
|
wf.activateWindow()
|
||||||
wf.raise_()
|
wf.raise_()
|
||||||
|
|
||||||
|
QtCore.QObject.connect(self.ui.button_quit, QtCore.SIGNAL ('clicked()'), self.quit_clicked)
|
||||||
|
|
||||||
|
|
||||||
def quit_clicked(self): # quit
|
def quit_clicked(self): # quit
|
||||||
|
print_msg( "quit_clicked !")
|
||||||
if self.movable:
|
if self.movable:
|
||||||
self.dw.close()
|
self.dw.close()
|
||||||
|
self.close()
|
||||||
print_msg( "Close done !")
|
print_msg( "Close done !")
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>396</width>
|
<width>396</width>
|
||||||
<height>610</height>
|
<height>701</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
<iconset>
|
<iconset>
|
||||||
<normaloff>../Icons/WF_wf.svg</normaloff>../Icons/WF_wf.svg</iconset>
|
<normaloff>../Icons/WF_wf.svg</normaloff>../Icons/WF_wf.svg</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_34">
|
<layout class="QGridLayout" name="gridLayout_13">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QScrollArea" name="scrollArea">
|
<widget class="QScrollArea" name="scrollArea">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
|
@ -40,8 +40,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>365</width>
|
<width>376</width>
|
||||||
<height>593</height>
|
<height>642</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_128">
|
<layout class="QGridLayout" name="gridLayout_128">
|
||||||
|
@ -225,7 +225,7 @@
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
<widget class="QTabWidget" name="tabWidget">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>2</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="Point_Tab1_3">
|
<widget class="QWidget" name="Point_Tab1_3">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
|
@ -511,6 +511,95 @@ Be aware that if the plane is not extended enough the intersection Point is stil
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="0">
|
<item row="8" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_59">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="button_points_projection">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Create projected point(s) on the choosen main planes.</p><p>- Select one (or several) Point(s) and/or one (or several) Axis.</p><p>Define the projection plane if needed.</p><p>It can be either</p><p>XY plane,</p><p>YZ plane,</p><p>XZ plane or</p><p>All 3 planes</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Projected Points</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset>
|
||||||
|
<normaloff>../Icons/WF_projectedPoint.svg</normaloff>../Icons/WF_projectedPoint.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>32</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="point_proj_comboBox">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>60</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>The projection plane(s)</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>All</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>XY plane</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>YZ plane</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>XZ plane</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="0">
|
||||||
|
<spacer name="verticalSpacer_19">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>252</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWidget" name="Point_Tab2_3">
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Point 2/3</string>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="toolTip">
|
||||||
|
<string>Create Point(s)</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<item row="0" column="0">
|
||||||
<widget class="QPushButton" name="button_point_line_point">
|
<widget class="QPushButton" name="button_point_line_point">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Point(s)=(Point(s),Line(s)):
|
<string>Point(s)=(Point(s),Line(s)):
|
||||||
|
@ -545,30 +634,7 @@ Be aware that if the plane is not extended enough the intersection Point is stil
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="9" column="0">
|
<item row="1" column="0">
|
||||||
<spacer name="verticalSpacer_19">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>252</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="Point_Tab2_3">
|
|
||||||
<attribute name="title">
|
|
||||||
<string>Point 2/3</string>
|
|
||||||
</attribute>
|
|
||||||
<attribute name="toolTip">
|
|
||||||
<string>Create Point(s)</string>
|
|
||||||
</attribute>
|
|
||||||
<layout class="QGridLayout" name="gridLayout_13">
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QPushButton" name="button_twolines_point">
|
<widget class="QPushButton" name="button_twolines_point">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Point(s)=(Line(s),Line(s)):
|
<string>Point(s)=(Line(s),Line(s)):
|
||||||
|
@ -598,7 +664,7 @@ The Vector AB perpendicular to the first and second Line.
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="2" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_47">
|
<layout class="QHBoxLayout" name="horizontalLayout_47">
|
||||||
<property name="sizeConstraint">
|
<property name="sizeConstraint">
|
||||||
<enum>QLayout::SetFixedSize</enum>
|
<enum>QLayout::SetFixedSize</enum>
|
||||||
|
@ -666,7 +732,7 @@ respecting to the choosen reference starting point.</string>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="3" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_48">
|
<layout class="QHBoxLayout" name="horizontalLayout_48">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="button_distPoint">
|
<widget class="QPushButton" name="button_distPoint">
|
||||||
|
@ -767,7 +833,7 @@ Can be negative for the reverse direction!</string>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="4" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_49">
|
<layout class="QHBoxLayout" name="horizontalLayout_49">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="button_cut_wire_point">
|
<widget class="QPushButton" name="button_cut_wire_point">
|
||||||
|
@ -833,7 +899,7 @@ An object must also be seleted but before any Wire to cut all his edges! </strin
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="5" column="0">
|
||||||
<widget class="QRadioButton" name="button_click_for_point">
|
<widget class="QRadioButton" name="button_click_for_point">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Create a set of Points on a Plane perpendicular to the view at location of mouse clicks.
|
<string>Create a set of Points on a Plane perpendicular to the view at location of mouse clicks.
|
||||||
|
@ -862,7 +928,7 @@ MB2 and MB3 can still be used for view zoom and view rotation.
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0">
|
<item row="6" column="0">
|
||||||
<widget class="QPushButton" name="button_object_base_point">
|
<widget class="QPushButton" name="button_object_base_point">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Create Base Point of all selected Object(s).</string>
|
<string>Create Base Point of all selected Object(s).</string>
|
||||||
|
@ -882,7 +948,7 @@ MB2 and MB3 can still be used for view zoom and view rotation.
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0">
|
<item row="7" column="0">
|
||||||
<widget class="QPushButton" name="button_object_center_mass_point">
|
<widget class="QPushButton" name="button_object_center_mass_point">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Create Center of Mass Point of all selected Object(s).</string>
|
<string>Create Center of Mass Point of all selected Object(s).</string>
|
||||||
|
@ -902,7 +968,7 @@ MB2 and MB3 can still be used for view zoom and view rotation.
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="0">
|
<item row="8" column="0">
|
||||||
<widget class="QPushButton" name="button_object_Npoint">
|
<widget class="QPushButton" name="button_object_Npoint">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Create a set of points from selected Objetcs:
|
<string>Create a set of points from selected Objetcs:
|
||||||
|
@ -928,29 +994,6 @@ MB2 and MB3 can still be used for view zoom and view rotation.
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="0">
|
|
||||||
<widget class="QPushButton" name="button_point_to_sketch">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Transform Point(s) in Sketch's Point(s) by projection onto the Sketch's Plane:
|
|
||||||
- First select an existing Sketch;
|
|
||||||
- Select as much as Points needed;
|
|
||||||
Then click on this button.</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Point(s) to Sketch</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset>
|
|
||||||
<normaloff>../Icons/WF_2Sketch.svg</normaloff>../Icons/WF_2Sketch.svg</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="iconSize">
|
|
||||||
<size>
|
|
||||||
<width>32</width>
|
|
||||||
<height>32</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="9" column="0">
|
<item row="9" column="0">
|
||||||
<spacer name="verticalSpacer_20">
|
<spacer name="verticalSpacer_20">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
@ -970,7 +1013,7 @@ Then click on this button.</string>
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>Point 3/3</string>
|
<string>Point 3/3</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
<layout class="QGridLayout" name="gridLayout_22">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QPushButton" name="button_points_load">
|
<widget class="QPushButton" name="button_points_load">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
|
@ -1121,6 +1164,29 @@ One (x, y, z) triplet per line seperated by blank.
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="3" column="0">
|
||||||
|
<widget class="QPushButton" name="button_point_to_sketch">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Transform Point(s) in Sketch's Point(s) by projection onto the Sketch's Plane:
|
||||||
|
- First select an existing Sketch;
|
||||||
|
- Select as much as Points needed;
|
||||||
|
Then click on this button.</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Point(s) to Sketch</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset>
|
||||||
|
<normaloff>../Icons/WF_2Sketch.svg</normaloff>../Icons/WF_2Sketch.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>32</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
<spacer name="verticalSpacer_35">
|
<spacer name="verticalSpacer_35">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
|
@ -1151,7 +1217,7 @@ One (x, y, z) triplet per line seperated by blank.
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QTabWidget" name="tabWidget_2">
|
<widget class="QTabWidget" name="tabWidget_2">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>2</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="Axis_Tab1_3">
|
<widget class="QWidget" name="Axis_Tab1_3">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
|
@ -2278,20 +2344,87 @@ MB2 and MB3 can still be used for view zoom and view rotation.</string>
|
||||||
<string>Wire</string>
|
<string>Wire</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QGridLayout" name="gridLayout_7">
|
<layout class="QGridLayout" name="gridLayout_7">
|
||||||
<item row="2" column="0">
|
<item row="0" column="0">
|
||||||
<spacer name="verticalSpacer_3">
|
<widget class="QPushButton" name="button_points_to_polygon">
|
||||||
<property name="orientation">
|
<property name="toolTip">
|
||||||
<enum>Qt::Vertical</enum>
|
<string><html><head/><body><p>Wire=(N Points):</p><p>Create a Polygon (wire) from a set of points.</p><p>- First select several Points (at least 2);</p><p>- Then push this button</p><p><br/></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="text">
|
||||||
|
<string>Make Polygon</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset>
|
||||||
|
<normaloff>../Icons/WF_makePolygon.svg</normaloff>../Icons/WF_makePolygon.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>32</width>
|
||||||
<height>588</height>
|
<height>32</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="button_points_to_convex_2Dpolygon">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Wire=(N Points):</p><p>Create a Convex 2D Polygon (wire) from a set of points.</p><p>The Convex Polygon is the outer limit of all selected Points.</p><p> - First select several Points (at least 3);</p><p> Define the projection plane if needed.</p><p> It can be either</p><p> XY plane,</p><p> YZ plane,</p><p> XZ plane or</p><p> All 3 planes</p><p>- Then push the button.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Convex 2D Polygon</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset>
|
||||||
|
<normaloff>../Icons/WF_convexPolygon.svg</normaloff>../Icons/WF_convexPolygon.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>32</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="point_proj_comboBox_2">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>60</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>The projection plane(s)</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>All</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>XY plane</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>YZ plane</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>XZ plane</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
<widget class="QPushButton" name="button_4points_bezier">
|
<widget class="QPushButton" name="button_4points_bezier">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Bezier Cubic=(4 Points):
|
<string>Bezier Cubic=(4 Points):
|
||||||
|
@ -2314,25 +2447,18 @@ Create a Wire (Bezier Cubic) from 4 selected points.
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QPushButton" name="button_points_to_polygon">
|
<spacer name="verticalSpacer_3">
|
||||||
<property name="toolTip">
|
<property name="orientation">
|
||||||
<string><html><head/><body><p>Wire=(N Points):</p><p>Create a Polygon (wire) from a set of points.</p><p>- First select several Points (at least 2);</p><p>- Then push this button</p><p><br/></p></body></html></string>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="sizeHint" stdset="0">
|
||||||
<string>Make Wire</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset>
|
|
||||||
<normaloff>../Icons/WF_makePolygon.svg</normaloff>../Icons/WF_makePolygon.svg</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="iconSize">
|
|
||||||
<size>
|
<size>
|
||||||
<width>32</width>
|
<width>20</width>
|
||||||
<height>32</height>
|
<height>588</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -2648,10 +2774,7 @@ in "Ori. Pref." TAB</string>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QPushButton" name="button_threepoints_plane">
|
<widget class="QPushButton" name="button_threepoints_plane">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Plane=(3 Points):
|
<string><html><head/><body><p>Plane=(3 Points):</p><p>Create a Plane crossing 3 Points.</p><p> - Select at least 3 Points and/or</p><p> Select at least 2 Line/Edge(s)</p><p>- Second push this button</p></body></html></string>
|
||||||
Create a Plane crossing 3 Points.
|
|
||||||
- First select 3 different points
|
|
||||||
- Second push this button</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Plane=(3 Points)</string>
|
<string>Plane=(3 Points)</string>
|
||||||
|
@ -4184,60 +4307,6 @@ Original code from HighlightDifference.FCMacro
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QGridLayout" name="gridLayout_8">
|
<layout class="QGridLayout" name="gridLayout_8">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="button_rotate_image">
|
|
||||||
<property name="text">
|
|
||||||
<string>Rotate</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="Image_comboBox_axis_rotate">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>60</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="layoutDirection">
|
|
||||||
<enum>Qt::LeftToRight</enum>
|
|
||||||
</property>
|
|
||||||
<property name="currentIndex">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>X</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Y</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Z</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="button_scale_image">
|
<widget class="QPushButton" name="button_scale_image">
|
||||||
|
@ -4371,7 +4440,7 @@ Note that some options are invalid regarding the image's plane.</string>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="1" column="0">
|
||||||
<spacer name="verticalSpacer_4">
|
<spacer name="verticalSpacer_4">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
|
@ -4394,7 +4463,7 @@ Note that some options are invalid regarding the image's plane.</string>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QTabWidget" name="tabWidget_9">
|
<widget class="QTabWidget" name="tabWidget_9">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>2</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="align_tab_2">
|
<widget class="QWidget" name="align_tab_2">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
|
@ -5532,7 +5601,7 @@ NB:
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>Translate</string>
|
<string>Translate</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QGridLayout" name="gridLayout_60">
|
<layout class="QGridLayout" name="gridLayout_20">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QFrame" name="frame_12">
|
<widget class="QFrame" name="frame_12">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
|
@ -5671,8 +5740,66 @@ On the last result the same Sketch is both link to Pad001 but also still to Pad.
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_84">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="ObjTrans_button_reset">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>60</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Reset</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_12">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="ObjTrans_button_apply">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>60</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Apply</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QTabWidget" name="tabWidget_12">
|
<widget class="QTabWidget" name="tabWidget_12">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
|
@ -5705,7 +5832,7 @@ On the last result the same Sketch is both link to Pad001 but also still to Pad.
|
||||||
<property name="flat">
|
<property name="flat">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_113">
|
<layout class="QGridLayout" name="gridLayout_19">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QComboBox" name="ObjTrans_comboBox_start">
|
<widget class="QComboBox" name="ObjTrans_comboBox_start">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
|
@ -5729,8 +5856,11 @@ On the last result the same Sketch is both link to Pad001 but also still to Pad.
|
||||||
<height>16777215</height>
|
<height>16777215</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Choose here your starting Point(s)</p><p>it can be either:</p><p> - The Origin point (0,0,0),</p><p> - The Base point of the selected object(s),</p><p> - The Center point of the selected object(s),</p><p> - One selected Point by mouse</p><p> - One of the extrema of One Segment/Edge</p><p> - A user defined Points<br/></p></body></html></string>
|
||||||
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>3</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeAdjustPolicy">
|
<property name="sizeAdjustPolicy">
|
||||||
<enum>QComboBox::AdjustToContentsOnFirstShow</enum>
|
<enum>QComboBox::AdjustToContentsOnFirstShow</enum>
|
||||||
|
@ -5755,6 +5885,11 @@ On the last result the same Sketch is both link to Pad001 but also still to Pad.
|
||||||
<string>To select</string>
|
<string>To select</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>From Segment</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>To define</string>
|
<string>To define</string>
|
||||||
|
@ -5769,16 +5904,19 @@ On the last result the same Sketch is both link to Pad001 but also still to Pad.
|
||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>50</width>
|
<width>0</width>
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>120</width>
|
<width>100</width>
|
||||||
<height>16777215</height>
|
<height>29</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Once Point(s) or one Segment selected;</p><p>Click this button to activate the selection !</p></body></html></string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Select</string>
|
<string>Select</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -5909,9 +6047,15 @@ On the last result the same Sketch is both link to Pad001 but also still to Pad.
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>End</string>
|
<string>End</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QGridLayout" name="gridLayout_118">
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QGroupBox" name="groupBox_23">
|
<widget class="QGroupBox" name="groupBox_23">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>9</x>
|
||||||
|
<y>9</y>
|
||||||
|
<width>183</width>
|
||||||
|
<height>225</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>150</width>
|
<width>150</width>
|
||||||
|
@ -5924,7 +6068,7 @@ On the last result the same Sketch is both link to Pad001 but also still to Pad.
|
||||||
<property name="flat">
|
<property name="flat">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_119">
|
<layout class="QGridLayout" name="gridLayout_12">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QComboBox" name="ObjTrans_comboBox_end">
|
<widget class="QComboBox" name="ObjTrans_comboBox_end">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
|
@ -5991,18 +6135,27 @@ On the last result the same Sketch is both link to Pad001 but also still to Pad.
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>100</width>
|
<width>0</width>
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>120</width>
|
<width>100</width>
|
||||||
<height>16777215</height>
|
<height>29</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Once Point(s) selected;</p><p>Click this button to activate the selection !</p></body></html></string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Select</string>
|
<string>Select</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -6122,15 +6275,67 @@ On the last result the same Sketch is both link to Pad001 but also still to Pad.
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
<widget class="QWidget" name="tab">
|
||||||
</item>
|
<attribute name="title">
|
||||||
<item row="3" column="0">
|
<string>Seg.</string>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_84">
|
</attribute>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_21">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="ObjTrans_button_reset">
|
<widget class="QSlider" name="ObjTrans_horizontalSlider">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>39</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Once a Segment(s) is selected as starting Point(s),</p><p>This slider define the ending Point(s) by defining the relative distance from the starting Point(s).</p><p>Slider values are : -1000% to 1000%</p><p>100% mean full length of the Segment(s) with one ends as starting point(s)</p><p>-100% mean full length of the Segment(s) by reversing the starting Point(s)</p><p>0% means you do not Translate your selected Object(s)</p><p><br/></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>-1000</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>1000</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="tickPosition">
|
||||||
|
<enum>QSlider::TicksBothSides</enum>
|
||||||
|
</property>
|
||||||
|
<property name="tickInterval">
|
||||||
|
<number>20</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_85">
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="ObjTrans_lineEdit_length_seg">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>40</width>
|
<width>40</width>
|
||||||
|
@ -6143,44 +6348,50 @@ On the last result the same Sketch is both link to Pad001 but also still to Pad.
|
||||||
<height>16777215</height>
|
<height>16777215</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Enter here a more precise value :</p><p>100% mean full length of the Segment(s) with one ends as starting point(s)</p><p>-100% mean full length of the Segment(s) by reversing the starting Point(s)</p><p>Maximum values allowed [-1000, 1000]</p></body></html></string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Reset</string>
|
<string>100.0</string>
|
||||||
|
</property>
|
||||||
|
<property name="maxLength">
|
||||||
|
<number>32769</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer_12">
|
<widget class="QLabel" name="label_length_segment">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>60</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string> (%)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>20</width>
|
||||||
<height>20</height>
|
<height>138</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="ObjTrans_button_apply">
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>60</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Apply</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'WF_ObjParCurve2DEditGui_2016.ui'
|
# Form implementation generated from reading ui file 'WF_ObjParCurve2DEditGui_2016.ui'
|
||||||
#
|
#
|
||||||
# Created: Fri Dec 30 15:42:17 2016
|
# Created: Thu Feb 2 19:33:38 2017
|
||||||
# by: PySide UI code generator 4.11.3
|
# by: PySide UI code generator 4.11.3
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'WF_ObjParCurve3DEditGui_2016.ui'
|
# Form implementation generated from reading ui file 'WF_ObjParCurve3DEditGui_2016.ui'
|
||||||
#
|
#
|
||||||
# Created: Fri Dec 30 15:42:28 2016
|
# Created: Thu Feb 2 19:33:38 2017
|
||||||
# by: PySide UI code generator 4.11.3
|
# by: PySide UI code generator 4.11.3
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'WF_ObjSurfaceEditGui_2016.ui'
|
# Form implementation generated from reading ui file 'WF_ObjSurfaceEditGui_2016.ui'
|
||||||
#
|
#
|
||||||
# Created: Fri Dec 30 15:42:38 2016
|
# Created: Thu Feb 2 19:33:38 2017
|
||||||
# by: PySide UI code generator 4.11.3
|
# by: PySide UI code generator 4.11.3
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
m_list_of_ui=`ls -1 *.ui`
|
||||||
|
|
||||||
m_ui_file=$1
|
for m_ui in ${m_list_of_ui} ; do
|
||||||
|
#m_ui_file=$1
|
||||||
|
m_ui_file=${m_ui}
|
||||||
m_ui_base=`basename ${m_ui_file} .ui`
|
m_ui_base=`basename ${m_ui_file} .ui`
|
||||||
pyuic4 ${m_ui_base}.ui > ${m_ui_base}.py
|
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 ' | sed 's#../icons:#icons:#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
|
mv tmp.py ${m_ui_base}.py
|
||||||
cp ${m_ui_base}.py ../${m_ui_base}.py
|
cp ${m_ui_base}.py ../${m_ui_base}.py
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,7 @@ from WF_ObjRot_2015 import *
|
||||||
from WF_Utils_2015 import *
|
from WF_Utils_2015 import *
|
||||||
|
|
||||||
global myRelease
|
global myRelease
|
||||||
myRelease = "2016_12_30"
|
myRelease = "2017_02_05"
|
||||||
|
|
||||||
|
|
||||||
import time
|
import time
|
||||||
|
@ -169,6 +169,8 @@ m_widthPlane = 10.0
|
||||||
m_extensionPlane = 50.0
|
m_extensionPlane = 50.0
|
||||||
m_extensionAxis = 50.0
|
m_extensionAxis = 50.0
|
||||||
m_attach_point = "Mid"
|
m_attach_point = "Mid"
|
||||||
|
m_projection_plane = "All"
|
||||||
|
m_projection_plane2 = "All"
|
||||||
m_letter = "A"
|
m_letter = "A"
|
||||||
|
|
||||||
m_cut_selectObjects = []
|
m_cut_selectObjects = []
|
||||||
|
@ -4489,7 +4491,6 @@ def plot_points_random():
|
||||||
- Then push the button.
|
- Then push the button.
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg = 1
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
error_msg = """Unable to create random Point(s) :
|
error_msg = """Unable to create random Point(s) :
|
||||||
|
@ -4527,20 +4528,180 @@ def plot_points_random():
|
||||||
Number_of_Points, Point_List = m_sel.get_points(getfrom=["Points"])
|
Number_of_Points, Point_List = m_sel.get_points(getfrom=["Points"])
|
||||||
if msg != 0:
|
if msg != 0:
|
||||||
print_msg("Number_of_Points=" + str(Number_of_Points))
|
print_msg("Number_of_Points=" + str(Number_of_Points))
|
||||||
|
Number_of_Edges, Edge_List = m_sel.get_segments(getfrom=["Segments","Curves"])
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("Number_of_Edges=" + str(Number_of_Edges))
|
||||||
|
|
||||||
m_limit = m_distanceRandomPoints/2
|
m_limit = m_distanceRandomPoints/2
|
||||||
if (Number_of_Points >= 1):
|
if (Number_of_Points >= 1):
|
||||||
m_Point = Point_List[-1]
|
for m_Point in Point_List:
|
||||||
|
#m_Point = Point_List[-1]
|
||||||
|
try :
|
||||||
for m_point_id in range(m_numberRandomPoint):
|
for m_point_id in range(m_numberRandomPoint):
|
||||||
x, y, z = m_distanceRandomPoints* np.random.random_sample((3,)) - m_limit
|
x, y, z = m_distanceRandomPoints* np.random.random_sample((3,)) - m_limit
|
||||||
x -= m_Point.Point.x
|
x += m_Point.Point.x
|
||||||
y -= m_Point.Point.y
|
y += m_Point.Point.y
|
||||||
z -= m_Point.Point.z
|
z += m_Point.Point.z
|
||||||
plot_point(Base.Vector(x, y, z), part, name, str(m_dir))
|
Point_User_Name = plot_point(Base.Vector(x, y, z), part, name, str(m_dir))
|
||||||
|
print_point(Base.Vector(x, y, z),str(Point_User_Name) + result_msg + " at :")
|
||||||
|
except:
|
||||||
|
printError_msg(error_msg)
|
||||||
|
elif (Number_of_Edges >= 1):
|
||||||
|
for m_line in Edge_List:
|
||||||
|
try:
|
||||||
|
if not hasattr(m_line,'discretize'):
|
||||||
|
break
|
||||||
|
m_points = m_line.discretize(m_numberRandomPoint)
|
||||||
|
for m_point in m_points:
|
||||||
|
x, y, z = m_distanceRandomPoints* np.random.random_sample((3,)) - m_limit
|
||||||
|
x += m_point.x
|
||||||
|
y += m_point.y
|
||||||
|
z += m_point.z
|
||||||
|
Point_User_Name = plot_point(Base.Vector(x, y, z), part, name, str(m_dir))
|
||||||
|
print_point(Base.Vector(x, y, z),str(Point_User_Name) + result_msg + " at :")
|
||||||
|
except:
|
||||||
|
printError_msg(error_msg)
|
||||||
else:
|
else:
|
||||||
|
try:
|
||||||
for m_point_id in range(m_numberRandomPoint):
|
for m_point_id in range(m_numberRandomPoint):
|
||||||
x, y, z = m_distanceRandomPoints* np.random.random_sample((3,)) - m_limit
|
x, y, z = m_distanceRandomPoints* np.random.random_sample((3,)) - m_limit
|
||||||
plot_point(Base.Vector(x, y, z), part, name, str(m_dir))
|
Point_User_Name = plot_point(Base.Vector(x, y, z), part, name, str(m_dir))
|
||||||
|
print_point(Base.Vector(x, y, z),str(Point_User_Name) + result_msg + " at :")
|
||||||
|
except:
|
||||||
|
printError_msg(error_msg)
|
||||||
|
|
||||||
|
|
||||||
|
def sel_projection(*argc):
|
||||||
|
""" Projection plane by combo box.
|
||||||
|
Options :
|
||||||
|
All
|
||||||
|
XY plane
|
||||||
|
YZ plane
|
||||||
|
XZ plane
|
||||||
|
"""
|
||||||
|
global m_projection_plane
|
||||||
|
global verbose
|
||||||
|
msg=verbose
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("Projection plane location by combo box !")
|
||||||
|
m_projection_plane = "All"
|
||||||
|
if str(*argc) == "XY plane":
|
||||||
|
m_projection_plane = "XY"
|
||||||
|
if str(*argc) == "YZ plane":
|
||||||
|
m_projection_plane = "YZ"
|
||||||
|
if str(*argc) == "XZ plane":
|
||||||
|
m_projection_plane = "XZ"
|
||||||
|
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("argc is " + str(*argc) + " and Projection plane " + str(m_attach_point) + " selected !")
|
||||||
|
|
||||||
|
|
||||||
|
def plot_projected_points():
|
||||||
|
"""Create projected point(s) on the choosen main planes.
|
||||||
|
- Select one (or several) Point(s) and/or one (or several) Axis.
|
||||||
|
Define the projection plane if needed.
|
||||||
|
It can be either
|
||||||
|
XY plane,
|
||||||
|
YZ plane,
|
||||||
|
XZ plane or
|
||||||
|
All 3 planes
|
||||||
|
"""
|
||||||
|
msg=verbose
|
||||||
|
|
||||||
|
error_msg = """Unable to create projected Point(s) :
|
||||||
|
- Select one (or several) Point(s) and/or one (or several) Axis.
|
||||||
|
Define the projection plane if needed.
|
||||||
|
It can be either
|
||||||
|
XY plane,
|
||||||
|
YZ plane,
|
||||||
|
XZ plane or
|
||||||
|
All 3 planes
|
||||||
|
- Then push the button.
|
||||||
|
"""
|
||||||
|
result_msg = " : projected Point(s) created !"
|
||||||
|
|
||||||
|
createFolders('WorkPoints')
|
||||||
|
m_dir = 'Set'
|
||||||
|
name = "ProjectedPoint"
|
||||||
|
part = "Part::Feature"
|
||||||
|
|
||||||
|
m_actDoc = get_ActiveDocument(info=msg)
|
||||||
|
if m_actDoc == None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
try:
|
||||||
|
m_r = App.ActiveDocument.getObject("WorkPoints").newObject("App::DocumentObjectGroup", str(m_dir))
|
||||||
|
except:
|
||||||
|
printError_msg("Could not Create '"+ str(m_dir) +"' Objects Group!")
|
||||||
|
return None
|
||||||
|
m_dir = m_r.Name
|
||||||
|
|
||||||
|
m_selEx = Gui.Selection.getSelectionEx(m_actDoc.Name)
|
||||||
|
if msg != 0:
|
||||||
|
print_msg(str(m_selEx))
|
||||||
|
m_sel = Selection(m_selEx)
|
||||||
|
if not m_sel :
|
||||||
|
print_msg("Unable to create a Selection Object !")
|
||||||
|
return None
|
||||||
|
if msg != 0:
|
||||||
|
print_msg(str(m_sel))
|
||||||
|
|
||||||
|
try:
|
||||||
|
Number_of_Points, Point_List = m_sel.get_points(getfrom=["Points"])
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("Number_of_Points=" + str(Number_of_Points))
|
||||||
|
Number_of_Edges, Edge_List = m_sel.get_segments(getfrom=["Segments","Curves","Planes","Objects"])
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("Number_of_Edges=" + str(Number_of_Edges))
|
||||||
|
|
||||||
|
my_point_list = []
|
||||||
|
if (Number_of_Edges >= 1):
|
||||||
|
for Selected_Edge in Edge_List:
|
||||||
|
Vector_A = Selected_Edge.valueAt( 0.0 )
|
||||||
|
Vector_B = Selected_Edge.valueAt( Edge_List[0].Length )
|
||||||
|
my_point_list.append(Vector_A)
|
||||||
|
my_point_list.append(Vector_B)
|
||||||
|
|
||||||
|
if (Number_of_Points >= 1):
|
||||||
|
for Selected_Point in Point_List:
|
||||||
|
my_point_list.append(Selected_Point.Point)
|
||||||
|
|
||||||
|
for m_point in my_point_list:
|
||||||
|
x = m_point.x
|
||||||
|
y = m_point.y
|
||||||
|
z = m_point.z
|
||||||
|
if m_projection_plane == "All" or m_projection_plane == "XY":
|
||||||
|
Vector_A = Base.Vector(x, y, 0.0)
|
||||||
|
Vector_B = Base.Vector(x, y, z)
|
||||||
|
Point_User_Name = plot_point(Vector_A, part, name, str(m_dir))
|
||||||
|
print_point(Vector_A,str(Point_User_Name) + result_msg + " at :")
|
||||||
|
Axis_User_Name, axis = plot_axis(Vector_A, Vector_B, part="Part::Feature", name="Axis_ProjectionToXY", grp=str(m_dir))
|
||||||
|
try:
|
||||||
|
Gui.ActiveDocument.getObject(Axis_User_Name).DrawStyle = "Dotted"
|
||||||
|
except:
|
||||||
|
print_msg("Not able to set DrawStyle !")
|
||||||
|
if m_projection_plane == "All" or m_projection_plane == "YZ":
|
||||||
|
Vector_A = Base.Vector(0.0, y, z)
|
||||||
|
Vector_B = Base.Vector(x, y, z)
|
||||||
|
Point_User_Name = plot_point(Vector_A, part, name, str(m_dir))
|
||||||
|
print_point(Vector_A,str(Point_User_Name) + result_msg + " at :")
|
||||||
|
Axis_User_Name, axis = plot_axis(Vector_A, Vector_B, part="Part::Feature", name="Axis_ProjectionToYZ", grp=str(m_dir))
|
||||||
|
try:
|
||||||
|
Gui.ActiveDocument.getObject(Axis_User_Name).DrawStyle = "Dotted"
|
||||||
|
except:
|
||||||
|
print_msg("Not able to set DrawStyle !")
|
||||||
|
if m_projection_plane == "All" or m_projection_plane == "XZ":
|
||||||
|
Vector_A = Base.Vector(x, 0.0, z)
|
||||||
|
Vector_B = Base.Vector(x, y, z)
|
||||||
|
Point_User_Name = plot_point(Vector_A, part, name, str(m_dir))
|
||||||
|
print_point(Vector_A,str(Point_User_Name) + result_msg + " at :")
|
||||||
|
Axis_User_Name, axis = plot_axis(Vector_A, Vector_B, part="Part::Feature", name="Axis_ProjectionToXZ", grp=str(m_dir))
|
||||||
|
try:
|
||||||
|
Gui.ActiveDocument.getObject(Axis_User_Name).DrawStyle = "Dotted"
|
||||||
|
except:
|
||||||
|
print_msg("Not able to set DrawStyle !")
|
||||||
|
except:
|
||||||
|
printError_msg(error_msg)
|
||||||
|
|
||||||
|
|
||||||
def plot_centerObjectAxes():
|
def plot_centerObjectAxes():
|
||||||
|
@ -6648,7 +6809,6 @@ options = {'Edge' : edgeToSketch, 'Vertex' : vertexToSketch, 'Face' : faceToSket
|
||||||
def toSketch():
|
def toSketch():
|
||||||
|
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg =1
|
|
||||||
|
|
||||||
m_actDoc=get_ActiveDocument(info=msg)
|
m_actDoc=get_ActiveDocument(info=msg)
|
||||||
m_selEx = Gui.Selection.getSelectionEx(m_actDoc.Name)
|
m_selEx = Gui.Selection.getSelectionEx(m_actDoc.Name)
|
||||||
|
@ -6667,7 +6827,6 @@ def circle_toSketch():
|
||||||
Then click on this button.
|
Then click on this button.
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg=1
|
|
||||||
m_tolerance=1e-12
|
m_tolerance=1e-12
|
||||||
|
|
||||||
m_actDoc = get_ActiveDocument(info=msg)
|
m_actDoc = get_ActiveDocument(info=msg)
|
||||||
|
@ -7029,7 +7188,8 @@ def plot_linecenterCircle():
|
||||||
centered on the Point, perpendicular to the Axis
|
centered on the Point, perpendicular to the Axis
|
||||||
with the given radius.
|
with the given radius.
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
global m_radiusCircle
|
global m_radiusCircle
|
||||||
createFolders('WorkCircles')
|
createFolders('WorkCircles')
|
||||||
error_msg = "Unable to create a Circle : \nSelect one Edge and one Point only!"
|
error_msg = "Unable to create a Circle : \nSelect one Edge and one Point only!"
|
||||||
|
@ -7069,7 +7229,8 @@ def plot_linepointCircle():
|
||||||
"""Select an Axis and a Point to create a Circle
|
"""Select an Axis and a Point to create a Circle
|
||||||
centered on the Axis and tangenting the Point.
|
centered on the Axis and tangenting the Point.
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkCircles')
|
createFolders('WorkCircles')
|
||||||
error_msg = "Unable to create a Circle : \nSelect one Edge and one Point only!"
|
error_msg = "Unable to create a Circle : \nSelect one Edge and one Point only!"
|
||||||
result_msg = " : Circle tangented to a Point created !"
|
result_msg = " : Circle tangented to a Point created !"
|
||||||
|
@ -7109,7 +7270,8 @@ def plot_linepointCircle():
|
||||||
def plot_3pointsArc():
|
def plot_3pointsArc():
|
||||||
"""Select 3 Points to create an Arc.
|
"""Select 3 Points to create an Arc.
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkArcs')
|
createFolders('WorkArcs')
|
||||||
error_msg = "Unable to create an Arc: \nSelect 3 Points only!"
|
error_msg = "Unable to create an Arc: \nSelect 3 Points only!"
|
||||||
result_msg = " : Arc from 3 points created !"
|
result_msg = " : Arc from 3 points created !"
|
||||||
|
@ -7151,7 +7313,8 @@ def plot_3pointsArc():
|
||||||
def plot_3pointsCircle():
|
def plot_3pointsCircle():
|
||||||
"""Select 3 Points to create a Circle.
|
"""Select 3 Points to create a Circle.
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkCircles')
|
createFolders('WorkCircles')
|
||||||
error_msg = "Unable to create a Circle : \nSelect 3 Points only!"
|
error_msg = "Unable to create a Circle : \nSelect 3 Points only!"
|
||||||
result_msg = " : Circle from 3 points created !"
|
result_msg = " : Circle from 3 points created !"
|
||||||
|
@ -7382,7 +7545,8 @@ def plot_cutCircle():
|
||||||
def plot_3pointsEllipse():
|
def plot_3pointsEllipse():
|
||||||
"""Select a center and 2 Points to create an Ellipse.
|
"""Select a center and 2 Points to create an Ellipse.
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkCircles')
|
createFolders('WorkCircles')
|
||||||
error_msg = "Unable to create a Ellipse : \nSelect one Center and 2 Points only!"
|
error_msg = "Unable to create a Ellipse : \nSelect one Center and 2 Points only!"
|
||||||
result_msg = " : Ellipse from 3 points created !"
|
result_msg = " : Ellipse from 3 points created !"
|
||||||
|
@ -7415,9 +7579,100 @@ def plot_3pointsEllipse():
|
||||||
|
|
||||||
|
|
||||||
def plot_3PointsPlane():
|
def plot_3PointsPlane():
|
||||||
|
""" Plane=(3 Points):
|
||||||
|
Create a Plane crossing 3 Points.
|
||||||
|
- Select at least 3 Points and/or
|
||||||
|
Select at least 2 Line/Edge(s)
|
||||||
|
"""
|
||||||
|
msg=verbose
|
||||||
|
|
||||||
|
error_msg = """Unable to create Plane(s) :
|
||||||
|
Select at least 3 Points and/or
|
||||||
|
Select at least 2 Line/Edge(s) !"""
|
||||||
|
result_msg = " : Plane(s) created !"
|
||||||
|
|
||||||
|
createFolders('WorkPlanes')
|
||||||
|
m_dir = 'Set'
|
||||||
|
name = "WorkPlane"
|
||||||
|
part = "Part::Feature"
|
||||||
|
|
||||||
|
m_actDoc = get_ActiveDocument(info=msg)
|
||||||
|
if m_actDoc == None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
try:
|
||||||
|
m_r = App.ActiveDocument.getObject("WorkPoints").newObject("App::DocumentObjectGroup", str(m_dir))
|
||||||
|
except:
|
||||||
|
printError_msg("Could not Create '"+ str(m_dir) +"' Objects Group!")
|
||||||
|
return None
|
||||||
|
m_dir = m_r.Name
|
||||||
|
|
||||||
|
m_selEx = Gui.Selection.getSelectionEx(m_actDoc.Name)
|
||||||
|
if msg != 0:
|
||||||
|
print_msg(str(m_selEx))
|
||||||
|
m_sel = Selection(m_selEx)
|
||||||
|
if not m_sel :
|
||||||
|
print_msg("Unable to create a Selection Object !")
|
||||||
|
return None
|
||||||
|
if msg != 0:
|
||||||
|
print_msg(str(m_sel))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
Number_of_Points, Point_List = m_sel.get_points(getfrom=["Points","Segments","Curves"])
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("Number_of_Points=" + str(Number_of_Points))
|
||||||
|
|
||||||
|
points = []
|
||||||
|
m_i=0
|
||||||
|
if Number_of_Points < 3 :
|
||||||
|
printError_msg(error_msg)
|
||||||
|
|
||||||
|
for m_i in xrange(0,Number_of_Points,3):
|
||||||
|
if m_i+1 > Number_of_Points or m_i+2 > Number_of_Points:
|
||||||
|
break
|
||||||
|
Point_A = Point_List[m_i+0].Point
|
||||||
|
points.append(Point_A)
|
||||||
|
Point_B = Point_List[m_i+1].Point
|
||||||
|
points.append(Point_B)
|
||||||
|
Point_C = Point_List[m_i+2].Point
|
||||||
|
points.append(Point_C)
|
||||||
|
if msg != 0:
|
||||||
|
print_point(Point_A, msg="Point_A : ")
|
||||||
|
print_point(Point_B, msg="Point_B : ")
|
||||||
|
print_point(Point_C, msg="Point_C : ")
|
||||||
|
|
||||||
|
Vector_Center = meanVectorsPoint(points,info=msg)
|
||||||
|
#Vector_Center = centerBBVectorsPoint(points, info=0)
|
||||||
|
xmax, xmin, ymax, ymin, zmax, zmin = minMaxVectorsLimits(points,info=0)
|
||||||
|
#print_point(Vector_Center, msg="Center of A, B and C : ")
|
||||||
|
|
||||||
|
length = xmax - xmin
|
||||||
|
if (ymax - ymin) > length:
|
||||||
|
length = ymax - ymin
|
||||||
|
if (zmax - zmin) > length:
|
||||||
|
length = zmax - zmin
|
||||||
|
print_msg("length = " +str(length))
|
||||||
|
|
||||||
|
Edge_Vector = Point_B - Point_A
|
||||||
|
#Edge_Length = Edge_Vector.Length
|
||||||
|
Edge_Length = length * 1.5
|
||||||
|
AC_Vector = Point_C - Point_A
|
||||||
|
Plane_Point = Vector_Center
|
||||||
|
Plane_Normal = Edge_Vector.cross( AC_Vector )
|
||||||
|
|
||||||
|
Plane_User_Name, plane = plot_plane(Edge_Length, Edge_Length, Plane_Point, Plane_Normal, part, name, str(m_dir))
|
||||||
|
print_msg(str(Plane_User_Name) + result_msg )
|
||||||
|
except:
|
||||||
|
printError_msg(error_msg)
|
||||||
|
|
||||||
|
|
||||||
|
def plot_3PointsPlane_old():
|
||||||
""" Create a Plane from 3 Points.
|
""" Create a Plane from 3 Points.
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkPlanes')
|
createFolders('WorkPlanes')
|
||||||
error_msg = "Unable to create Plane : \nSelect three points only !"
|
error_msg = "Unable to create Plane : \nSelect three points only !"
|
||||||
result_msg = " : Plane created !"
|
result_msg = " : Plane created !"
|
||||||
|
@ -7474,7 +7729,8 @@ def plot_3PointsPlane():
|
||||||
def plot_2PointsPlane():
|
def plot_2PointsPlane():
|
||||||
""" Create a Plane from 2 Points.
|
""" Create a Plane from 2 Points.
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkPlanes')
|
createFolders('WorkPlanes')
|
||||||
error_msg = "Unable to create Plane : \nSelect two points only !"
|
error_msg = "Unable to create Plane : \nSelect two points only !"
|
||||||
result_msg = " : Plane created !"
|
result_msg = " : Plane created !"
|
||||||
|
@ -7529,7 +7785,6 @@ def plot_NPointsPlane():
|
||||||
- First select several Points (at least 3).
|
- First select several Points (at least 3).
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg=1
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
@ -7618,6 +7873,7 @@ def plot_axisPointPlane():
|
||||||
"""
|
"""
|
||||||
global verbose
|
global verbose
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkPlanes')
|
createFolders('WorkPlanes')
|
||||||
error_msg = "Unable to create Plane : \nSelect one Line and one Point only, \nwith the Point NOT on the Line !"
|
error_msg = "Unable to create Plane : \nSelect one Line and one Point only, \nwith the Point NOT on the Line !"
|
||||||
result_msg = " : Plane created !"
|
result_msg = " : Plane created !"
|
||||||
|
@ -7679,7 +7935,8 @@ def plot_axisPointPlane():
|
||||||
def plot_perpendicularAxisPointPlane():
|
def plot_perpendicularAxisPointPlane():
|
||||||
""" Create a Plane perpendicular to a Line a crossing a Point.
|
""" Create a Plane perpendicular to a Line a crossing a Point.
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkPlanes')
|
createFolders('WorkPlanes')
|
||||||
error_msg = "Unable to create Plane : \nSelect one Line and one point only !"
|
error_msg = "Unable to create Plane : \nSelect one Line and one point only !"
|
||||||
result_msg = " : Plane created !"
|
result_msg = " : Plane created !"
|
||||||
|
@ -7734,7 +7991,8 @@ def extensionPlanePointPlane(value):
|
||||||
def plot_planePointPlane():
|
def plot_planePointPlane():
|
||||||
""" Create a plane passing through a Point and parallel to a given Plane.
|
""" Create a plane passing through a Point and parallel to a given Plane.
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkPlanes')
|
createFolders('WorkPlanes')
|
||||||
error_msg = "Unable to create Plane : \nSelect one Plane and one Point only !"
|
error_msg = "Unable to create Plane : \nSelect one Plane and one Point only !"
|
||||||
result_msg = " : Plane created !"
|
result_msg = " : Plane created !"
|
||||||
|
@ -7784,7 +8042,8 @@ def plot_planeAxisPlane():
|
||||||
""" Use a plane and a line to create Plane perpedicular
|
""" Use a plane and a line to create Plane perpedicular
|
||||||
to the first Plane and crossing the Line
|
to the first Plane and crossing the Line
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkPlanes')
|
createFolders('WorkPlanes')
|
||||||
error_msg = "Unable to create Planes : \nSelect one Line and one Plane only !"
|
error_msg = "Unable to create Planes : \nSelect one Line and one Plane only !"
|
||||||
result_msg = " : Plane created !"
|
result_msg = " : Plane created !"
|
||||||
|
@ -7878,6 +8137,7 @@ def distPlane(value):
|
||||||
"""
|
"""
|
||||||
global verbose
|
global verbose
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# First we check if a valid number have been entered
|
# First we check if a valid number have been entered
|
||||||
global m_distPlane
|
global m_distPlane
|
||||||
|
@ -7907,6 +8167,7 @@ def plot_distPlane():
|
||||||
global m_numberPlane
|
global m_numberPlane
|
||||||
global m_distPlane
|
global m_distPlane
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkPlanes')
|
createFolders('WorkPlanes')
|
||||||
error_msg = "Unable to create Plane(s) : \nSelect at least one Plane !"
|
error_msg = "Unable to create Plane(s) : \nSelect at least one Plane !"
|
||||||
result_msg = " : Plane(s) created !"
|
result_msg = " : Plane(s) created !"
|
||||||
|
@ -8070,6 +8331,7 @@ def plot_extensionPlane():
|
||||||
"""
|
"""
|
||||||
global verbose
|
global verbose
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkPlanes')
|
createFolders('WorkPlanes')
|
||||||
error_msg = "Unable to create Plane : \nSelect Plane(s) only !"
|
error_msg = "Unable to create Plane : \nSelect Plane(s) only !"
|
||||||
result_msg = " : Plane created !"
|
result_msg = " : Plane created !"
|
||||||
|
@ -8117,6 +8379,7 @@ def plot_clickForPlane2():
|
||||||
a radius of 20 mm
|
a radius of 20 mm
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkPlanes')
|
createFolders('WorkPlanes')
|
||||||
|
|
||||||
m_actDoc = get_ActiveDocument(info=msg)
|
m_actDoc = get_ActiveDocument(info=msg)
|
||||||
|
@ -8192,7 +8455,8 @@ def plot_clickForPlane2():
|
||||||
def plot_centerObjectPlanes():
|
def plot_centerObjectPlanes():
|
||||||
""" Create 3 Planes XY, YZ and XZ at center point of all selected objects.
|
""" Create 3 Planes XY, YZ and XZ at center point of all selected objects.
|
||||||
"""
|
"""
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkPlanes')
|
createFolders('WorkPlanes')
|
||||||
error_msg = "Unable to create Planes : \nSelect at least one object !"
|
error_msg = "Unable to create Planes : \nSelect at least one object !"
|
||||||
result_msg = " : Planes created !"
|
result_msg = " : Planes created !"
|
||||||
|
@ -8364,15 +8628,15 @@ def plot_bezier():
|
||||||
|
|
||||||
def points_toPolygon():
|
def points_toPolygon():
|
||||||
""" Create a polygon from a set of points.
|
""" Create a polygon from a set of points.
|
||||||
- First select several Points
|
- First select several Points (at least 2).
|
||||||
|
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg = verbose
|
||||||
m_close = False
|
m_close = False
|
||||||
m_face = False
|
m_face = False
|
||||||
|
|
||||||
error_msg = """Unable to create Polygon :
|
error_msg = """Unable to create Polygon :
|
||||||
Select at least two points !"""
|
Select at least 2 points !"""
|
||||||
result_msg = " : Polygon created !"
|
result_msg = " : Polygon created !"
|
||||||
|
|
||||||
createFolders('WorkWires')
|
createFolders('WorkWires')
|
||||||
|
@ -8422,9 +8686,175 @@ def points_toPolygon():
|
||||||
except:
|
except:
|
||||||
printError_msg(error_msg)
|
printError_msg(error_msg)
|
||||||
|
|
||||||
|
def sel_projection2(*argc):
|
||||||
|
""" Projection plane by combo box.
|
||||||
|
Options :
|
||||||
|
All
|
||||||
|
XY plane
|
||||||
|
YZ plane
|
||||||
|
XZ plane
|
||||||
|
"""
|
||||||
|
global m_projection_plane2
|
||||||
|
global verbose
|
||||||
|
msg=verbose
|
||||||
|
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("Projection plane location by combo box !")
|
||||||
|
m_projection_plane2 = "All"
|
||||||
|
if str(*argc) == "XY plane":
|
||||||
|
m_projection_plane2 = "XY"
|
||||||
|
if str(*argc) == "YZ plane":
|
||||||
|
m_projection_plane2 = "YZ"
|
||||||
|
if str(*argc) == "XZ plane":
|
||||||
|
m_projection_plane2 = "XZ"
|
||||||
|
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("argc is " + str(*argc) + " and Projection plane " + str(m_attach_point) + " selected !")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def Plot_convex2Dpolygon():
|
||||||
|
"""Create a Convex 2D Polygon (wire) from a set of points.
|
||||||
|
The Convex Polygon is the outer limit of all selected Points.
|
||||||
|
- First select several Points (at least 3);
|
||||||
|
Define the projection plane if needed.
|
||||||
|
It can be either
|
||||||
|
XY plane,
|
||||||
|
YZ plane,
|
||||||
|
XZ plane or
|
||||||
|
All 3 planes
|
||||||
|
- Then push the button.
|
||||||
|
"""
|
||||||
|
def isLeftTurn(p1, p2, p3):
|
||||||
|
""" Return True if 3 2D points can be reached with a left turn.
|
||||||
|
"""
|
||||||
|
return (p1[0] - p3[0]) * (p2[1] - p3[1]) - (p1[1] - p3[1]) * (p2[0] - p3[0]) > tolerance
|
||||||
|
|
||||||
|
def convex2Dpolygon (m_array):
|
||||||
|
# Sort on x
|
||||||
|
m_array.sort(key=lambda tup: tup[0])
|
||||||
|
m_top = []
|
||||||
|
m_bottom = []
|
||||||
|
for m_p in m_array :
|
||||||
|
while len(m_top) >= 2 and not isLeftTurn(m_p, m_top[-1], m_top[-2]) :
|
||||||
|
m_top.pop()
|
||||||
|
m_top.append(m_p)
|
||||||
|
while len(m_bottom) >=2 and not isLeftTurn(m_bottom[-2], m_bottom[-1], m_p):
|
||||||
|
m_bottom.pop()
|
||||||
|
m_bottom.append(m_p)
|
||||||
|
return m_bottom[:-1] + m_top[:0:-1]
|
||||||
|
|
||||||
|
msg = verbose
|
||||||
|
msg = 1
|
||||||
|
m_close = True
|
||||||
|
m_face = False
|
||||||
|
|
||||||
|
error_msg = """Unable to create Polygon :
|
||||||
|
Select at least 3 points !
|
||||||
|
Define the projection plane if needed.
|
||||||
|
It can be either
|
||||||
|
XY plane,
|
||||||
|
YZ plane,
|
||||||
|
XZ plane or
|
||||||
|
All 3 planes
|
||||||
|
- Then push the button."""
|
||||||
|
result_msg = " : Convex Polygon(s) created !"
|
||||||
|
|
||||||
|
createFolders('WorkWires')
|
||||||
|
m_dir = 'Set'
|
||||||
|
name = "Convex_2DPolygon_from_N_Points"
|
||||||
|
part = "Part::Feature"
|
||||||
|
|
||||||
|
m_actDoc = get_ActiveDocument(info=msg)
|
||||||
|
if m_actDoc == None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
try:
|
||||||
|
m_r = App.ActiveDocument.getObject("WorkWires").newObject("App::DocumentObjectGroup", str(m_dir))
|
||||||
|
except:
|
||||||
|
printError_msg("Could not Create '"+ str(m_dir) +"' Objects Group!")
|
||||||
|
return None
|
||||||
|
m_dir = m_r.Name
|
||||||
|
|
||||||
|
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 > 2:
|
||||||
|
m_x = 0.0
|
||||||
|
m_y = 0.0
|
||||||
|
m_z = 0.0
|
||||||
|
m_array = []
|
||||||
|
m_polygon = []
|
||||||
|
matriz = []
|
||||||
|
Point_List = SelectedObjects[3]
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("Point_List=" + str(Point_List))
|
||||||
|
if m_projection_plane2 == "All" or m_projection_plane2 == "XY":
|
||||||
|
for m_point in Point_List:
|
||||||
|
x = m_point.Point.x
|
||||||
|
y = m_point.Point.y
|
||||||
|
z = m_point.Point.z
|
||||||
|
m_array.append((x,y))
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("m_array=" + str(m_array))
|
||||||
|
m_polygon = convex2Dpolygon (m_array)
|
||||||
|
for m_2Dpoint in m_polygon:
|
||||||
|
m_x = m_2Dpoint[0]
|
||||||
|
m_y = m_2Dpoint[1]
|
||||||
|
m_z = 0.0
|
||||||
|
matriz.append(FreeCAD.Vector(m_x,m_y,m_z))
|
||||||
|
curve_User_Name, curve = plot_curve(matriz, m_close, m_face, part, name, str(m_dir))
|
||||||
|
print_msg(str(curve_User_Name) + result_msg + " into : " + str(m_dir))
|
||||||
|
m_array = []
|
||||||
|
m_polygon = []
|
||||||
|
matriz = []
|
||||||
|
if m_projection_plane2 == "All" or m_projection_plane2 == "YZ":
|
||||||
|
for m_point in Point_List:
|
||||||
|
x = m_point.Point.x
|
||||||
|
y = m_point.Point.y
|
||||||
|
z = m_point.Point.z
|
||||||
|
m_array.append((y,z))
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("m_array=" + str(m_array))
|
||||||
|
m_polygon = convex2Dpolygon (m_array)
|
||||||
|
for m_2Dpoint in m_polygon:
|
||||||
|
m_x = 0.0
|
||||||
|
m_y = m_2Dpoint[0]
|
||||||
|
m_z = m_2Dpoint[1]
|
||||||
|
matriz.append(FreeCAD.Vector(m_x,m_y,m_z))
|
||||||
|
curve_User_Name, curve = plot_curve(matriz, m_close, m_face, part, name, str(m_dir))
|
||||||
|
print_msg(str(curve_User_Name) + result_msg + " into : " + str(m_dir))
|
||||||
|
m_array = []
|
||||||
|
m_polygon = []
|
||||||
|
matriz = []
|
||||||
|
if m_projection_plane2 == "All" or m_projection_plane2 == "XZ":
|
||||||
|
for m_point in Point_List:
|
||||||
|
x = m_point.Point.x
|
||||||
|
y = m_point.Point.y
|
||||||
|
z = m_point.Point.z
|
||||||
|
m_array.append((x,z))
|
||||||
|
if msg != 0:
|
||||||
|
print_msg("m_array=" + str(m_array))
|
||||||
|
m_polygon = convex2Dpolygon (m_array)
|
||||||
|
for m_2Dpoint in m_polygon:
|
||||||
|
m_x = m_2Dpoint[0]
|
||||||
|
m_y = 0.0
|
||||||
|
m_z = m_2Dpoint[1]
|
||||||
|
matriz.append(FreeCAD.Vector(m_x,m_y,m_z))
|
||||||
|
curve_User_Name, curve = plot_curve(matriz, m_close, m_face, part, name, str(m_dir))
|
||||||
|
print_msg(str(curve_User_Name) + result_msg + " into : " + str(m_dir))
|
||||||
|
|
||||||
|
else:
|
||||||
|
printError_msg(error_msg)
|
||||||
|
except:
|
||||||
|
printError_msg(error_msg)
|
||||||
|
|
||||||
|
|
||||||
def plot_4points_bezier():
|
def plot_4points_bezier():
|
||||||
msg=1
|
msg=verbose
|
||||||
|
|
||||||
def Bezier_Cubic_curve(poles):
|
def Bezier_Cubic_curve(poles):
|
||||||
#draws a degree 3 rational bspline from first to last point,
|
#draws a degree 3 rational bspline from first to last point,
|
||||||
|
@ -8563,6 +8993,7 @@ def plot_boundingBoxes():
|
||||||
"""Create bounding boxes around each of selected object(s).
|
"""Create bounding boxes around each of selected object(s).
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
createVol=BBox_volum
|
createVol=BBox_volum
|
||||||
|
|
||||||
createFolders('WorkBoxes')
|
createFolders('WorkBoxes')
|
||||||
|
@ -8625,6 +9056,7 @@ def plot_boundingBox():
|
||||||
""" Create one bounding box around all of selected object(s).
|
""" Create one bounding box around all of selected object(s).
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
createVol=BBox_volum
|
createVol=BBox_volum
|
||||||
|
|
||||||
createFolders('WorkBoxes')
|
createFolders('WorkBoxes')
|
||||||
|
@ -8695,7 +9127,7 @@ def plot_axisPointCylinder():
|
||||||
selected point.
|
selected point.
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg=1
|
|
||||||
createFolders('WorkObjects')
|
createFolders('WorkObjects')
|
||||||
error_msg = "Unable to create a Cylinder : \n"\
|
error_msg = "Unable to create a Cylinder : \n"\
|
||||||
"Select one or several couple of one Axis and one point!"
|
"Select one or several couple of one Axis and one point!"
|
||||||
|
@ -8783,7 +9215,7 @@ def plot_axisPointCube():
|
||||||
selected point.
|
selected point.
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg=1
|
|
||||||
createFolders('WorkObjects')
|
createFolders('WorkObjects')
|
||||||
error_msg = "Unable to create a Cube : \n"\
|
error_msg = "Unable to create a Cube : \n"\
|
||||||
"Select or several couple of one Axis and one point!"
|
"Select or several couple of one Axis and one point!"
|
||||||
|
@ -8859,6 +9291,7 @@ def plot_centerSphere():
|
||||||
at the selected point(s).
|
at the selected point(s).
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkObjects')
|
createFolders('WorkObjects')
|
||||||
|
|
||||||
error_msg =\
|
error_msg =\
|
||||||
|
@ -9237,6 +9670,7 @@ def plot_centerDome():
|
||||||
Original code from : Ulrich Brammer
|
Original code from : Ulrich Brammer
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkObjects')
|
createFolders('WorkObjects')
|
||||||
|
|
||||||
error_msg =\
|
error_msg =\
|
||||||
|
@ -9316,6 +9750,7 @@ def letter(value):
|
||||||
"""
|
"""
|
||||||
global verbose
|
global verbose
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# First we check if a valid number have been entered
|
# First we check if a valid number have been entered
|
||||||
global m_letter
|
global m_letter
|
||||||
|
@ -9336,9 +9771,12 @@ def plot_letter():
|
||||||
NB:
|
NB:
|
||||||
Change the text and his size if needed
|
Change the text and his size if needed
|
||||||
"""
|
"""
|
||||||
|
msg=verbose
|
||||||
|
|
||||||
import Draft
|
import Draft
|
||||||
|
|
||||||
def text_at(Plane_Point,Plane_Normal):
|
def text_at(Plane_Point,Plane_Normal):
|
||||||
|
msg=verbose
|
||||||
text_User_Name, text = plot_text(m_letter, m_sizeLetter, part, name, grp="WorkObjects")
|
text_User_Name, text = plot_text(m_letter, m_sizeLetter, part, name, grp="WorkObjects")
|
||||||
text_Point = text.Shape.BoundBox.Center
|
text_Point = text.Shape.BoundBox.Center
|
||||||
text_Normal = text.Shape.Faces[0].normalAt(0,0)
|
text_Normal = text.Shape.Faces[0].normalAt(0,0)
|
||||||
|
@ -9366,8 +9804,6 @@ def plot_letter():
|
||||||
m_newplace = App.Placement(m_base.add(m_move), m_rot )
|
m_newplace = App.Placement(m_base.add(m_move), m_rot )
|
||||||
text.Placement = m_newplace
|
text.Placement = m_newplace
|
||||||
|
|
||||||
msg=verbose
|
|
||||||
msg=1
|
|
||||||
|
|
||||||
createFolders('WorkObjects')
|
createFolders('WorkObjects')
|
||||||
error_msg = "Unable to create Text : \nSelect one Plane and one Point !"
|
error_msg = "Unable to create Text : \nSelect one Plane and one Point !"
|
||||||
|
@ -9556,6 +9992,7 @@ def sel_transition(*argc):
|
||||||
"""
|
"""
|
||||||
global sweep_transition
|
global sweep_transition
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
if msg != 0:
|
if msg != 0:
|
||||||
print_msg("Transition between profiles choice by combo box !")
|
print_msg("Transition between profiles choice by combo box !")
|
||||||
sweep_transition = 2
|
sweep_transition = 2
|
||||||
|
@ -9800,7 +10237,6 @@ def plot_sectionBeam():
|
||||||
"""
|
"""
|
||||||
import WorkFeature.Beam.beam as BM
|
import WorkFeature.Beam.beam as BM
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg=1
|
|
||||||
|
|
||||||
createFolders('WorkObjects')
|
createFolders('WorkObjects')
|
||||||
error_msg =\
|
error_msg =\
|
||||||
|
@ -9857,10 +10293,9 @@ def plot_sectionSweep2():
|
||||||
Or if the Section wire is not closed, only a shell will be created.
|
Or if the Section wire is not closed, only a shell will be created.
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg=1
|
|
||||||
|
|
||||||
# variable makeSolid = 1 to create solid, 0 to create surfaces
|
# variable makeSolid = 1 to create solid, 0 to create surfaces
|
||||||
makeSolid=ssweep_solid
|
makeSolid=sweep_solid
|
||||||
isFrenet=sweep_frenet
|
isFrenet=sweep_frenet
|
||||||
transition=sweep_transition
|
transition=sweep_transition
|
||||||
|
|
||||||
|
@ -10031,6 +10466,7 @@ def sel_imageAxisScale(*argc):
|
||||||
"""
|
"""
|
||||||
global imageAxisScale
|
global imageAxisScale
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
if msg != 0:
|
if msg != 0:
|
||||||
print_msg("Axis or Plane of Scaling for image choice by combo box !")
|
print_msg("Axis or Plane of Scaling for image choice by combo box !")
|
||||||
#imageAxisScale = "XY"
|
#imageAxisScale = "XY"
|
||||||
|
@ -10056,7 +10492,6 @@ def lengthImage(value):
|
||||||
|
|
||||||
def scale_image():
|
def scale_image():
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg=1
|
|
||||||
|
|
||||||
error_msg = "Unable to scale Image : \n"\
|
error_msg = "Unable to scale Image : \n"\
|
||||||
"Select at least \n"\
|
"Select at least \n"\
|
||||||
|
@ -10428,7 +10863,8 @@ def cut_selectObject():
|
||||||
"""
|
"""
|
||||||
global myDialog
|
global myDialog
|
||||||
global m_cut_selectObjects
|
global m_cut_selectObjects
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
error_msg = "Select in order:\n"+ \
|
error_msg = "Select in order:\n"+ \
|
||||||
"First, one Object to cut and click 'Select Object' button,\n"+ \
|
"First, one Object to cut and click 'Select Object' button,\n"+ \
|
||||||
"Second, one cutting Line and click 'Select Cut Line' button,\n"+ \
|
"Second, one cutting Line and click 'Select Cut Line' button,\n"+ \
|
||||||
|
@ -10452,7 +10888,8 @@ def cut_selectLine():
|
||||||
"""
|
"""
|
||||||
global myDialog
|
global myDialog
|
||||||
global m_cut_selectObjects
|
global m_cut_selectObjects
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
error_msg = "Select in order:\n"+ \
|
error_msg = "Select in order:\n"+ \
|
||||||
"First, one Object to cut and click 'Select Object' button,\n"+ \
|
"First, one Object to cut and click 'Select Object' button,\n"+ \
|
||||||
"Second, one cutting Line and click 'Select Cut Line' button,\n"+ \
|
"Second, one cutting Line and click 'Select Cut Line' button,\n"+ \
|
||||||
|
@ -10477,7 +10914,8 @@ def cut_selectPlane():
|
||||||
"""
|
"""
|
||||||
global myDialog
|
global myDialog
|
||||||
global m_cut_selectObjects
|
global m_cut_selectObjects
|
||||||
msg=0
|
msg=verbose
|
||||||
|
|
||||||
error_msg = "Select in order:\n"+ \
|
error_msg = "Select in order:\n"+ \
|
||||||
"First, one Object to cut and click 'Select Object' button,\n"+ \
|
"First, one Object to cut and click 'Select Object' button,\n"+ \
|
||||||
"Second, one cutting Line and click 'Select Cut Line' button,\n"+ \
|
"Second, one cutting Line and click 'Select Cut Line' button,\n"+ \
|
||||||
|
@ -10525,6 +10963,7 @@ def plot_cutObject():
|
||||||
global m_thicknessCutObject
|
global m_thicknessCutObject
|
||||||
global verbose
|
global verbose
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
createFolders('WorkObjects')
|
createFolders('WorkObjects')
|
||||||
error_msg = "Select in order:\n"+ \
|
error_msg = "Select in order:\n"+ \
|
||||||
"First, one Object to cut and click 'Select Object' button,\n"+ \
|
"First, one Object to cut and click 'Select Object' button,\n"+ \
|
||||||
|
@ -11535,8 +11974,8 @@ def object_highlightCommon():
|
||||||
Original code from : 'JMG, galou and other contributors' 10/2015
|
Original code from : 'JMG, galou and other contributors' 10/2015
|
||||||
Adapted to WF by : Rentlau_64 10/2015
|
Adapted to WF by : Rentlau_64 10/2015
|
||||||
"""
|
"""
|
||||||
|
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
pass
|
pass
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# # -*- coding: utf-8 -*-
|
# # -*- coding: utf-8 -*-
|
||||||
|
@ -11636,10 +12075,10 @@ def object_clearance():
|
||||||
mindist = App.ActiveDocument.getObject(OBJ1).Shape.distToShape(App.ActiveDocument.getObject(OBJ2).Shape)[0]
|
mindist = App.ActiveDocument.getObject(OBJ1).Shape.distToShape(App.ActiveDocument.getObject(OBJ2).Shape)[0]
|
||||||
print_msg("Distance to Second Object is " + str(mindist) + "\n" )
|
print_msg("Distance to Second Object is " + str(mindist) + "\n" )
|
||||||
if mindist == 0.0:
|
if mindist == 0.0:
|
||||||
msg = 'POSSIBLE COLLISION DETECTED \n\nCLEARANCE(S) <= 0 \n\nCheck Clearances and Settings !'
|
result = 'POSSIBLE COLLISION DETECTED \n\nCLEARANCE(S) <= 0 \n\nCheck Clearances and Settings !'
|
||||||
else:
|
else:
|
||||||
msg = 'Object CLEARANCE is '+ str(mindist) +' units !'
|
result = 'Object CLEARANCE is '+ str(mindist) +' units !'
|
||||||
print_gui_msg(msg)
|
print_gui_msg(result)
|
||||||
except:
|
except:
|
||||||
printError_msg(error_msg)
|
printError_msg(error_msg)
|
||||||
|
|
||||||
|
@ -11756,7 +12195,7 @@ def points_distance():
|
||||||
if msg!=0:
|
if msg!=0:
|
||||||
print_msg("Distance is : " + str(m_dist))
|
print_msg("Distance is : " + str(m_dist))
|
||||||
|
|
||||||
msg=\
|
result=\
|
||||||
"Begin : X1 "+str(pos_X1)+" Y1: "+str(pos_Y1)+" Z1: "+str(pos_Z1)+"\n\n" +\
|
"Begin : X1 "+str(pos_X1)+" Y1: "+str(pos_Y1)+" Z1: "+str(pos_Z1)+"\n\n" +\
|
||||||
"End : X2 "+str(pos_X2)+" Y2: "+str(pos_Y2)+" Z2: "+str(pos_Z2)+"\n\n" +\
|
"End : X2 "+str(pos_X2)+" Y2: "+str(pos_Y2)+" Z2: "+str(pos_Z2)+"\n\n" +\
|
||||||
"Delta X : "+str(abs(pos_X1-pos_X2))+"\n" +\
|
"Delta X : "+str(abs(pos_X1-pos_X2))+"\n" +\
|
||||||
|
@ -11764,7 +12203,7 @@ def points_distance():
|
||||||
"Delta Z : "+str(abs(pos_Z1-pos_Z2))+"\n\n" +\
|
"Delta Z : "+str(abs(pos_Z1-pos_Z2))+"\n\n" +\
|
||||||
"Distance : " + str(m_dist)
|
"Distance : " + str(m_dist)
|
||||||
|
|
||||||
print_gui_msg(msg)
|
print_gui_msg(result)
|
||||||
except:
|
except:
|
||||||
printError_msg(error_msg)
|
printError_msg(error_msg)
|
||||||
|
|
||||||
|
@ -11814,7 +12253,7 @@ def line_length():
|
||||||
if hasattr(edge, 'Length'):
|
if hasattr(edge, 'Length'):
|
||||||
m_length = edge.Length
|
m_length = edge.Length
|
||||||
|
|
||||||
msg=\
|
result=\
|
||||||
"Begin : X1 "+str(pos_X1)+" Y1: "+str(pos_Y1)+" Z1: "+str(pos_Z1)+"\n\n" +\
|
"Begin : X1 "+str(pos_X1)+" Y1: "+str(pos_Y1)+" Z1: "+str(pos_Z1)+"\n\n" +\
|
||||||
"End : X2 "+str(pos_X2)+" Y2: "+str(pos_Y2)+" Z2: "+str(pos_Z2)+"\n\n" +\
|
"End : X2 "+str(pos_X2)+" Y2: "+str(pos_Y2)+" Z2: "+str(pos_Z2)+"\n\n" +\
|
||||||
"Delta X : "+str(abs(pos_X1-pos_X2))+"\n" +\
|
"Delta X : "+str(abs(pos_X1-pos_X2))+"\n" +\
|
||||||
|
@ -11823,10 +12262,10 @@ def line_length():
|
||||||
"Distance : " + str(m_dist)+"\n\n"
|
"Distance : " + str(m_dist)+"\n\n"
|
||||||
|
|
||||||
if m_length:
|
if m_length:
|
||||||
msg+="Length along edge/arc : " + str(m_length)
|
result+="Length along edge/arc : " + str(m_length)
|
||||||
|
|
||||||
|
|
||||||
print_gui_msg(msg)
|
print_gui_msg(result)
|
||||||
except:
|
except:
|
||||||
printError_msg(error_msg)
|
printError_msg(error_msg)
|
||||||
|
|
||||||
|
@ -11836,7 +12275,6 @@ def object_radius():
|
||||||
Check for Radius:
|
Check for Radius:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
|
||||||
error_msg = "INCORRECT Object(s) Selection :\n\nYou Must Select One Arc!"
|
error_msg = "INCORRECT Object(s) Selection :\n\nYou Must Select One Arc!"
|
||||||
|
|
||||||
Selection = Gui.Selection.getSelectionEx()
|
Selection = Gui.Selection.getSelectionEx()
|
||||||
|
@ -11920,6 +12358,7 @@ def camera_orientation():
|
||||||
by the function getCameraOrientation().
|
by the function getCameraOrientation().
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
pl = App.Placement()
|
pl = App.Placement()
|
||||||
pl.Rotation = Gui.ActiveDocument.ActiveView.getCameraOrientation()
|
pl.Rotation = Gui.ActiveDocument.ActiveView.getCameraOrientation()
|
||||||
|
|
||||||
|
@ -11931,7 +12370,7 @@ def camera_orientation():
|
||||||
cam=Gui.ActiveDocument.ActiveView.getCameraNode()
|
cam=Gui.ActiveDocument.ActiveView.getCameraNode()
|
||||||
direction = cam.orientation.getValue().multVec(coin.SbVec3f(0,0,1)).getValue()
|
direction = cam.orientation.getValue().multVec(coin.SbVec3f(0,0,1)).getValue()
|
||||||
|
|
||||||
msg=\
|
result=\
|
||||||
"___Camera_Orientation____________________"+"\n" +\
|
"___Camera_Orientation____________________"+"\n" +\
|
||||||
"Radians XYZ Q : " + str(pl.Rotation.Q)+"\n" +\
|
"Radians XYZ Q : " + str(pl.Rotation.Q)+"\n" +\
|
||||||
"Degrees XYZ : " + str(math.degrees(xP)) + " , " +str(math.degrees(yP)) + " , " + str(math.degrees(zP)) +"\n" +\
|
"Degrees XYZ : " + str(math.degrees(xP)) + " , " +str(math.degrees(yP)) + " , " + str(math.degrees(zP)) +"\n" +\
|
||||||
|
@ -11943,7 +12382,7 @@ def camera_orientation():
|
||||||
"Degrees Angle : " + str(math.degrees(pl.Rotation.Angle)) +"\n"+\
|
"Degrees Angle : " + str(math.degrees(pl.Rotation.Angle)) +"\n"+\
|
||||||
"Direction Vector : " + str (direction)
|
"Direction Vector : " + str (direction)
|
||||||
|
|
||||||
print_gui_msg(msg)
|
print_gui_msg(result)
|
||||||
|
|
||||||
|
|
||||||
def object_common():
|
def object_common():
|
||||||
|
@ -12026,7 +12465,6 @@ def object_difference():
|
||||||
"""
|
"""
|
||||||
global verbose
|
global verbose
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg=1
|
|
||||||
|
|
||||||
m_actDoc = get_ActiveDocument(info=msg)
|
m_actDoc = get_ActiveDocument(info=msg)
|
||||||
if m_actDoc == None:
|
if m_actDoc == None:
|
||||||
|
@ -12167,6 +12605,7 @@ def object_align2view_old():
|
||||||
"""
|
"""
|
||||||
# revoir le point de rotation
|
# revoir le point de rotation
|
||||||
msg=verbose
|
msg=verbose
|
||||||
|
|
||||||
error_msg = "INCORRECT Object(s) Selection :\n\nYou Must at least one object !"
|
error_msg = "INCORRECT Object(s) Selection :\n\nYou Must at least one object !"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -12284,7 +12723,6 @@ def object_copy():
|
||||||
Authors = 2015 Mario52
|
Authors = 2015 Mario52
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg=1
|
|
||||||
|
|
||||||
error_msg = "INCORRECT Object(s) Selection :\n\nYou Must Select at least one Object !"
|
error_msg = "INCORRECT Object(s) Selection :\n\nYou Must Select at least one Object !"
|
||||||
|
|
||||||
|
@ -12625,7 +13063,6 @@ def object_alignMainAxis():
|
||||||
- Third and following clicks will rotate by 180 deg the moving objects on first main axes.
|
- Third and following clicks will rotate by 180 deg the moving objects on first main axes.
|
||||||
"""
|
"""
|
||||||
msg=verbose
|
msg=verbose
|
||||||
msg=1
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
@ -13176,8 +13613,9 @@ class WorkFeatureTab():
|
||||||
"button_point_on_line" : "plot_alongLinePoint",
|
"button_point_on_line" : "plot_alongLinePoint",
|
||||||
"button_face_center" : "plot_centerFacePoint",
|
"button_face_center" : "plot_centerFacePoint",
|
||||||
"button_line_face_point" : "plot_lineFacePoint",
|
"button_line_face_point" : "plot_lineFacePoint",
|
||||||
"button_point_face_point" : "plot_pointFacePoint",
|
"button_points_projection" : "plot_projected_points",
|
||||||
|
|
||||||
|
"button_point_face_point" : "plot_pointFacePoint",
|
||||||
"button_twolines_point" : "plot_2LinesPoint",
|
"button_twolines_point" : "plot_2LinesPoint",
|
||||||
"button_point_line_point" : "plot_pointLinePoint",
|
"button_point_line_point" : "plot_pointLinePoint",
|
||||||
"button_distPoint" : "plot_distPoint",
|
"button_distPoint" : "plot_distPoint",
|
||||||
|
@ -13186,10 +13624,11 @@ class WorkFeatureTab():
|
||||||
"button_object_base_point" : "plot_baseObjectPoint",
|
"button_object_base_point" : "plot_baseObjectPoint",
|
||||||
"button_object_center_mass_point": "plot_centerMassObjectPoint",
|
"button_object_center_mass_point": "plot_centerMassObjectPoint",
|
||||||
"button_object_Npoint" : "plot_objectNPoints",
|
"button_object_Npoint" : "plot_objectNPoints",
|
||||||
"button_point_to_sketch" : "point_toSketch",
|
|
||||||
"button_points_load" : "point_toLoad",
|
"button_points_load" : "point_toLoad",
|
||||||
"button_points_save" : "point_toSave",
|
"button_points_save" : "point_toSave",
|
||||||
"button_points_random" : "plot_points_random",
|
"button_points_random" : "plot_points_random",
|
||||||
|
"button_point_to_sketch" : "point_toSketch",
|
||||||
|
|
||||||
"button_object_axis" : "plot_centerObjectAxes",
|
"button_object_axis" : "plot_centerObjectAxes",
|
||||||
"button_twopoints_axis" : "plot_2PointsAxis",
|
"button_twopoints_axis" : "plot_2PointsAxis",
|
||||||
|
@ -13217,6 +13656,7 @@ class WorkFeatureTab():
|
||||||
|
|
||||||
"button_points_to_polygon" : "points_toPolygon",
|
"button_points_to_polygon" : "points_toPolygon",
|
||||||
#"button_wire_on_plane" : "plot_wire_on_plane",
|
#"button_wire_on_plane" : "plot_wire_on_plane",
|
||||||
|
"button_points_to_convex_2Dpolygon" : "Plot_convex2Dpolygon",
|
||||||
"button_4points_bezier" : "plot_4points_bezier",
|
"button_4points_bezier" : "plot_4points_bezier",
|
||||||
|
|
||||||
"button_linecenter_circle" : "plot_linecenterCircle",
|
"button_linecenter_circle" : "plot_linecenterCircle",
|
||||||
|
@ -13292,7 +13732,6 @@ class WorkFeatureTab():
|
||||||
"distance_point_on_line" : "distanceLinePoint",
|
"distance_point_on_line" : "distanceLinePoint",
|
||||||
"distance_random_points" : "distanceRandomPoints",
|
"distance_random_points" : "distanceRandomPoints",
|
||||||
|
|
||||||
|
|
||||||
"extension_twopoints_axis" : "extensionTwoPointsAxis",
|
"extension_twopoints_axis" : "extensionTwoPointsAxis",
|
||||||
"extension_face_normal" : "extensionFaceNormal",
|
"extension_face_normal" : "extensionFaceNormal",
|
||||||
"extension_line_point_axis" : "extensionLinePointAxis",
|
"extension_line_point_axis" : "extensionLinePointAxis",
|
||||||
|
@ -13356,6 +13795,8 @@ class WorkFeatureTab():
|
||||||
"point_loc_comboBox" : "sel_attachPoint",
|
"point_loc_comboBox" : "sel_attachPoint",
|
||||||
"transition_comboBox" : "sel_transition",
|
"transition_comboBox" : "sel_transition",
|
||||||
"Image_comboBox_axis_scale" : "sel_imageAxisScale",
|
"Image_comboBox_axis_scale" : "sel_imageAxisScale",
|
||||||
|
"point_proj_comboBox" : "sel_projection",
|
||||||
|
"point_proj_comboBox_2" : "sel_projection2",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -13424,6 +13865,7 @@ class WorkFeatureTab():
|
||||||
def quit_clicked(self): # quit
|
def quit_clicked(self): # quit
|
||||||
if self.movable:
|
if self.movable:
|
||||||
self.dw.close()
|
self.dw.close()
|
||||||
|
self.close()
|
||||||
print_msg( "Close done !")
|
print_msg( "Close done !")
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
|
@ -13446,6 +13888,8 @@ class WorkFeatureTab():
|
||||||
# Create a Surface object and connect
|
# Create a Surface object and connect
|
||||||
self.surface = SurfaceEvents(myObject.ui)
|
self.surface = SurfaceEvents(myObject.ui)
|
||||||
|
|
||||||
|
#QtCore.QObject.connect(myObject.ui.button_quit, QtCore.SIGNAL ('clicked()'), myObject.quit_clicked)
|
||||||
|
|
||||||
def getMainWindow(self):
|
def getMainWindow(self):
|
||||||
""" Returns the main window
|
""" Returns the main window
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -229,17 +229,23 @@ class Translation():
|
||||||
self.dup_num = self.gui.ObjTrans_spin
|
self.dup_num = self.gui.ObjTrans_spin
|
||||||
self.dup_deep = self.gui.ObjTrans_deepCopy
|
self.dup_deep = self.gui.ObjTrans_deepCopy
|
||||||
|
|
||||||
|
self.slider = self.gui.ObjTrans_horizontalSlider
|
||||||
|
self.length_edit = self.gui.ObjTrans_lineEdit_length_seg
|
||||||
|
self.Edge_List = []
|
||||||
|
|
||||||
self.valid_start = { "Origin" : "origin",
|
self.valid_start = { "Origin" : "origin",
|
||||||
"Base Obj." : "base",
|
"Base Obj." : "base",
|
||||||
"Center Obj.(s)" : "center",
|
"Center Obj.(s)" : "center",
|
||||||
"To select" : "select",
|
"To select" : "select",
|
||||||
|
"From Segment" : "segment",
|
||||||
"To define" : "define",
|
"To define" : "define",
|
||||||
"Relative" : "relative",
|
"Relative" : "relative",
|
||||||
}
|
}
|
||||||
|
|
||||||
self.visuObjects = []
|
self.visuObjects = []
|
||||||
|
|
||||||
|
self.internal = False
|
||||||
|
|
||||||
self.duplicate = False
|
self.duplicate = False
|
||||||
self.deep = False
|
self.deep = False
|
||||||
self.m_num_cpy = 1
|
self.m_num_cpy = 1
|
||||||
|
@ -250,8 +256,10 @@ class Translation():
|
||||||
self.dup_deep.setEnabled(False)
|
self.dup_deep.setEnabled(False)
|
||||||
self.dup_deep.setChecked(False)
|
self.dup_deep.setChecked(False)
|
||||||
|
|
||||||
self.enable(False)
|
self.segment = False
|
||||||
|
|
||||||
|
self.enable(False)
|
||||||
|
self.setEnableSlider(False)
|
||||||
|
|
||||||
def enable(self, flag=True):
|
def enable(self, flag=True):
|
||||||
""" Enable or not most of the buttons.
|
""" Enable or not most of the buttons.
|
||||||
|
@ -267,7 +275,6 @@ class Translation():
|
||||||
self.but_reset.setEnabled(flag)
|
self.but_reset.setEnabled(flag)
|
||||||
self.but_apply.setEnabled(flag)
|
self.but_apply.setEnabled(flag)
|
||||||
|
|
||||||
|
|
||||||
def setEnabledStartInput(self, flag=True):
|
def setEnabledStartInput(self, flag=True):
|
||||||
""" Enable or not the input boxes for start point.
|
""" Enable or not the input boxes for start point.
|
||||||
"""
|
"""
|
||||||
|
@ -278,7 +285,6 @@ class Translation():
|
||||||
self.start_y.setEnabled(flag)
|
self.start_y.setEnabled(flag)
|
||||||
self.start_z.setEnabled(flag)
|
self.start_z.setEnabled(flag)
|
||||||
|
|
||||||
|
|
||||||
def setEnabledEndInput(self, flag=True):
|
def setEnabledEndInput(self, flag=True):
|
||||||
""" Enable or not the input boxes for end point.
|
""" Enable or not the input boxes for end point.
|
||||||
"""
|
"""
|
||||||
|
@ -289,6 +295,14 @@ class Translation():
|
||||||
self.end_y.setEnabled(flag)
|
self.end_y.setEnabled(flag)
|
||||||
self.end_z.setEnabled(flag)
|
self.end_z.setEnabled(flag)
|
||||||
|
|
||||||
|
def setEnableSlider(self, flag=True):
|
||||||
|
""" Enable or not the slider for segment selection.
|
||||||
|
"""
|
||||||
|
if self.msg != 0:
|
||||||
|
func.print_msg("Translation.setEnabledEndInput :")
|
||||||
|
|
||||||
|
self.slider.setEnabled(flag)
|
||||||
|
self.length_edit.setEnabled(flag)
|
||||||
|
|
||||||
def numberCopies(self,value):
|
def numberCopies(self,value):
|
||||||
""" Respond to the change in number of part value from the spin box.
|
""" Respond to the change in number of part value from the spin box.
|
||||||
|
@ -319,7 +333,6 @@ class Translation():
|
||||||
|
|
||||||
self.deep = flag
|
self.deep = flag
|
||||||
|
|
||||||
|
|
||||||
def copyFlag(self, flag):
|
def copyFlag(self, flag):
|
||||||
""" Respond to the change of duplicate flag.
|
""" Respond to the change of duplicate flag.
|
||||||
"""
|
"""
|
||||||
|
@ -339,7 +352,6 @@ class Translation():
|
||||||
self.reset()
|
self.reset()
|
||||||
self.preview()
|
self.preview()
|
||||||
|
|
||||||
|
|
||||||
def selection(self):
|
def selection(self):
|
||||||
""" Check if one object at least is selected.
|
""" Check if one object at least is selected.
|
||||||
"""
|
"""
|
||||||
|
@ -606,14 +618,36 @@ class Translation():
|
||||||
if self.msg != 0:
|
if self.msg != 0:
|
||||||
func.print_msg("Translation.select_start : Selection of Start point of translation by button !")
|
func.print_msg("Translation.select_start : Selection of Start point of translation by button !")
|
||||||
|
|
||||||
error_msg = "Select one point !"
|
error_msg = "Select one point or one segment !"
|
||||||
|
|
||||||
# Get the selected Objects
|
# Get the selected Objects
|
||||||
SelectedObjects = func.get_SelectedObjects()
|
SelectedObjects = func.get_SelectedObjects()
|
||||||
if SelectedObjects == None:
|
if SelectedObjects == None:
|
||||||
func.printError_msg(error_msg)
|
func.printError_msg(error_msg)
|
||||||
return
|
return
|
||||||
|
|
||||||
Number_of_Points = SelectedObjects[0]
|
Number_of_Points = SelectedObjects[0]
|
||||||
|
Number_of_Edges = SelectedObjects[1]
|
||||||
|
if self.segment:
|
||||||
|
error_msg = "Select one segment only !"
|
||||||
|
if Number_of_Edges != 1:
|
||||||
|
func.printError_msg(error_msg)
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
self.Edge_List = SelectedObjects[4]
|
||||||
|
self.start = self.Edge_List[0].Vertexes[0].Point
|
||||||
|
self.m_num_end = Number_of_Edges
|
||||||
|
for m_i_end in range(Number_of_Edges):
|
||||||
|
self.end.append(self.Edge_List[m_i_end].Vertexes[-1].Point)
|
||||||
|
button_text = "Selected !"
|
||||||
|
self.but_start.setText(QtGui.QApplication.translate("Form", button_text, None, QtGui.QApplication.UnicodeUTF8))
|
||||||
|
self.print_start(self.start)
|
||||||
|
self.print_end(self.end[0])
|
||||||
|
self.set_percentage(100.0)
|
||||||
|
self.visu()
|
||||||
|
self.preview()
|
||||||
|
else:
|
||||||
|
error_msg = "Select one point !"
|
||||||
if Number_of_Points != 1:
|
if Number_of_Points != 1:
|
||||||
func.printError_msg(error_msg)
|
func.printError_msg(error_msg)
|
||||||
return
|
return
|
||||||
|
@ -641,6 +675,9 @@ class Translation():
|
||||||
self.setEnabledStartInput(False)
|
self.setEnabledStartInput(False)
|
||||||
self.print_start(self.origin)
|
self.print_start(self.origin)
|
||||||
|
|
||||||
|
self.set_percentage(100.0)
|
||||||
|
self.setEnableSlider(False)
|
||||||
|
self.segment = False
|
||||||
|
|
||||||
def select_start_type(self, *argc):
|
def select_start_type(self, *argc):
|
||||||
""" Start point of translation by combo box.
|
""" Start point of translation by combo box.
|
||||||
|
@ -649,14 +686,30 @@ class Translation():
|
||||||
func.print_msg("Translation.select_start_type : Start point of translation by combo box !")
|
func.print_msg("Translation.select_start_type : Start point of translation by combo box !")
|
||||||
|
|
||||||
self.reset_start_value()
|
self.reset_start_value()
|
||||||
|
self.reset_end_value()
|
||||||
|
self.but_end.setEnabled(True)
|
||||||
|
self.comb_end.setEnabled(True)
|
||||||
|
|
||||||
if str(*argc) == "To select":
|
if str(*argc) == "To select":
|
||||||
# Activate select button and wait for selection
|
# Activate select button and wait for selection
|
||||||
self.but_start.setEnabled(True)
|
self.but_start.setEnabled(True)
|
||||||
|
self.setEnableSlider(False)
|
||||||
self.start = None
|
self.start = None
|
||||||
|
elif str(*argc) == "From Segment":
|
||||||
|
# Activate select button and wait for selection
|
||||||
|
self.but_start.setEnabled(True)
|
||||||
|
self.segment = True
|
||||||
|
self.setEnableSlider(True)
|
||||||
|
self.setEnabledStartInput(False)
|
||||||
|
self.setEnabledEndInput(False)
|
||||||
|
self.but_end.setEnabled(False)
|
||||||
|
self.comb_end.setEnabled(False)
|
||||||
|
self.start = None
|
||||||
|
|
||||||
elif str(*argc) == "To define":
|
elif str(*argc) == "To define":
|
||||||
# Activate define input boxes and wait for entering values
|
# Activate define input boxes and wait for entering values
|
||||||
self.setEnabledStartInput(True)
|
self.setEnabledStartInput(True)
|
||||||
|
self.setEnableSlider(False)
|
||||||
self.start = App.Vector(0,0,0)
|
self.start = App.Vector(0,0,0)
|
||||||
else:
|
else:
|
||||||
button_text = "Select"
|
button_text = "Select"
|
||||||
|
@ -756,6 +809,7 @@ class Translation():
|
||||||
if SelectedObjects == None:
|
if SelectedObjects == None:
|
||||||
func.printError_msg(error_msg)
|
func.printError_msg(error_msg)
|
||||||
return
|
return
|
||||||
|
|
||||||
Number_of_Points = SelectedObjects[0]
|
Number_of_Points = SelectedObjects[0]
|
||||||
self.m_num_end = Number_of_Points
|
self.m_num_end = Number_of_Points
|
||||||
if Number_of_Points == 0:
|
if Number_of_Points == 0:
|
||||||
|
@ -950,7 +1004,64 @@ class Translation():
|
||||||
self.comb_start.setCurrentIndex(3)
|
self.comb_start.setCurrentIndex(3)
|
||||||
self.but_end.setEnabled(True)
|
self.but_end.setEnabled(True)
|
||||||
|
|
||||||
|
def set_percentage(self, value = 100.0):
|
||||||
|
""" Put 100 into edit box and on slider.
|
||||||
|
"""
|
||||||
|
self.internal = True
|
||||||
|
self.slider.setValue(value)
|
||||||
|
self.length_edit.setText(str(value))
|
||||||
|
self.internal = False
|
||||||
|
|
||||||
|
def length_value_changed(self, value):
|
||||||
|
""" Respond to the change in value of a slider, update the text box
|
||||||
|
"""
|
||||||
|
# If the value was changed internally, ignore event.
|
||||||
|
if self.internal:
|
||||||
|
return
|
||||||
|
|
||||||
|
self.length_edit.setText(str(value))
|
||||||
|
self.length_value_entered()
|
||||||
|
|
||||||
|
|
||||||
|
def length_value_entered(self):
|
||||||
|
#if self.msg != 0:
|
||||||
|
#func.print_msg("angle_value_entered entered!")
|
||||||
|
try:
|
||||||
|
# First we check if a valid number have been entered
|
||||||
|
self.length = float(self.length_edit.text())
|
||||||
|
if self.length < -1000.0 or self.length > 1000.0 :
|
||||||
|
func.printError_msg("Length must be valid number in percentage [-1000,1000] !")
|
||||||
|
self.length_edit.setText(str(100.0))
|
||||||
|
self.length_value_entered()
|
||||||
|
# Update the slider by internal update
|
||||||
|
self.internal = True
|
||||||
|
self.slider.setValue(self.length)
|
||||||
|
self.internal = False
|
||||||
|
if self.segment:
|
||||||
|
self.start = self.origin
|
||||||
|
self.end = []
|
||||||
|
print "length = " +str(self.length)
|
||||||
|
Number_of_Edges = len(self.Edge_List)
|
||||||
|
m_id_start = int(0)
|
||||||
|
m_id_end = int(-1)
|
||||||
|
m_mult = 1
|
||||||
|
if self.length < 0.0 :
|
||||||
|
m_id_start = int(-1)
|
||||||
|
m_id_end = int(0)
|
||||||
|
m_mult = -1
|
||||||
|
self.start = self.Edge_List[0].Vertexes[m_id_start].Point
|
||||||
|
Vector_A = self.start
|
||||||
|
for m_i_end in range(Number_of_Edges):
|
||||||
|
Vector_B = self.Edge_List[m_i_end].Vertexes[m_id_end].Point
|
||||||
|
distance = Vector_B.sub(Vector_A).Length
|
||||||
|
distance = ( distance / 100.0 ) * self.length * m_mult
|
||||||
|
Vector_C = Vector_A.add(Vector_B.sub(Vector_A).normalize().multiply( distance ))
|
||||||
|
self.end.append(Vector_C)
|
||||||
|
self.visu()
|
||||||
|
# Update the view
|
||||||
|
self.preview()
|
||||||
|
except ValueError:
|
||||||
|
func.printError_msg("Length must be valid number in percentage !")
|
||||||
|
|
||||||
class Rotation():
|
class Rotation():
|
||||||
""" A rotation object
|
""" A rotation object
|
||||||
|
@ -1452,7 +1563,9 @@ class TranslationEvents(DefineAndConnectEvents):
|
||||||
DefineAndConnectEvents.__init__(self, self.ui, self.trans)
|
DefineAndConnectEvents.__init__(self, self.ui, self.trans)
|
||||||
|
|
||||||
def defineEvents(self):
|
def defineEvents(self):
|
||||||
self.connections_for_slider_changed = {}
|
self.connections_for_slider_changed = {
|
||||||
|
"ObjTrans_horizontalSlider" : "length_value_changed",
|
||||||
|
}
|
||||||
self.connections_for_button_pressed = {
|
self.connections_for_button_pressed = {
|
||||||
"ObjTrans_button_select" : "initialize",
|
"ObjTrans_button_select" : "initialize",
|
||||||
"ObjTrans_button_select_start" : "select_start",
|
"ObjTrans_button_select_start" : "select_start",
|
||||||
|
@ -1478,6 +1591,9 @@ class TranslationEvents(DefineAndConnectEvents):
|
||||||
"ObjTrans_end_x" : "end_x_entered",
|
"ObjTrans_end_x" : "end_x_entered",
|
||||||
"ObjTrans_end_y" : "end_y_entered",
|
"ObjTrans_end_y" : "end_y_entered",
|
||||||
"ObjTrans_end_z" : "end_z_entered",
|
"ObjTrans_end_z" : "end_z_entered",
|
||||||
|
|
||||||
|
"ObjTrans_lineEdit_length_seg" : "length_value_entered",
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
####################################################################################
|
####################################################################################
|
||||||
|
@ -1550,6 +1666,26 @@ class ObjectRotationTab():
|
||||||
"ObjTrans_end_z" : "end_z_entered",
|
"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 = {
|
self.connections_for_button_clicked = {
|
||||||
"button_quit" : "quit_clicked",
|
"button_quit" : "quit_clicked",
|
||||||
|
@ -1560,30 +1696,52 @@ class ObjectRotationTab():
|
||||||
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
QtCore.QObject.connect(getattr(self.ui, str(m_key)),
|
||||||
QtCore.SIGNAL("clicked()"),getattr(self,str(m_val)))
|
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():
|
||||||
|
# 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
|
# Connect to Translation functions
|
||||||
for m_key, m_val in self.connections_for_ObjTrans_button_pressed.items():
|
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))) )
|
func.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.QObject.connect(getattr(self.ui, str(m_key)),
|
||||||
QtCore.SIGNAL("pressed()"),getattr(self.trans, str(m_val)))
|
QtCore.SIGNAL("pressed()"),getattr(self.trans, str(m_val)))
|
||||||
|
|
||||||
for m_key, m_val in self.connections_for_ObjTrans_combobox_changed.items():
|
for m_key, m_val in self.connections_for_ObjTrans_combobox_changed.items():
|
||||||
#func.print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.trans, str(m_val))) )
|
func.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.QObject.connect(getattr(self.ui, str(m_key)),
|
||||||
QtCore.SIGNAL(_fromUtf8("currentIndexChanged(QString)")),getattr(self.trans, str(m_val)))
|
QtCore.SIGNAL(_fromUtf8("currentIndexChanged(QString)")),getattr(self.trans, str(m_val)))
|
||||||
|
|
||||||
for m_key, m_val in self.connections_for_ObjTrans_checkbox_toggled.items():
|
for m_key, m_val in self.connections_for_ObjTrans_checkbox_toggled.items():
|
||||||
#func.print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.trans, str(m_val))) )
|
#print_msg( "Connecting : " + str(m_key) + " and " + str(m_val) )
|
||||||
|
func.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.QObject.connect(getattr(self.ui, str(m_key)),
|
||||||
QtCore.SIGNAL(_fromUtf8("toggled(bool)")),getattr(self.trans, str(m_val)))
|
QtCore.SIGNAL(_fromUtf8("toggled(bool)")),getattr(self.trans, str(m_val)))
|
||||||
|
|
||||||
|
|
||||||
for m_key, m_val in self.connections_for_ObjTrans_spin_changed.items():
|
for m_key, m_val in self.connections_for_ObjTrans_spin_changed.items():
|
||||||
#func.print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.trans, str(m_val))) )
|
func.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.QObject.connect(getattr(self.ui, str(m_key)),
|
||||||
QtCore.SIGNAL("valueChanged(int)"),getattr(self.trans, str(m_val)))
|
QtCore.SIGNAL("valueChanged(int)"),getattr(self.trans, str(m_val)))
|
||||||
|
|
||||||
for m_key, m_val in self.connections_for_ObjTrans_return_pressed.items():
|
for m_key, m_val in self.connections_for_ObjTrans_return_pressed.items():
|
||||||
#func.print_msg( "Connecting : " + str(getattr(self.ui, str(m_key))) + " and " + str(getattr(self.trans, str(m_val))) )
|
func.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.QObject.connect(getattr(self.ui, str(m_key)),
|
||||||
QtCore.SIGNAL("returnPressed()"),getattr(self.trans, str(m_val)))
|
QtCore.SIGNAL("returnPressed()"),getattr(self.trans, str(m_val)))
|
||||||
|
|
||||||
|
|