Re-Created branch form 0, to avoid conflicts

This commit is contained in:
Jose Luis Cercos Pita
2012-10-28 19:54:09 +01:00
committed by wmayer
parent 6c21b74b4b
commit d7c5054c14
42 changed files with 7824 additions and 1 deletions

View File

@@ -48,4 +48,7 @@ add_subdirectory(Surfaces)
add_subdirectory(Ship)
add_subdirectory(OpenSCAD)
add_subdirectory(Plot)

View File

@@ -43,6 +43,8 @@ if BUILD_CAM
SUBDIRS += Cam
endif
SUBDIRS += Plot
EXTRA_DIST = \
__init__.py \
CMakeLists.txt \

119
src/Mod/Plot/CMakeLists.txt Normal file
View File

@@ -0,0 +1,119 @@
SET(PlotMain_SRCS
Plot.py
InitGui.py
PlotGui.py
)
SOURCE_GROUP("" FILES ${PlotMain_SRCS})
SET(PlotIcons_SRCS
Icons/Axes.svg
Icons/Grid.svg
Icons/Icon.svg
Icons/Labels.svg
Icons/Legend.svg
Icons/Positions.svg
Icons/Save.svg
Icons/Series.svg
)
SOURCE_GROUP("ploticons" FILES ${PlotIcons_SRCS})
SET(PlotAxes_SRCS
plotAxes/__init__.py
plotAxes/TaskPanel.py
plotAxes/TaskPanel.ui
)
SOURCE_GROUP("plotaxes" FILES ${PlotAxes_SRCS})
SET(PlotLabels_SRCS
plotLabels/__init__.py
plotLabels/TaskPanel.py
plotLabels/TaskPanel.ui
)
SOURCE_GROUP("plotlabels" FILES ${PlotLabels_SRCS})
SET(PlotPositions_SRCS
plotPositions/__init__.py
plotPositions/TaskPanel.py
plotPositions/TaskPanel.ui
)
SOURCE_GROUP("plotpositions" FILES ${PlotPositions_SRCS})
SET(PlotSave_SRCS
plotSave/__init__.py
plotSave/TaskPanel.py
plotSave/TaskPanel.ui
)
SOURCE_GROUP("plotsave" FILES ${PlotSave_SRCS})
SET(PlotSeries_SRCS
plotSeries/__init__.py
plotSeries/TaskPanel.py
plotSeries/TaskPanel.ui
)
SOURCE_GROUP("plotseries" FILES ${PlotSeries_SRCS})
SET(PlotUtils_SRCS
plotUtils/__init__.py
plotUtils/Paths.py
plotUtils/Translator.py
)
SOURCE_GROUP("plotutils" FILES ${PlotUtils_SRCS})
SET(all_files ${PlotMain_SRCS} ${PlotAxes_SRCS} ${PlotLabels_SRCS} ${PlotPositions_SRCS} ${PlotSave_SRCS} ${PlotSeries_SRCS} ${PlotIcons_SRCS} ${PlotUtils_SRCS})
ADD_CUSTOM_TARGET(Plot ALL
SOURCES ${all_files}
)
fc_copy_sources(Mod/Plot "${CMAKE_BINARY_DIR}/Mod/Plot" ${all_files})
INSTALL(
FILES
${PlotIcons_SRCS}
DESTINATION
Mod/Plot/Icons
)
INSTALL(
FILES
${PlotAxes_SRCS}
DESTINATION
Mod/Plot/plotAxes
)
INSTALL(
FILES
${PlotLabels_SRCS}
DESTINATION
Mod/Plot/plotLabels
)
INSTALL(
FILES
${PlotPositions_SRCS}
DESTINATION
Mod/Plot/plotPositions
)
INSTALL(
FILES
${PlotSave_SRCS}
DESTINATION
Mod/Plot/plotSave
)
INSTALL(
FILES
${PlotSeries_SRCS}
DESTINATION
Mod/Plot/plotSeries
)
INSTALL(
FILES
${PlotUtils_SRCS}
DESTINATION
Mod/Plot/plotUtils
)
INSTALL(
FILES
${PlotMain_SRCS}
DESTINATION
Mod/Plot
)

451
src/Mod/Plot/Icons/Axes.svg Normal file
View File

@@ -0,0 +1,451 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
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="svg2772"
sodipodi:version="0.32"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="Legend.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2774">
<marker
inkscape:stockid="EmptyTriangleOutL"
orient="auto"
refY="0.0"
refX="0.0"
id="EmptyTriangleOutL"
style="overflow:visible">
<path
id="path4215"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;fill:#FFFFFF;stroke:#000000;stroke-width:1.0pt"
transform="scale(0.8) translate(-6,0)" />
</marker>
<linearGradient
id="linearGradient5055"
osb:paint="solid">
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="0"
id="stop5057" />
</linearGradient>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mend"
style="overflow:visible;">
<path
id="path4064"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;">
<path
id="path4076"
style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lend"
style="overflow:visible;">
<path
id="path4058"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<linearGradient
id="linearGradient4119">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4121" />
<stop
style="stop-color:#c1c1c1;stop-opacity:1;"
offset="1"
id="stop4123" />
</linearGradient>
<linearGradient
id="linearGradient3812">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3814" />
<stop
id="stop3820"
offset="0.5"
style="stop-color:#000000;stop-opacity:0.8230769;" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3816" />
</linearGradient>
<linearGradient
id="linearGradient3909">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913" />
</linearGradient>
<linearGradient
id="linearGradient3876">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2210"
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="radialGradient2202"
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="radialGradient2194"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
cx="225.26402"
cy="672.79736"
fx="225.26402"
fy="672.79736"
r="34.345188" />
<linearGradient
inkscape:collect="always"
id="linearGradient3144">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3146" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3148" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2192"
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="perspective2780" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient3915"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient4004"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3818"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3832"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3844"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<linearGradient
id="linearGradient3877">
<stop
style="stop-color:#0039e5;stop-opacity:1;"
offset="0"
id="stop3879" />
<stop
style="stop-color:#8787ff;stop-opacity:1;"
offset="1"
id="stop3881" />
</linearGradient>
<linearGradient
id="linearGradient3864">
<stop
style="stop-color:#a3a3ff;stop-opacity:1;"
offset="0"
id="stop3866" />
<stop
style="stop-color:#000054;stop-opacity:1;"
offset="1"
id="stop3868" />
</linearGradient>
<linearGradient
id="linearGradient3887">
<stop
style="stop-color:#8c6900;stop-opacity:1;"
offset="0"
id="stop3889" />
<stop
style="stop-color:#ffcf2f;stop-opacity:1;"
offset="1"
id="stop3891" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient4009"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
id="linearGradient3965">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3967" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3969" />
</linearGradient>
<linearGradient
id="linearGradient3117">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3119" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3121" />
</linearGradient>
<linearGradient
id="linearGradient3124">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3126" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3128" />
</linearGradient>
<linearGradient
id="linearGradient3131">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3133" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3135" />
</linearGradient>
<linearGradient
id="linearGradient3138">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3140" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3142" />
</linearGradient>
<linearGradient
id="linearGradient3876-7">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878-9" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880-2" />
</linearGradient>
<linearGradient
id="linearGradient3909-4">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911-6" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913-9" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4119"
id="radialGradient4125"
cx="52.355858"
cy="45.259937"
fx="52.355858"
fy="45.259937"
r="16.690233"
gradientTransform="matrix(-4.1372873,2.7082745,-1.5153087,-2.3148574,339.22028,1.5423192)"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568543"
inkscape:cx="16.910275"
inkscape:cy="31.192036"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1360"
inkscape:window-height="718"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata2777">
<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="g5484"
transform="translate(-2,0)">
<g
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1"
transform="translate(4,4)"
id="g5478">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5480"
d="m 11.249999,57.593408 0,-53.3865624 -3.0052026,9.7227184 5.6568536,0 -2.651651,-9.7006214"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5482"
d="m 5.6568542,53.039845 53.3865618,0 -9.722718,-3.005203 0,5.656854 9.700621,-2.651651"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
id="g5474">
<path
style="fill:#008c00;fill-opacity:1;stroke:#008c00;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 11.249999,57.593408 0,-53.3865624 -3.0052026,9.7227184 5.6568536,0 -2.651651,-9.7006214"
id="path5454-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 5.6568542,53.039845 53.3865618,0 -9.722718,-3.005203 0,5.656854 9.700621,-2.651651"
id="path5454"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

407
src/Mod/Plot/Icons/Grid.svg Executable file
View File

@@ -0,0 +1,407 @@
<?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="svg2772"
sodipodi:version="0.32"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="Grid.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2774">
<linearGradient
id="linearGradient3812">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3814" />
<stop
id="stop3820"
offset="0.5"
style="stop-color:#000000;stop-opacity:0.8230769;" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3816" />
</linearGradient>
<linearGradient
id="linearGradient3909">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913" />
</linearGradient>
<linearGradient
id="linearGradient3876">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2210"
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="radialGradient2202"
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="radialGradient2194"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
cx="225.26402"
cy="672.79736"
fx="225.26402"
fy="672.79736"
r="34.345188" />
<linearGradient
inkscape:collect="always"
id="linearGradient3144">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3146" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3148" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2192"
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="perspective2780" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient3915"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3876"
id="radialGradient3966"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-2.6710402,1.8241313,-1.810185,-2.6506188,207.0925,-28.733191)"
cx="48.585522"
cy="16.830805"
fx="48.585522"
fy="16.830805"
r="24.104704" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient4004"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient4011"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3818"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3822"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3824"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3826"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3828"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3830"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3832"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3834"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3836"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3838"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3840"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3842"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3844"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568543"
inkscape:cx="-3.0863692"
inkscape:cy="33.102122"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1360"
inkscape:window-height="718"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata2777">
<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">
<g
id="g4143"
style="stroke:url(#radialGradient3818);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
transform="matrix(1.1958354,0,0,1.1958354,-9.281558,-2.1489538)">
<g
id="g4070"
style="stroke:url(#radialGradient3832);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">
<path
style="fill:none;stroke:url(#radialGradient3822);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 18.636364,53.363636 0,-48.5454543"
id="path4001"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:url(#radialGradient3824);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 26.554308,53.415576 0,-48.5454537"
id="path4001-6"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:url(#radialGradient3826);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 34.520316,53.390013 0,-48.5454548"
id="path4001-69"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:url(#radialGradient3828);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 42.43826,53.441953 0,-48.5454538"
id="path4001-6-9"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:url(#radialGradient3830);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 50.561525,53.465574 0,-48.5454537"
id="path4001-6-9-1"
inkscape:connector-curvature="0" />
</g>
<g
id="g4136"
style="stroke:url(#radialGradient3844);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">
<path
style="fill:none;stroke:url(#radialGradient3834);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 11.046875,45.268821 47.818182,0"
id="path4077"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:url(#radialGradient3836);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 11.061899,37.283554 47.818182,0"
id="path4077-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:url(#radialGradient3838);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 11.033927,29.272205 47.818182,0"
id="path4077-18"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:url(#radialGradient3840);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 11.048951,21.286938 47.818182,0"
id="path4077-1-0"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:url(#radialGradient3842);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 11.070598,13.276138 47.818182,0"
id="path4077-1-0-4"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

403
src/Mod/Plot/Icons/Icon.svg Executable file
View File

@@ -0,0 +1,403 @@
<?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="svg2772"
sodipodi:version="0.32"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="Icon.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2774">
<linearGradient
id="linearGradient3909">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913" />
</linearGradient>
<linearGradient
id="linearGradient3876">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2210"
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="radialGradient2202"
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="radialGradient2194"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
cx="225.26402"
cy="672.79736"
fx="225.26402"
fy="672.79736"
r="34.345188" />
<linearGradient
inkscape:collect="always"
id="linearGradient3144">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3146" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3148" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2192"
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="perspective2780" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient3915"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3876"
id="radialGradient3966"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-2.6710402,1.8241313,-1.810185,-2.6506188,207.0925,-28.733191)"
cx="48.585522"
cy="16.830805"
fx="48.585522"
fy="16.830805"
r="24.104704" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient4004"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient4011"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568543"
inkscape:cx="6.874763"
inkscape:cy="36.215054"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1360"
inkscape:window-height="718"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata2777">
<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="g3923"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1"
transform="translate(2,2)">
<rect
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1"
id="rect3925"
width="47.982609"
height="48.776691"
x="10.879802"
y="4.8561425" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.056579,4.8601601 0,54.5115049"
id="path3927"
inkscape:connector-curvature="0" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 5.3997245,53.457681 53.4829855,0"
id="path3929"
inkscape:connector-curvature="0" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 18.641906,53.457681 0,3.214121"
id="path3931"
inkscape:connector-curvature="0" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 26.636363,53.438394 0,3.214121"
id="path3933"
inkscape:connector-curvature="0" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 34.590909,53.392939 0,3.214121"
id="path3935"
inkscape:connector-curvature="0" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 42.59091,53.39294 0,3.214121"
id="path3937"
inkscape:connector-curvature="0" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 50.590909,53.39294 0,3.214121"
id="path3939"
inkscape:connector-curvature="0" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11,45.409091 -3.5909091,0"
id="path3941"
inkscape:connector-curvature="0" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.977273,37.318181 -3.5909094,0"
id="path3943"
inkscape:connector-curvature="0" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.022728,29.272727 -3.5909094,0"
id="path3945"
inkscape:connector-curvature="0" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.022727,21.272727 -3.5909088,0"
id="path3947"
inkscape:connector-curvature="0" />
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.977273,13.272727 -3.5909094,0"
id="path3949"
inkscape:connector-curvature="0" />
</g>
<rect
style="fill:url(#radialGradient3966);fill-opacity:1;stroke:none"
id="rect3098"
width="47.982609"
height="48.776691"
x="10.879802"
y="4.8561425" />
<g
id="g4143"
style="stroke:#b4b4b4;stroke-opacity:1;stroke-width:0.4;stroke-miterlimit:4;stroke-dasharray:none">
<g
id="g4070"
style="stroke:#b4b4b4;stroke-opacity:1;stroke-width:0.4;stroke-miterlimit:4;stroke-dasharray:none">
<path
style="fill:none;stroke:#b4b4b4;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 18.636364,53.363636 0,-48.5454543"
id="path4001"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#b4b4b4;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 26.554308,53.415576 0,-48.5454537"
id="path4001-6"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#b4b4b4;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 34.520316,53.390013 0,-48.5454548"
id="path4001-69"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#b4b4b4;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 42.43826,53.441953 0,-48.5454538"
id="path4001-6-9"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#b4b4b4;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 50.561525,53.465574 0,-48.5454537"
id="path4001-6-9-1"
inkscape:connector-curvature="0" />
</g>
<g
id="g4136"
style="stroke:#b4b4b4;stroke-opacity:1;stroke-width:0.4;stroke-miterlimit:4;stroke-dasharray:none">
<path
style="fill:none;stroke:#b4b4b4;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 11.046875,45.268821 47.818182,0"
id="path4077"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#b4b4b4;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 11.061899,37.283554 47.818182,0"
id="path4077-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#b4b4b4;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 11.033927,29.272205 47.818182,0"
id="path4077-18"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#b4b4b4;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 11.048951,21.286938 47.818182,0"
id="path4077-1-0"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#b4b4b4;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 11.070598,13.276138 47.818182,0"
id="path4077-1-0-4"
inkscape:connector-curvature="0" />
</g>
</g>
<g
id="g4007">
<path
style="fill:none;stroke:#828282;stroke-width:1.11150944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 13.112334,55.273361 27.831144,27.836355 37.262615,36.267518 59.26938,7.6873037"
id="path3917"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path3907"
d="M 11.112334,53.273361 25.831144,25.836355 35.262615,34.267518 57.26938,5.6873037"
style="fill:none;stroke:url(#linearGradient4011);stroke-width:1.11150944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
id="g3968">
<path
inkscape:connector-curvature="0"
id="path3012"
d="m 11.056579,4.8601601 0,54.5115049"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3014"
d="m 5.3997245,53.457681 53.4829855,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3016"
d="m 18.641906,53.457681 0,3.214121"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3016-5"
d="m 26.636363,53.438394 0,3.214121"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3016-2"
d="m 34.590909,53.392939 0,3.214121"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3016-3"
d="m 42.59091,53.39294 0,3.214121"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3016-51"
d="m 50.590909,53.39294 0,3.214121"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3057"
d="m 11,45.409091 -3.5909091,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3057-5"
d="m 10.977273,37.318181 -3.5909094,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3057-0"
d="m 11.022728,29.272727 -3.5909094,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3057-1"
d="m 11.022727,21.272727 -3.5909088,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3057-6"
d="m 10.977273,13.272727 -3.5909094,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,705 @@
<?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="svg2772"
sodipodi:version="0.32"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="Labels.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2774">
<linearGradient
id="linearGradient3890">
<stop
style="stop-color:#ffc657;stop-opacity:1;"
offset="0"
id="stop3892" />
<stop
style="stop-color:#bd7d00;stop-opacity:1;"
offset="1"
id="stop3894" />
</linearGradient>
<linearGradient
id="linearGradient3875">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3877" />
<stop
style="stop-color:#afafaf;stop-opacity:1;"
offset="1"
id="stop3882" />
</linearGradient>
<linearGradient
id="linearGradient4119">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4121" />
<stop
style="stop-color:#c1c1c1;stop-opacity:1;"
offset="1"
id="stop4123" />
</linearGradient>
<linearGradient
id="linearGradient3812">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3814" />
<stop
id="stop3820"
offset="0.5"
style="stop-color:#000000;stop-opacity:0.8230769;" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3816" />
</linearGradient>
<linearGradient
id="linearGradient3909">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913" />
</linearGradient>
<linearGradient
id="linearGradient3876">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2210"
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="radialGradient2202"
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="radialGradient2194"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
cx="225.26402"
cy="672.79736"
fx="225.26402"
fy="672.79736"
r="34.345188" />
<linearGradient
inkscape:collect="always"
id="linearGradient3144">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3146" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3148" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2192"
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="perspective2780" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient3915"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient4004"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3818"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3832"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3844"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<linearGradient
id="linearGradient3877">
<stop
style="stop-color:#0039e5;stop-opacity:1;"
offset="0"
id="stop3879" />
<stop
style="stop-color:#8787ff;stop-opacity:1;"
offset="1"
id="stop3881" />
</linearGradient>
<linearGradient
id="linearGradient3864">
<stop
style="stop-color:#a3a3ff;stop-opacity:1;"
offset="0"
id="stop3866" />
<stop
style="stop-color:#000054;stop-opacity:1;"
offset="1"
id="stop3868" />
</linearGradient>
<linearGradient
id="linearGradient3887">
<stop
style="stop-color:#8c6900;stop-opacity:1;"
offset="0"
id="stop3889" />
<stop
style="stop-color:#ffcf2f;stop-opacity:1;"
offset="1"
id="stop3891" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient4009"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
id="linearGradient3965">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3967" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3969" />
</linearGradient>
<linearGradient
id="linearGradient3117">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3119" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3121" />
</linearGradient>
<linearGradient
id="linearGradient3124">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3126" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3128" />
</linearGradient>
<linearGradient
id="linearGradient3131">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3133" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3135" />
</linearGradient>
<linearGradient
id="linearGradient3138">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3140" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3142" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3876-7"
id="radialGradient3090"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-2.6710402,1.8241313,-1.810185,-2.6506188,207.0925,-28.733191)"
cx="48.585522"
cy="16.830805"
fx="48.585522"
fy="16.830805"
r="24.104704" />
<linearGradient
id="linearGradient3876-7">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878-9" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880-2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909-4"
id="linearGradient3092"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083031"
y2="31.923065" />
<linearGradient
id="linearGradient3909-4">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911-6" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913-9" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4119"
id="radialGradient4125"
cx="52.355858"
cy="45.259937"
fx="52.355858"
fy="45.259937"
r="16.690233"
gradientTransform="matrix(-4.1372873,2.7082745,-1.5153087,-2.3148574,339.22028,1.5423192)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3890"
id="radialGradient3909"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.4253906,-0.52233459,1.487855,-4.0601842,55.366106,252.323)"
cx="50.719532"
cy="45.121078"
fx="50.719532"
fy="45.121078"
r="6.7407375" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3875"
id="radialGradient3911"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.8468629,-1.8068455,2.088231,4.445946,-249.71557,-94.565263)"
cx="49.943073"
cy="52.223896"
fx="49.943073"
fy="52.223896"
r="5.0124998" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="4"
inkscape:cx="3.9784227"
inkscape:cy="16.996735"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1360"
inkscape:window-height="718"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata2777">
<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="g3044"
transform="translate(-0.6692704,-0.508322)">
<g
transform="translate(2,2)"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1"
id="g3923">
<rect
y="4.8561425"
x="10.879802"
height="48.776691"
width="47.982609"
id="rect3925"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3927"
d="m 11.056579,4.8601601 0,54.5115049"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3929"
d="m 5.3997245,53.457681 53.4829855,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3931"
d="m 18.641906,53.457681 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3933"
d="m 26.636363,53.438394 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3935"
d="m 34.590909,53.392939 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3937"
d="m 42.59091,53.39294 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3939"
d="m 50.590909,53.39294 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3941"
d="m 11,45.409091 -3.5909091,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3943"
d="m 10.977273,37.318181 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3945"
d="m 11.022728,29.272727 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3947"
d="m 11.022727,21.272727 -3.5909088,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3949"
d="m 10.977273,13.272727 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<rect
y="4.8561425"
x="10.879802"
height="48.776691"
width="47.982609"
id="rect3098"
style="fill:url(#radialGradient3090);fill-opacity:1;stroke:none" />
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4143">
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4070">
<path
inkscape:connector-curvature="0"
id="path4001"
d="m 18.636364,53.363636 0,-48.5454543"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6"
d="m 26.554308,53.415576 0,-48.5454537"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-69"
d="m 34.520316,53.390013 0,-48.5454548"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6-9"
d="m 42.43826,53.441953 0,-48.5454538"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6-9-1"
d="m 50.561525,53.465574 0,-48.5454537"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4136">
<path
inkscape:connector-curvature="0"
id="path4077"
d="m 11.046875,45.268821 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1"
d="m 11.061899,37.283554 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-18"
d="m 11.033927,29.272205 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1-0"
d="m 11.048951,21.286938 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1-0-4"
d="m 11.070598,13.276138 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
id="g4007">
<path
inkscape:connector-curvature="0"
id="path3917"
d="M 13.112334,55.273361 27.831144,27.836355 37.262615,36.267518 59.26938,7.6873037"
style="fill:none;stroke:#828282;stroke-width:1.11150944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:url(#linearGradient3092);stroke-width:1.11150944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11.112334,53.273361 25.831144,25.836355 35.262615,34.267518 57.26938,5.6873037"
id="path3907"
inkscape:connector-curvature="0" />
</g>
<g
id="g3968">
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.056579,4.8601601 0,54.5115049"
id="path3012"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 5.3997245,53.457681 53.4829855,0"
id="path3014"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 18.641906,53.457681 0,3.214121"
id="path3016"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 26.636363,53.438394 0,3.214121"
id="path3016-5"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 34.590909,53.392939 0,3.214121"
id="path3016-2"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 42.59091,53.39294 0,3.214121"
id="path3016-3"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 50.590909,53.39294 0,3.214121"
id="path3016-51"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11,45.409091 -3.5909091,0"
id="path3057"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.977273,37.318181 -3.5909094,0"
id="path3057-5"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.022728,29.272727 -3.5909094,0"
id="path3057-0"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.022727,21.272727 -3.5909088,0"
id="path3057-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.977273,13.272727 -3.5909094,0"
id="path3057-6"
inkscape:connector-curvature="0" />
</g>
</g>
<g
transform="matrix(0.72221865,-0.69166481,0.69166481,0.72221865,-20.714581,45.835537)"
id="g3913"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1">
<path
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 42.24963,62.40901 0,-20.682873 6.717514,-6.717515 6.363961,6.363961 0,21.07748 z"
id="path3915"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<rect
style="fill:#828282;fill-opacity:1;fill-rule:nonzero;stroke:#828282;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3917"
width="9.625"
height="15.573577"
x="44"
y="45.25" />
<path
sodipodi:type="arc"
style="fill:#828282;fill-opacity:1;fill-rule:nonzero;stroke:#828282;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path3919"
sodipodi:cx="47.729706"
sodipodi:cy="37.660275"
sodipodi:rx="1.2374369"
sodipodi:ry="1.2374369"
d="m 48.967143,37.660275 c 0,0.683417 -0.55402,1.237436 -1.237437,1.237436 -0.683418,0 -1.237437,-0.554019 -1.237437,-1.237436 0,-0.683418 0.554019,-1.237437 1.237437,-1.237437 0.683417,0 1.237437,0.554019 1.237437,1.237437 z"
transform="translate(1.2374369,0.70710678)" />
</g>
<path
inkscape:connector-curvature="0"
id="path3944"
d="m 42.647591,39.533215 c -2.474874,-0.972272 -4.949748,-2.032932 -6.010408,0.08839 -1.06066,2.12132 -0.53033,4.065864 0.265165,5.656854 0.795495,1.59099 -0.08839,6.805903 -0.08839,6.805903"
style="fill:none;stroke:#828282;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
<g
id="g3900"
transform="matrix(0.72221865,-0.69166481,0.69166481,0.72221865,-21.742309,43.481984)">
<path
sodipodi:nodetypes="cccccc"
inkscape:connector-curvature="0"
id="path3103"
d="m 42.24963,62.40901 0,-20.682873 6.717514,-6.717515 6.363961,6.363961 0,21.07748 z"
style="fill:url(#radialGradient3909);fill-opacity:1;stroke:#ffb937;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
y="45.25"
x="44"
height="15.573577"
width="9.625"
id="rect3873"
style="fill:url(#radialGradient3911);fill-opacity:1;fill-rule:nonzero;stroke:#fff3d6;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
transform="translate(1.2374369,0.70710678)"
d="m 48.967143,37.660275 c 0,0.683417 -0.55402,1.237436 -1.237437,1.237436 -0.683418,0 -1.237437,-0.554019 -1.237437,-1.237436 0,-0.683418 0.554019,-1.237437 1.237437,-1.237437 0.683417,0 1.237437,0.554019 1.237437,1.237437 z"
sodipodi:ry="1.2374369"
sodipodi:rx="1.2374369"
sodipodi:cy="37.660275"
sodipodi:cx="47.729706"
id="path3898"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffb937;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
</g>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m 40.647591,37.533215 c -2.474874,-0.972272 -4.949748,-2.032932 -6.010408,0.08839 -1.06066,2.12132 -0.53033,4.065864 0.265165,5.656854 0.795495,1.59099 -0.08839,6.805903 -0.08839,6.805903"
id="path3942"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -0,0 +1,679 @@
<?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="svg2772"
sodipodi:version="0.32"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="Legend.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2774">
<linearGradient
id="linearGradient4119">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4121" />
<stop
style="stop-color:#c1c1c1;stop-opacity:1;"
offset="1"
id="stop4123" />
</linearGradient>
<linearGradient
id="linearGradient3812">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3814" />
<stop
id="stop3820"
offset="0.5"
style="stop-color:#000000;stop-opacity:0.8230769;" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3816" />
</linearGradient>
<linearGradient
id="linearGradient3909">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913" />
</linearGradient>
<linearGradient
id="linearGradient3876">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2210"
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="radialGradient2202"
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="radialGradient2194"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
cx="225.26402"
cy="672.79736"
fx="225.26402"
fy="672.79736"
r="34.345188" />
<linearGradient
inkscape:collect="always"
id="linearGradient3144">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3146" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3148" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2192"
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="perspective2780" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient3915"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient4004"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3818"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3832"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3844"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<linearGradient
id="linearGradient3877">
<stop
style="stop-color:#0039e5;stop-opacity:1;"
offset="0"
id="stop3879" />
<stop
style="stop-color:#8787ff;stop-opacity:1;"
offset="1"
id="stop3881" />
</linearGradient>
<linearGradient
id="linearGradient3864">
<stop
style="stop-color:#a3a3ff;stop-opacity:1;"
offset="0"
id="stop3866" />
<stop
style="stop-color:#000054;stop-opacity:1;"
offset="1"
id="stop3868" />
</linearGradient>
<linearGradient
id="linearGradient3887">
<stop
style="stop-color:#8c6900;stop-opacity:1;"
offset="0"
id="stop3889" />
<stop
style="stop-color:#ffcf2f;stop-opacity:1;"
offset="1"
id="stop3891" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient4009"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
id="linearGradient3965">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3967" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3969" />
</linearGradient>
<linearGradient
id="linearGradient3117">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3119" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3121" />
</linearGradient>
<linearGradient
id="linearGradient3124">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3126" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3128" />
</linearGradient>
<linearGradient
id="linearGradient3131">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3133" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3135" />
</linearGradient>
<linearGradient
id="linearGradient3138">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3140" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3142" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3876-7"
id="radialGradient3090"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-2.6710402,1.8241313,-1.810185,-2.6506188,207.0925,-28.733191)"
cx="48.585522"
cy="16.830805"
fx="48.585522"
fy="16.830805"
r="24.104704" />
<linearGradient
id="linearGradient3876-7">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878-9" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880-2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909-4"
id="linearGradient3092"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083031"
y2="31.923065" />
<linearGradient
id="linearGradient3909-4">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911-6" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913-9" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4119"
id="radialGradient4125"
cx="52.355858"
cy="45.259937"
fx="52.355858"
fy="45.259937"
r="16.690233"
gradientTransform="matrix(-4.1372873,2.7082745,-1.5153087,-2.3148574,339.22028,1.5423192)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4119"
id="radialGradient4165"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-4.1372873,2.7082745,-1.5153087,-2.3148574,339.22028,1.5423192)"
cx="52.355858"
cy="45.259937"
fx="52.355858"
fy="45.259937"
r="16.690233" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568543"
inkscape:cx="2.8245097"
inkscape:cy="31.616684"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1360"
inkscape:window-height="718"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata2777">
<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="g3044"
transform="translate(-0.6692704,-0.508322)">
<g
transform="translate(2,2)"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1"
id="g3923">
<rect
y="4.8561425"
x="10.879802"
height="48.776691"
width="47.982609"
id="rect3925"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3927"
d="m 11.056579,4.8601601 0,54.5115049"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3929"
d="m 5.3997245,53.457681 53.4829855,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3931"
d="m 18.641906,53.457681 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3933"
d="m 26.636363,53.438394 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3935"
d="m 34.590909,53.392939 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3937"
d="m 42.59091,53.39294 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3939"
d="m 50.590909,53.39294 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3941"
d="m 11,45.409091 -3.5909091,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3943"
d="m 10.977273,37.318181 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3945"
d="m 11.022728,29.272727 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3947"
d="m 11.022727,21.272727 -3.5909088,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3949"
d="m 10.977273,13.272727 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<rect
y="4.8561425"
x="10.879802"
height="48.776691"
width="47.982609"
id="rect3098"
style="fill:url(#radialGradient3090);fill-opacity:1;stroke:none" />
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4143">
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4070">
<path
inkscape:connector-curvature="0"
id="path4001"
d="m 18.636364,53.363636 0,-48.5454543"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6"
d="m 26.554308,53.415576 0,-48.5454537"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-69"
d="m 34.520316,53.390013 0,-48.5454548"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6-9"
d="m 42.43826,53.441953 0,-48.5454538"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6-9-1"
d="m 50.561525,53.465574 0,-48.5454537"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4136">
<path
inkscape:connector-curvature="0"
id="path4077"
d="m 11.046875,45.268821 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1"
d="m 11.061899,37.283554 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-18"
d="m 11.033927,29.272205 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1-0"
d="m 11.048951,21.286938 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1-0-4"
d="m 11.070598,13.276138 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
id="g4007">
<path
inkscape:connector-curvature="0"
id="path3917"
d="M 13.112334,55.273361 27.831144,27.836355 37.262615,36.267518 59.26938,7.6873037"
style="fill:none;stroke:#828282;stroke-width:1.11150944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:url(#linearGradient3092);stroke-width:1.11150944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11.112334,53.273361 25.831144,25.836355 35.262615,34.267518 57.26938,5.6873037"
id="path3907"
inkscape:connector-curvature="0" />
</g>
<g
id="g3968">
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.056579,4.8601601 0,54.5115049"
id="path3012"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 5.3997245,53.457681 53.4829855,0"
id="path3014"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 18.641906,53.457681 0,3.214121"
id="path3016"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 26.636363,53.438394 0,3.214121"
id="path3016-5"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 34.590909,53.392939 0,3.214121"
id="path3016-2"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 42.59091,53.39294 0,3.214121"
id="path3016-3"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 50.590909,53.39294 0,3.214121"
id="path3016-51"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11,45.409091 -3.5909091,0"
id="path3057"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.977273,37.318181 -3.5909094,0"
id="path3057-5"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.022728,29.272727 -3.5909094,0"
id="path3057-0"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.022727,21.272727 -3.5909088,0"
id="path3057-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.977273,13.272727 -3.5909094,0"
id="path3057-6"
inkscape:connector-curvature="0" />
</g>
</g>
<g
id="g4151"
transform="translate(-1.4142135,-0.53033008)">
<rect
style="fill:#828282;fill-opacity:1;fill-rule:nonzero;stroke:#828282;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4127"
width="32.880466"
height="27.400387"
x="30.461048"
y="35.240856" />
<g
id="g4139">
<rect
style="fill:url(#radialGradient4165);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4074"
width="32.880466"
height="27.400387"
x="28.461048"
y="33.240856" />
<g
id="g4129">
<rect
y="35.953129"
x="31.956305"
height="2.176846"
width="2.3661368"
id="rect4076"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.26769781;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4078"
d="m 37.653436,36.953166 19.798989,0"
style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
y="53.952271"
x="32.008812"
height="2.176846"
width="2.3661368"
id="rect4076-4"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.26769781;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4078-9"
d="m 37.705945,54.952314 19.798989,0"
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:0" />
<rect
y="47.895966"
x="32.058533"
height="2.176846"
width="2.3661368"
id="rect4076-1"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.26769781;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4078-2"
d="m 37.755665,48.896003 19.798988,0"
style="fill:none;stroke:#006911;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
y="41.953133"
x="31.970144"
height="2.176846"
width="2.3661368"
id="rect4076-8"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.26769781;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4078-3"
d="m 37.667276,42.953168 19.798989,0"
style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:0" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,702 @@
<?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="svg2772"
sodipodi:version="0.32"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="Labels.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2774">
<marker
inkscape:stockid="TriangleOutL"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleOutL"
style="overflow:visible">
<path
id="path4021"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
transform="scale(0.8)" />
</marker>
<marker
inkscape:stockid="TriangleInL"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleInL"
style="overflow:visible">
<path
id="path4012"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
transform="scale(-0.8)" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Mstart"
style="overflow:visible">
<path
id="path3903"
style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.6) translate(0,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path3897"
style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,0)" />
</marker>
<linearGradient
id="linearGradient3890">
<stop
style="stop-color:#ffc657;stop-opacity:1;"
offset="0"
id="stop3892" />
<stop
style="stop-color:#bd7d00;stop-opacity:1;"
offset="1"
id="stop3894" />
</linearGradient>
<linearGradient
id="linearGradient3875">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3877" />
<stop
style="stop-color:#afafaf;stop-opacity:1;"
offset="1"
id="stop3882" />
</linearGradient>
<linearGradient
id="linearGradient4119">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4121" />
<stop
style="stop-color:#c1c1c1;stop-opacity:1;"
offset="1"
id="stop4123" />
</linearGradient>
<linearGradient
id="linearGradient3812">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3814" />
<stop
id="stop3820"
offset="0.5"
style="stop-color:#000000;stop-opacity:0.8230769;" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3816" />
</linearGradient>
<linearGradient
id="linearGradient3909">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913" />
</linearGradient>
<linearGradient
id="linearGradient3876">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2210"
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="radialGradient2202"
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="radialGradient2194"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
cx="225.26402"
cy="672.79736"
fx="225.26402"
fy="672.79736"
r="34.345188" />
<linearGradient
inkscape:collect="always"
id="linearGradient3144">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3146" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3148" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2192"
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="perspective2780" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient3915"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient4004"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3818"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3832"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3844"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<linearGradient
id="linearGradient3877">
<stop
style="stop-color:#0039e5;stop-opacity:1;"
offset="0"
id="stop3879" />
<stop
style="stop-color:#8787ff;stop-opacity:1;"
offset="1"
id="stop3881" />
</linearGradient>
<linearGradient
id="linearGradient3864">
<stop
style="stop-color:#a3a3ff;stop-opacity:1;"
offset="0"
id="stop3866" />
<stop
style="stop-color:#000054;stop-opacity:1;"
offset="1"
id="stop3868" />
</linearGradient>
<linearGradient
id="linearGradient3887">
<stop
style="stop-color:#8c6900;stop-opacity:1;"
offset="0"
id="stop3889" />
<stop
style="stop-color:#ffcf2f;stop-opacity:1;"
offset="1"
id="stop3891" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient4009"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
id="linearGradient3965">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3967" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3969" />
</linearGradient>
<linearGradient
id="linearGradient3117">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3119" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3121" />
</linearGradient>
<linearGradient
id="linearGradient3124">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3126" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3128" />
</linearGradient>
<linearGradient
id="linearGradient3131">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3133" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3135" />
</linearGradient>
<linearGradient
id="linearGradient3138">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3140" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3142" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3876-7"
id="radialGradient3090"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-2.6710402,1.8241313,-1.810185,-2.6506188,207.0925,-28.733191)"
cx="48.585522"
cy="16.830805"
fx="48.585522"
fy="16.830805"
r="24.104704" />
<linearGradient
id="linearGradient3876-7">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878-9" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880-2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909-4"
id="linearGradient3092"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083031"
y2="31.923065" />
<linearGradient
id="linearGradient3909-4">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911-6" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913-9" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4119"
id="radialGradient4125"
cx="52.355858"
cy="45.259937"
fx="52.355858"
fy="45.259937"
r="16.690233"
gradientTransform="matrix(-4.1372873,2.7082745,-1.5153087,-2.3148574,339.22028,1.5423192)"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.313708"
inkscape:cx="26.694829"
inkscape:cy="22.261969"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1360"
inkscape:window-height="718"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata2777">
<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="g3044"
transform="translate(-0.6692704,-0.508322)">
<g
transform="translate(2,2)"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1"
id="g3923">
<rect
y="4.8561425"
x="10.879802"
height="48.776691"
width="47.982609"
id="rect3925"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3927"
d="m 11.056579,4.8601601 0,54.5115049"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3929"
d="m 5.3997245,53.457681 53.4829855,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3931"
d="m 18.641906,53.457681 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3933"
d="m 26.636363,53.438394 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3935"
d="m 34.590909,53.392939 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3937"
d="m 42.59091,53.39294 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3939"
d="m 50.590909,53.39294 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3941"
d="m 11,45.409091 -3.5909091,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3943"
d="m 10.977273,37.318181 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3945"
d="m 11.022728,29.272727 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3947"
d="m 11.022727,21.272727 -3.5909088,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3949"
d="m 10.977273,13.272727 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<rect
y="4.8561425"
x="10.879802"
height="48.776691"
width="47.982609"
id="rect3098"
style="fill:url(#radialGradient3090);fill-opacity:1;stroke:none" />
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4143">
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4070">
<path
inkscape:connector-curvature="0"
id="path4001"
d="m 18.636364,53.363636 0,-48.5454543"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6"
d="m 26.554308,53.415576 0,-48.5454537"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-69"
d="m 34.520316,53.390013 0,-48.5454548"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6-9"
d="m 42.43826,53.441953 0,-48.5454538"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6-9-1"
d="m 50.561525,53.465574 0,-48.5454537"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4136">
<path
inkscape:connector-curvature="0"
id="path4077"
d="m 11.046875,45.268821 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1"
d="m 11.061899,37.283554 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-18"
d="m 11.033927,29.272205 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1-0"
d="m 11.048951,21.286938 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1-0-4"
d="m 11.070598,13.276138 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
id="g4007">
<path
inkscape:connector-curvature="0"
id="path3917"
d="M 13.112334,55.273361 27.831144,27.836355 37.262615,36.267518 59.26938,7.6873037"
style="fill:none;stroke:#828282;stroke-width:1.11150944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:url(#linearGradient3092);stroke-width:1.11150944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11.112334,53.273361 25.831144,25.836355 35.262615,34.267518 57.26938,5.6873037"
id="path3907"
inkscape:connector-curvature="0" />
</g>
<g
id="g3968">
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.056579,4.8601601 0,54.5115049"
id="path3012"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 5.3997245,53.457681 53.4829855,0"
id="path3014"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 18.641906,53.457681 0,3.214121"
id="path3016"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 26.636363,53.438394 0,3.214121"
id="path3016-5"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 34.590909,53.392939 0,3.214121"
id="path3016-2"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 42.59091,53.39294 0,3.214121"
id="path3016-3"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 50.590909,53.39294 0,3.214121"
id="path3016-51"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11,45.409091 -3.5909091,0"
id="path3057"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.977273,37.318181 -3.5909094,0"
id="path3057-5"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.022728,29.272727 -3.5909094,0"
id="path3057-0"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.022727,21.272727 -3.5909088,0"
id="path3057-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.977273,13.272727 -3.5909094,0"
id="path3057-6"
inkscape:connector-curvature="0" />
</g>
</g>
<g
id="g4903"
transform="translate(1.0935922,4.0104076)">
<g
id="g4905"
transform="matrix(1.0931199,0,0,1.0931199,-4.3931575,-7.4228984)">
<path
inkscape:connector-curvature="0"
id="path4907"
d="m 46.875,38.25 0,17"
style="fill:none;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleInL);marker-end:url(#TriangleOutL)" />
<path
inkscape:connector-curvature="0"
id="path4909"
d="m 46.9375,38.8125 0,15.375"
style="fill:none;stroke:#000000;stroke-width:1.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
transform="matrix(0,1.0931199,-1.0931199,0,97.950193,-7.5595384)"
id="g4911">
<path
style="fill:none;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleInL);marker-end:url(#TriangleOutL)"
d="m 46.875,38.25 0,17"
id="path4913"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 46.9375,38.8125 0,15.375"
id="path4915"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

701
src/Mod/Plot/Icons/Save.svg Executable file
View File

@@ -0,0 +1,701 @@
<?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="svg2772"
sodipodi:version="0.32"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="Save.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2774">
<linearGradient
id="linearGradient3965">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3967" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3969" />
</linearGradient>
<linearGradient
id="linearGradient3887">
<stop
style="stop-color:#8c6900;stop-opacity:1;"
offset="0"
id="stop3889" />
<stop
style="stop-color:#ffcf2f;stop-opacity:1;"
offset="1"
id="stop3891" />
</linearGradient>
<linearGradient
id="linearGradient3877">
<stop
style="stop-color:#0039e5;stop-opacity:1;"
offset="0"
id="stop3879" />
<stop
style="stop-color:#8787ff;stop-opacity:1;"
offset="1"
id="stop3881" />
</linearGradient>
<linearGradient
id="linearGradient3864">
<stop
style="stop-color:#a3a3ff;stop-opacity:1;"
offset="0"
id="stop3866" />
<stop
style="stop-color:#000054;stop-opacity:1;"
offset="1"
id="stop3868" />
</linearGradient>
<linearGradient
id="linearGradient3909">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913" />
</linearGradient>
<linearGradient
id="linearGradient3876">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2210"
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="radialGradient2202"
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="radialGradient2194"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
cx="225.26402"
cy="672.79736"
fx="225.26402"
fy="672.79736"
r="34.345188" />
<linearGradient
inkscape:collect="always"
id="linearGradient3144">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3146" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3148" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2192"
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="perspective2780" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient3915"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient4004"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3876"
id="radialGradient3090"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-2.6710402,1.8241313,-1.810185,-2.6506188,207.0925,-28.733191)"
cx="48.585522"
cy="16.830805"
fx="48.585522"
fy="16.830805"
r="24.104704" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient3092"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="linearGradient3874"
x1="32.280331"
y1="60.087601"
x2="60.896446"
y2="28.798124"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3877"
id="linearGradient3883"
x1="32.280331"
y1="60.087601"
x2="60.896446"
y2="28.798124"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3887"
id="linearGradient3893"
x1="36.446327"
y1="59.271229"
x2="53.444622"
y2="44.863926"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.91110757,0,0,1,4.2891354,0.35355339)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient3975"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient3977"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient3979"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient3981"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient3983"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3877"
id="linearGradient3994"
gradientUnits="userSpaceOnUse"
x1="32.280331"
y1="60.087601"
x2="60.896446"
y2="28.798124" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="linearGradient3996"
gradientUnits="userSpaceOnUse"
x1="32.280331"
y1="60.087601"
x2="60.896446"
y2="28.798124" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3887"
id="linearGradient3998"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.91110757,0,0,1,4.2891354,0.35355339)"
x1="36.446327"
y1="59.271229"
x2="53.444622"
y2="44.863926" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient4000"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient4002"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient4005"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient4007"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient4009"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8284271"
inkscape:cx="-56.626187"
inkscape:cy="16.500482"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1360"
inkscape:window-height="718"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata2777">
<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">
<g
id="g3044"
transform="translate(-4.4748737,-3.0052038)">
<g
transform="translate(2,2)"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1"
id="g3923">
<rect
y="4.8561425"
x="10.879802"
height="48.776691"
width="47.982609"
id="rect3925"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3927"
d="m 11.056579,4.8601601 0,54.5115049"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3929"
d="m 5.3997245,53.457681 53.4829855,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3931"
d="m 18.641906,53.457681 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3933"
d="m 26.636363,53.438394 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3935"
d="m 34.590909,53.392939 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3937"
d="m 42.59091,53.39294 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3939"
d="m 50.590909,53.39294 0,3.214121"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3941"
d="m 11,45.409091 -3.5909091,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3943"
d="m 10.977273,37.318181 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3945"
d="m 11.022728,29.272727 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3947"
d="m 11.022727,21.272727 -3.5909088,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3949"
d="m 10.977273,13.272727 -3.5909094,0"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<rect
y="4.8561425"
x="10.879802"
height="48.776691"
width="47.982609"
id="rect3098"
style="fill:url(#radialGradient3090);fill-opacity:1;stroke:none" />
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4143">
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4070">
<path
inkscape:connector-curvature="0"
id="path4001"
d="m 18.636364,53.363636 0,-48.5454543"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6"
d="m 26.554308,53.415576 0,-48.5454537"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-69"
d="m 34.520316,53.390013 0,-48.5454548"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6-9"
d="m 42.43826,53.441953 0,-48.5454538"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4001-6-9-1"
d="m 50.561525,53.465574 0,-48.5454537"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
style="stroke:#b4b4b4;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="g4136">
<path
inkscape:connector-curvature="0"
id="path4077"
d="m 11.046875,45.268821 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1"
d="m 11.061899,37.283554 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-18"
d="m 11.033927,29.272205 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1-0"
d="m 11.048951,21.286938 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4077-1-0-4"
d="m 11.070598,13.276138 47.818182,0"
style="fill:none;stroke:#b4b4b4;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
<g
id="g4007">
<path
inkscape:connector-curvature="0"
id="path3917"
d="M 13.112334,55.273361 27.831144,27.836355 37.262615,36.267518 59.26938,7.6873037"
style="fill:none;stroke:#828282;stroke-width:1.11150944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:url(#linearGradient3092);stroke-width:1.11150944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11.112334,53.273361 25.831144,25.836355 35.262615,34.267518 57.26938,5.6873037"
id="path3907"
inkscape:connector-curvature="0" />
</g>
<g
id="g3968">
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.056579,4.8601601 0,54.5115049"
id="path3012"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 5.3997245,53.457681 53.4829855,0"
id="path3014"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 18.641906,53.457681 0,3.214121"
id="path3016"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 26.636363,53.438394 0,3.214121"
id="path3016-5"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 34.590909,53.392939 0,3.214121"
id="path3016-2"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 42.59091,53.39294 0,3.214121"
id="path3016-3"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 50.590909,53.39294 0,3.214121"
id="path3016-51"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11,45.409091 -3.5909091,0"
id="path3057"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.977273,37.318181 -3.5909094,0"
id="path3057-5"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.022728,29.272727 -3.5909094,0"
id="path3057-0"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.022727,21.272727 -3.5909088,0"
id="path3057-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.977273,13.272727 -3.5909094,0"
id="path3057-6"
inkscape:connector-curvature="0" />
</g>
</g>
<g
id="g4043">
<g
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1"
id="g4011"
transform="translate(2,0)">
<path
sodipodi:nodetypes="cccccc"
inkscape:connector-curvature="0"
id="path4013"
d="m 32.25,60.213388 0,-23.175475 7.953966,-8.225413 20.546033,0 0,31.4375 z"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<rect
y="44.731342"
x="36.340588"
height="15.821514"
width="20.938135"
id="rect4015"
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-width:0.38180779999999997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<g
style="fill:#828282;fill-opacity:1;stroke:#828282;stroke-opacity:1"
transform="matrix(1,0,0,1.1734904,3.078125,-4.8926108)"
id="g4017">
<rect
style="fill:#828282;fill-opacity:1;fill-rule:nonzero;stroke:#828282;stroke-opacity:1"
id="rect4019"
width="8.485281"
height="10.69499"
x="41.653008"
y="28.291107" />
<rect
style="fill:#828282;fill-opacity:1;fill-rule:nonzero;stroke:#828282;stroke-opacity:1"
id="rect4021"
width="3.9774761"
height="10.69499"
x="52.855694"
y="28.291107" />
<rect
style="fill:#828282;fill-opacity:1;fill-rule:nonzero;stroke:#828282;stroke-opacity:1"
id="rect4023"
width="5.1113596"
height="2.519068"
x="49.806831"
y="28.291109" />
<rect
style="fill:#828282;fill-opacity:1;fill-rule:nonzero;stroke:#828282;stroke-opacity:1"
id="rect4025"
width="5.1113596"
height="2.519068"
x="49.737289"
y="36.470932" />
</g>
</g>
<g
transform="translate(0,-2)"
id="g3985">
<path
style="fill:url(#linearGradient3994);fill-opacity:1;stroke:url(#linearGradient3996);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 32.25,60.213388 0,-23.175475 7.953966,-8.225413 20.546033,0 0,31.4375 z"
id="path3094"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<rect
style="fill:url(#linearGradient3998);fill-opacity:1;stroke:#ab5300;stroke-width:0.3818078;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3885"
width="20.938135"
height="15.821514"
x="36.340588"
y="44.731342" />
<g
id="g3951"
transform="matrix(1,0,0,1.1734904,3.078125,-4.8926108)"
style="fill:url(#linearGradient4009);fill-opacity:1;stroke:none">
<rect
y="28.291107"
x="41.653008"
height="10.69499"
width="8.485281"
id="rect3895"
style="fill:url(#linearGradient4000);fill-opacity:1;fill-rule:nonzero;stroke:none" />
<rect
y="28.291107"
x="52.855694"
height="10.69499"
width="3.9774761"
id="rect3895-0"
style="fill:url(#linearGradient4002);fill-opacity:1;fill-rule:nonzero;stroke:none" />
<rect
y="28.291109"
x="49.806831"
height="2.519068"
width="5.1113596"
id="rect3895-0-7"
style="fill:url(#linearGradient4005);fill-opacity:1;fill-rule:nonzero;stroke:none" />
<rect
y="36.470932"
x="49.737289"
height="2.519068"
width="5.1113596"
id="rect3895-0-7-7"
style="fill:url(#linearGradient4007);fill-opacity:1;fill-rule:nonzero;stroke:none" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,457 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
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="svg2772"
sodipodi:version="0.32"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="Series.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2774">
<marker
inkscape:stockid="EmptyTriangleOutL"
orient="auto"
refY="0.0"
refX="0.0"
id="EmptyTriangleOutL"
style="overflow:visible">
<path
id="path4215"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;fill:#FFFFFF;stroke:#000000;stroke-width:1.0pt"
transform="scale(0.8) translate(-6,0)" />
</marker>
<linearGradient
id="linearGradient5055"
osb:paint="solid">
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="0"
id="stop5057" />
</linearGradient>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mend"
style="overflow:visible;">
<path
id="path4064"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;">
<path
id="path4076"
style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lend"
style="overflow:visible;">
<path
id="path4058"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<linearGradient
id="linearGradient4119">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4121" />
<stop
style="stop-color:#c1c1c1;stop-opacity:1;"
offset="1"
id="stop4123" />
</linearGradient>
<linearGradient
id="linearGradient3812">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3814" />
<stop
id="stop3820"
offset="0.5"
style="stop-color:#000000;stop-opacity:0.8230769;" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3816" />
</linearGradient>
<linearGradient
id="linearGradient3909">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913" />
</linearGradient>
<linearGradient
id="linearGradient3876">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2210"
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="radialGradient2202"
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="radialGradient2194"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
cx="225.26402"
cy="672.79736"
fx="225.26402"
fy="672.79736"
r="34.345188" />
<linearGradient
inkscape:collect="always"
id="linearGradient3144">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3146" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3148" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3144"
id="radialGradient2192"
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="perspective2780" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient3915"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3909"
id="linearGradient4004"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1115095,0,0,1.1115095,-1.1771587,-6.0024571)"
x1="10.556579"
y1="31.923065"
x2="53.083032"
y2="31.923065" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3818"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3832"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3812"
id="radialGradient3844"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.016424,0,-0.47862716)"
cx="34.961354"
cy="29.141878"
fx="34.961354"
fy="29.141878"
r="24.127427" />
<linearGradient
id="linearGradient3877">
<stop
style="stop-color:#0039e5;stop-opacity:1;"
offset="0"
id="stop3879" />
<stop
style="stop-color:#8787ff;stop-opacity:1;"
offset="1"
id="stop3881" />
</linearGradient>
<linearGradient
id="linearGradient3864">
<stop
style="stop-color:#a3a3ff;stop-opacity:1;"
offset="0"
id="stop3866" />
<stop
style="stop-color:#000054;stop-opacity:1;"
offset="1"
id="stop3868" />
</linearGradient>
<linearGradient
id="linearGradient3887">
<stop
style="stop-color:#8c6900;stop-opacity:1;"
offset="0"
id="stop3889" />
<stop
style="stop-color:#ffcf2f;stop-opacity:1;"
offset="1"
id="stop3891" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3965"
id="linearGradient4009"
gradientUnits="userSpaceOnUse"
x1="41.653008"
y1="33.640553"
x2="56.833172"
y2="33.640553" />
<linearGradient
id="linearGradient3965">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3967" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3969" />
</linearGradient>
<linearGradient
id="linearGradient3117">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3119" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3121" />
</linearGradient>
<linearGradient
id="linearGradient3124">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3126" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3128" />
</linearGradient>
<linearGradient
id="linearGradient3131">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3133" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3135" />
</linearGradient>
<linearGradient
id="linearGradient3138">
<stop
style="stop-color:#575757;stop-opacity:1;"
offset="0"
id="stop3140" />
<stop
style="stop-color:#f5f5f5;stop-opacity:1;"
offset="1"
id="stop3142" />
</linearGradient>
<linearGradient
id="linearGradient3876-7">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3878-9" />
<stop
style="stop-color:#e2e2e2;stop-opacity:1"
offset="1"
id="stop3880-2" />
</linearGradient>
<linearGradient
id="linearGradient3909-4">
<stop
style="stop-color:#6e0000;stop-opacity:1;"
offset="0"
id="stop3911-6" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="1"
id="stop3913-9" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4119"
id="radialGradient4125"
cx="52.355858"
cy="45.259937"
fx="52.355858"
fy="45.259937"
r="16.690233"
gradientTransform="matrix(-4.1372873,2.7082745,-1.5153087,-2.3148574,339.22028,1.5423192)"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568543"
inkscape:cx="6.5875919"
inkscape:cy="31.192036"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1360"
inkscape:window-height="718"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata2777">
<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="g3892"
transform="translate(2,-2)">
<g
style="stroke:#828282;stroke-opacity:1"
transform="translate(2,2)"
id="g3884">
<path
inkscape:connector-curvature="0"
id="path3886"
d="M 4.065864,43.847457 C 6.1871843,31.473088 6.1871843,15.209633 15.556349,13.265089 24.925514,11.320545 18.207999,27.584001 28.991378,25.462681 39.774756,23.34136 51.795571,5.133361 51.795571,5.133361"
style="fill:none;stroke:#828282;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.5, 1.5;stroke-dashoffset:0" />
<path
inkscape:connector-curvature="0"
id="path3888"
d="M 4.4194173,50.034641 C 10.783378,41.54936 12.551145,31.119535 21.743533,33.417632 c 9.192388,2.298097 21.213204,6.363961 30.052038,-4.242641"
style="fill:none;stroke:#828282;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3890"
d="m 4.9497474,57.989592 10.9601546,1.590991 9.369165,-9.722718 14.849242,4.065863 14.142136,-3.71231"
style="fill:none;stroke:#828282;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:16, 4, 2, 4;stroke-dashoffset:0" />
</g>
<g
id="g3879">
<path
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.5, 1.5;stroke-dashoffset:0"
d="M 4.065864,43.847457 C 6.1871843,31.473088 6.1871843,15.209633 15.556349,13.265089 24.925514,11.320545 18.207999,27.584001 28.991378,25.462681 39.774756,23.34136 51.795571,5.133361 51.795571,5.133361"
id="path3076"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 4.4194173,50.034641 C 10.783378,41.54936 12.551145,31.119535 21.743533,33.417632 c 9.192388,2.298097 21.213204,6.363961 30.052038,-4.242641"
id="path3870"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#0000ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:16, 4, 2, 4;stroke-dashoffset:0"
d="m 4.9497474,57.989592 10.9601546,1.590991 9.369165,-9.722718 14.849242,4.065863 14.142136,-3.71231"
id="path3872"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

50
src/Mod/Plot/InitGui.py Normal file
View File

@@ -0,0 +1,50 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
class PlotWorkbench ( Workbench ):
""" @brief Workbench of Plot module. Here toolbars & icons are append. """
from plotUtils import Paths, Translator
import PlotGui
Icon = Paths.iconsPath() + "/Icon.svg"
MenuText = str(Translator.translate("Plot"))
ToolTip = str(Translator.translate("Plot"))
def Initialize(self):
from plotUtils import Translator
# ToolBar
list = ["Plot_SaveFig", "Plot_Axes", "Plot_Series", "Plot_Grid", "Plot_Legend", "Plot_Labels", "Plot_Positions"]
self.appendToolbar("Plot",list)
# Menu
list = ["Plot_SaveFig", "Plot_Axes", "Plot_Series", "Plot_Grid", "Plot_Legend", "Plot_Labels", "Plot_Positions"]
self.appendMenu("Plot",list)
try:
import matplotlib
Gui.addWorkbench(PlotWorkbench())
except ImportError:
from plotUtils import Translator
msg = Translator.translate("matplotlib not found, Plot module will be disabled.\n")
FreeCAD.Console.PrintMessage(msg)

45
src/Mod/Plot/Makefile.am Normal file
View File

@@ -0,0 +1,45 @@
# Change data dir from default ($(prefix)/share) to actual dir
datadir = $(prefix)/Mod/Plot
data_DATA = \
Plot.py \
InitGui.py \
PlotGui.py
nobase_data_DATA = \
Icons/Axes.svg \
Icons/Grid.svg \
Icons/Icon.svg \
Icons/Labels.svg \
Icons/Legend.svg \
Icons/Positions.svg \
Icons/Save.svg \
Icons/Series.svg \
plotAxes/__init__.py \
plotAxes/TaskPanel.py \
plotAxes/TaskPanel.ui \
plotLabels/__init__.py \
plotLabels/TaskPanel.py \
plotLabels/TaskPanel.ui \
plotPositions/__init__.py \
plotPositions/TaskPanel.py \
plotPositions/TaskPanel.ui \
plotSave/__init__.py \
plotSave/TaskPanel.py \
plotSave/TaskPanel.ui \
plotSeries/__init__.py \
plotSeries/TaskPanel.py \
plotSeries/TaskPanel.ui \
plotUtils/__init__.py \
plotUtils/Paths.py \
plotUtils/Translator.py
CLEANFILES = $(BUILT_SOURCES)
EXTRA_DIST = \
$(data_DATA) \
$(nobase_data_DATA) \
CMakeLists.txt \
README \
plot.dox

314
src/Mod/Plot/Plot.py Normal file
View File

@@ -0,0 +1,314 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
# FreeCAD
import FreeCAD
# Plot module
from plotUtils import Paths, Translator
# PyQt4
from PyQt4 import QtCore, QtGui
# Matplot lib
try:
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
from matplotlib.figure import Figure
except ImportError:
msg = Translator.translate("matplotlib not installed, so Plot module is disabled.\n")
FreeCAD.Console.PrintError(msg)
raise ImportError("matplotlib not installed")
def getMainWindow():
""" getMainWindow(): Gets FreeCAD main window. """
toplevel = QtGui.qApp.topLevelWidgets()
for i in toplevel:
if i.metaObject().className() == "Gui::MainWindow":
return i
return None
def getMdiArea():
""" getMdiArea(): Gets FreeCAD MdiArea. """
mw = getMainWindow()
if not mw:
return None
return mw.findChild(QtGui.QMdiArea)
def getPlot():
""" getPlot(): Gets selected Plot document if exist. """
# Get active tab
mdi = getMdiArea()
if not mdi:
return None
sub = mdi.activeSubWindow()
if not sub:
return None
# Explore childrens looking for Plot class
for i in sub.children():
if i.metaObject().className() == "Plot":
return i
return None
def figure(winTitle="plot"):
""" figure(winTitle="plot"): Create a new plot subwindow.\n winTitle = Tab title. """
mdi = getMdiArea()
if not mdi:
return None
win = Plot(winTitle)
sub=mdi.addSubWindow(win)
sub.show()
return win
def plot(x,y,name=None):
""" plot(x,y,name=None): Plots a new serie (as line plot)\n x = X values\n y = Y values\n name = Serie name (for legend). """
# Get active plot, or create another one if don't exist
plt = getPlot()
if not plt:
plt = figure()
# Call to plot
return plt.plot(x,y,name)
def series():
""" lines(): Get all lines from selected plot. """
plt = getPlot()
if not plt:
return []
return plt.series
def removeSerie(index):
""" removeSerie(index): Removes a serie from plot.\n index = Index of serie to remove. """
# Get active series
plt = getPlot()
if not plt:
return
plots = plt.series
if not plots:
return
# Remove line from plot
axes = plots[index].axes
axes.lines.pop(plots[index].lid)
# Remove serie from list
del plt.series[index]
# Update GUI
plt.update()
def legend(status=True, pos=None, fontsize=None):
""" legend(status=True): Show/Hide legend.\n status = True if legend must be shown, False otherwise.\n pos = Legend position.\n fontsize = Font size """
plt = getPlot()
if not plt:
return
plt.legend = status
if pos:
plt.legPos = pos
if fontsize:
plt.legSiz = fontsize
# Hide all legends
for axes in plt.axesList:
axes.legend_ = None
# Legend must be activated on last axes
axes = plt.axesList[-1]
if status:
# Setup legend handles and names
lines = series()
handles = []
names = []
for l in lines:
if l.name != None:
handles.append(l.line)
names.append(l.name)
# Show the legend
l = axes.legend(handles, names, bbox_to_anchor=plt.legPos)
for t in l.get_texts():
t.set_fontsize(plt.legSiz)
plt.update()
def grid(status=True):
""" grid(status=True): Show/Hide grid.\n status = True if grid must be shown, False otherwise. """
plt = getPlot()
if not plt:
return
plt.grid = status
axes = plt.axes
axes.grid(status)
plt.update()
def title(string):
""" title(string): Setup plot title.\n string = Title to set. """
plt = getPlot()
if not plt:
return
axes = plt.axes
axes.set_title(string)
plt.update()
def xlabel(string):
""" xlabel(string): Setup x label.\n string = Title to set. """
plt = getPlot()
if not plt:
return
axes = plt.axes
axes.set_xlabel(string)
plt.update()
def ylabel(string):
""" ylabel(string): Setup y label.\n string = Title to set. """
plt = getPlot()
if not plt:
return
axes = plt.axes
axes.set_ylabel(string)
plt.update()
def axesList():
""" axesList(): Gets plot axes list. """
plt = getPlot()
if not plt:
return []
return plt.axesList
def axes():
""" axes(): Gets active plot axes. """
plt = getPlot()
if not plt:
return None
return plt.axes
def addNewAxes(rect=None, frameon=True, patchcolor='none'):
""" addNewAxes(pos=None, frameon=True): Add new axes to plot, setting it as active one.\n rect = Axes area, None to copy last axes data.\n frameon = True to show frame, False otherwise.\n patchcolor = Patch color, 'none' for transparent plot. """
plt = getPlot()
if not plt:
return None
fig = plt.fig
if rect == None:
rect = plt.axes.get_position()
ax = fig.add_axes(rect, frameon=frameon)
ax.xaxis.set_ticks_position('bottom')
ax.spines['top'].set_color('none')
ax.yaxis.set_ticks_position('left')
ax.spines['right'].set_color('none')
ax.patch.set_facecolor(patchcolor)
plt.axesList.append(ax)
plt.setActiveAxes(-1)
plt.update()
return ax
def save(path, figsize=None, dpi=None):
""" save(path): Save plot.\n path = Destination file path.\n figsize = w,h figure size tuple in inches.\n dpi = Dots per inch."""
plt = getPlot()
if not plt:
return
# Backup figure options
fig = plt.fig
sizeBack = fig.get_size_inches()
dpiBack = fig.get_dpi()
# Save figure with new options
if figsize:
fig.set_size_inches(figsize[0], figsize[1])
if dpi:
fig.set_dpi(dpi)
plt.canvas.print_figure(path)
# Restore figure options
fig.set_size_inches(sizeBack[0], sizeBack[1])
fig.set_dpi(dpiBack)
plt.update()
class Line():
def __init__(self, axes, x, y, name):
""" __init__(axes, x, y, name): Construct new plot serie.\n axes = Active axes\n x = X values\n y = Y values\n name = Serie name (for legend). """
self.axes = axes
self.x = x
self.y = y
self.name = name
self.lid = len(axes.lines)
self.line, = axes.plot(x,y)
def setp(self, prop, value):
""" setp(prop, value): Change line property value.\n prop = Property name.\n value = New property value. """
plt.setp(self.line, prop, value)
def getp(self, prop):
""" getp(prop): Get property value.\n prop = Property name."""
return plt.getp(self.line, prop)
class Plot(QtGui.QWidget):
def __init__(self, winTitle="plot", parent = None, flags = QtCore.Qt.WindowFlags(0)):
""" __init__(winTitle="plot", parent = None, flags = Qt.WindowFlags(0)): Construct a new plot widget.\n winTitle = Tab title.\n parent = Widget parent.\n flags = QWidget flags"""
QtGui.QWidget.__init__(self, parent, flags)
self.setWindowTitle(winTitle)
# Create matplotlib canvas
self.fig = Figure()
self.canvas = FigureCanvas(self.fig)
self.canvas.setParent(self)
# Get axes
self.axes = self.fig.add_subplot(111)
self.axesList = [self.axes]
self.axes.xaxis.set_ticks_position('bottom')
self.axes.spines['top'].set_color('none')
self.axes.yaxis.set_ticks_position('left')
self.axes.spines['right'].set_color('none')
# Setup layout
vbox = QtGui.QVBoxLayout()
vbox.addWidget(self.canvas)
self.setLayout(vbox)
# Active series
self.series = []
# Indicators
self.skip = False
self.legend = False
self.legPos = (1.0, 1.0)
self.legSiz = 14
self.grid = False
def plot(self, x, y, name=None):
""" plot(self, x, y, name=None): Plot a new line and return it.\n x = X values\n y = Y values\n name = Serie name (for legend). """
l = Line(self.axes, x, y, name)
self.series.append(l)
# Update window
self.update()
return l
def update(self):
""" update(): Updates plot. """
if not self.skip:
self.skip = True
if self.legend:
legend(self.legend)
self.canvas.draw()
self.skip = False
def isGrid(self):
""" isGrid(): Return True if Grid is active, False otherwise. """
return bool(self.grid)
def isLegend(self):
""" isLegend(): Return True if Legend is active, False otherwise. """
return bool(self.legend)
def setActiveAxes(self, index):
""" setActiveAxes(index): Change current active axes.\n index = Index of the new active axes. """
self.axes = self.axesList[index]
self.fig.sca(self.axes)

132
src/Mod/Plot/PlotGui.py Normal file
View File

@@ -0,0 +1,132 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
from PyQt4 import QtCore, QtGui
import FreeCAD, FreeCADGui, os
class Save:
def Activated(self):
import plotSave
plotSave.load()
def GetResources(self):
from plotUtils import Paths, Translator
IconPath = Paths.iconsPath() + "/Save.svg"
MenuText = str(Translator.translate('Save plot'))
ToolTip = str(Translator.translate('Save plot as image file.'))
return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip}
class Axes:
def Activated(self):
import plotAxes
plotAxes.load()
def GetResources(self):
from plotUtils import Paths, Translator
IconPath = Paths.iconsPath() + "/Axes.svg"
MenuText = str(Translator.translate('Configure axes'))
ToolTip = str(Translator.translate('Configure axes parameters.'))
return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip}
class Series:
def Activated(self):
import plotSeries
plotSeries.load()
def GetResources(self):
from plotUtils import Paths, Translator
IconPath = Paths.iconsPath() + "/Series.svg"
MenuText = str(Translator.translate('Configure series'))
ToolTip = str(Translator.translate('Configure series drawing style and label.'))
return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip}
class Grid:
def Activated(self):
import Plot
from plotUtils import Translator
plt = Plot.getPlot()
if not plt:
msg = Translator.translate("Grid must be activated on top of a plot document.")
FreeCAD.Console.PrintError(msg+"\n")
return
flag = plt.isGrid()
Plot.grid(not flag)
def GetResources(self):
from plotUtils import Paths, Translator
IconPath = Paths.iconsPath() + "/Grid.svg"
MenuText = str(Translator.translate('Show/Hide grid'))
ToolTip = str(Translator.translate('Show/Hide grid on selected plot'))
return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip}
class Legend:
def Activated(self):
import Plot
from plotUtils import Translator
plt = Plot.getPlot()
if not plt:
msg = Translator.translate("Legend must be activated on top of a plot document.")
FreeCAD.Console.PrintError(msg+"\n")
return
flag = plt.isLegend()
Plot.legend(not flag)
def GetResources(self):
from plotUtils import Paths, Translator
IconPath = Paths.iconsPath() + "/Legend.svg"
MenuText = str(Translator.translate('Show/Hide legend'))
ToolTip = str(Translator.translate('Show/Hide legend on selected plot'))
return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip}
class Labels:
def Activated(self):
import plotLabels
plotLabels.load()
def GetResources(self):
from plotUtils import Paths, Translator
IconPath = Paths.iconsPath() + "/Labels.svg"
MenuText = str(Translator.translate('Set labels'))
ToolTip = str(Translator.translate('Set title and axes labels'))
return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip}
class Positions:
def Activated(self):
import plotPositions
plotPositions.load()
def GetResources(self):
from plotUtils import Paths, Translator
IconPath = Paths.iconsPath() + "/Positions.svg"
MenuText = str(Translator.translate('Set positions and sizes'))
ToolTip = str(Translator.translate('Set labels and legend positions and sizes.'))
return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip}
FreeCADGui.addCommand('Plot_SaveFig', Save())
FreeCADGui.addCommand('Plot_Axes', Axes())
FreeCADGui.addCommand('Plot_Series', Series())
FreeCADGui.addCommand('Plot_Grid', Grid())
FreeCADGui.addCommand('Plot_Legend', Legend())
FreeCADGui.addCommand('Plot_Labels', Labels())
FreeCADGui.addCommand('Plot_Positions', Positions())

10
src/Mod/Plot/README Normal file
View File

@@ -0,0 +1,10 @@
* Authors
---------
Jose Luis Cercós Pita <jlcercos@gmail.com>
* Introduction
--------------
Plot is a module that provide an interface to perform plots.

3
src/Mod/Plot/plot.dox Normal file
View File

@@ -0,0 +1,3 @@
/** \defgroup PLOT Plot
* \ingroup WORKBENCHES */

View File

@@ -0,0 +1,425 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
# FreeCAD modules
import FreeCAD as App
import FreeCADGui as Gui
# Qt library
from PyQt4 import QtGui,QtCore
# Module
import Plot
from plotUtils import Paths, Translator
class TaskPanel:
def __init__(self):
self.ui = Paths.modulePath() + "/plotAxes/TaskPanel.ui"
self.skip = False
def accept(self):
return True
def reject(self):
return True
def clicked(self, index):
pass
def open(self):
pass
def needsFullSpace(self):
return True
def isAllowedAlterSelection(self):
return False
def isAllowedAlterView(self):
return True
def isAllowedAlterDocument(self):
return False
def helpRequested(self):
pass
def setupUi(self):
mw = self.getMainWindow()
form = mw.findChild(QtGui.QWidget, "TaskPanel")
form.axId = form.findChild(QtGui.QSpinBox, "axesIndex")
form.new = form.findChild(QtGui.QPushButton, "newAxesButton")
form.remove = form.findChild(QtGui.QPushButton, "delAxesButton")
form.all = form.findChild(QtGui.QCheckBox, "allAxes")
form.xMin = form.findChild(QtGui.QSlider, "posXMin")
form.xMax = form.findChild(QtGui.QSlider, "posXMax")
form.yMin = form.findChild(QtGui.QSlider, "posYMin")
form.yMax = form.findChild(QtGui.QSlider, "posYMax")
form.xAlign = form.findChild(QtGui.QComboBox, "xAlign")
form.yAlign = form.findChild(QtGui.QComboBox, "yAlign")
form.xOffset = form.findChild(QtGui.QSpinBox, "xOffset")
form.yOffset = form.findChild(QtGui.QSpinBox, "yOffset")
form.xAuto = form.findChild(QtGui.QCheckBox, "xAuto")
form.yAuto = form.findChild(QtGui.QCheckBox, "yAuto")
form.xSMin = form.findChild(QtGui.QLineEdit, "xMin")
form.xSMax = form.findChild(QtGui.QLineEdit, "xMax")
form.ySMin = form.findChild(QtGui.QLineEdit, "yMin")
form.ySMax = form.findChild(QtGui.QLineEdit, "yMax")
self.form = form
self.retranslateUi()
# Look for active axes if can
axId = 0
plt = Plot.getPlot()
if plt:
while plt.axes != plt.axesList[axId]:
axId = axId + 1
form.axId.setValue(axId)
self.updateUI()
QtCore.QObject.connect(form.axId, QtCore.SIGNAL('valueChanged(int)'),self.onAxesId)
QtCore.QObject.connect(form.new, QtCore.SIGNAL("pressed()"),self.onNew)
QtCore.QObject.connect(form.remove, QtCore.SIGNAL("pressed()"),self.onRemove)
QtCore.QObject.connect(form.xMin, QtCore.SIGNAL("valueChanged(int)"),self.onDims)
QtCore.QObject.connect(form.xMax, QtCore.SIGNAL("valueChanged(int)"),self.onDims)
QtCore.QObject.connect(form.yMin, QtCore.SIGNAL("valueChanged(int)"),self.onDims)
QtCore.QObject.connect(form.yMax, QtCore.SIGNAL("valueChanged(int)"),self.onDims)
QtCore.QObject.connect(form.xAlign, QtCore.SIGNAL("currentIndexChanged(int)"),self.onAlign)
QtCore.QObject.connect(form.yAlign, QtCore.SIGNAL("currentIndexChanged(int)"),self.onAlign)
QtCore.QObject.connect(form.xOffset,QtCore.SIGNAL("valueChanged(int)"),self.onOffset)
QtCore.QObject.connect(form.yOffset,QtCore.SIGNAL("valueChanged(int)"),self.onOffset)
QtCore.QObject.connect(form.xAuto, QtCore.SIGNAL("stateChanged(int)"),self.onScales)
QtCore.QObject.connect(form.yAuto, QtCore.SIGNAL("stateChanged(int)"),self.onScales)
QtCore.QObject.connect(form.xSMin, QtCore.SIGNAL("editingFinished()"),self.onScales)
QtCore.QObject.connect(form.xSMax, QtCore.SIGNAL("editingFinished()"),self.onScales)
QtCore.QObject.connect(form.ySMin, QtCore.SIGNAL("editingFinished()"),self.onScales)
QtCore.QObject.connect(form.ySMax, QtCore.SIGNAL("editingFinished()"),self.onScales)
QtCore.QObject.connect(Plot.getMdiArea(),QtCore.SIGNAL("subWindowActivated(QMdiSubWindow*)"),self.onMdiArea)
return False
def getMainWindow(self):
"returns the main window"
# using QtGui.qApp.activeWindow() isn't very reliable because if another
# widget than the mainwindow is active (e.g. a dialog) the wrong widget is
# returned
toplevel = QtGui.qApp.topLevelWidgets()
for i in toplevel:
if i.metaObject().className() == "Gui::MainWindow":
return i
raise Exception("No main window found")
def retranslateUi(self):
""" Set user interface locale strings.
"""
self.form.setWindowTitle(Translator.translate("Configure axes"))
self.form.findChild(QtGui.QLabel, "axesLabel").setText(Translator.translate("Active axes"))
self.form.all.setText(Translator.translate("Apply to all axes"))
self.form.findChild(QtGui.QLabel, "dimLabel").setText(Translator.translate("Dimensions"))
self.form.findChild(QtGui.QLabel, "xPosLabel").setText(Translator.translate("X axis position"))
self.form.findChild(QtGui.QLabel, "yPosLabel").setText(Translator.translate("Y axis position"))
self.form.findChild(QtGui.QLabel, "scalesLabel").setText(Translator.translate("Scales"))
self.form.xAuto.setText(Translator.translate("X auto"))
self.form.yAuto.setText(Translator.translate("Y auto"))
self.form.findChild(QtGui.QCheckBox, "allAxes").setText(Translator.translate("Apply to all axes"))
self.form.findChild(QtGui.QLabel, "dimLabel").setText(Translator.translate("Dimensions"))
self.form.findChild(QtGui.QLabel, "xPosLabel").setText(Translator.translate("X axis position"))
self.form.findChild(QtGui.QLabel, "yPosLabel").setText(Translator.translate("Y axis position"))
def onAxesId(self, value):
""" Executed when axes index is modified. """
if not self.skip:
self.skip = True
# UI control in some special plot cases
plt = Plot.getPlot()
if not plt:
self.updateUI()
self.skip = False
return
# UI control in most cases
self.form.axId.setMaximum(len(plt.axesList))
if self.form.axId.value() >= len(plt.axesList):
self.form.axId.setValue(len(plt.axesList)-1)
# Send new control to Plot instance
plt.setActiveAxes(self.form.axId.value())
self.updateUI()
self.skip = False
def onNew(self):
""" Executed when new axes must be created. """
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
Plot.addNewAxes()
self.form.axId.setValue(len(plt.axesList)-1)
plt.update()
def onRemove(self):
""" Executed when axes must be deleted. """
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
# Don't remove first axes
if not self.form.axId.value():
msg = Translator.translate("Axes 0 can't be deleted")
App.Console.PrintError(msg+"\n")
return
# Remove axes
ax = plt.axes
ax.set_axis_off()
plt.axesList.pop(self.form.axId.value())
# Ensure that active axes is correct
index = min(self.form.axId.value(), len(plt.axesList)-1)
self.form.axId.setValue(index)
plt.update()
def onDims(self, value):
""" Executed when axes dims have been modified. """
# Get apply environment
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
axesList = [plt.axes]
if self.form.all.isChecked():
axesList = plt.axesList
# Set new dimensions
xmin = self.form.xMin.value() / 100.0
xmax = self.form.xMax.value() / 100.0
ymin = self.form.yMin.value() / 100.0
ymax = self.form.yMax.value() / 100.0
for axes in axesList:
axes.set_position([xmin, ymin, xmax-xmin, ymax-ymin])
plt.update()
def onAlign(self, value):
""" Executed when axes align have been modified. """
# Get apply environment
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
axesList = [plt.axes]
if self.form.all.isChecked():
axesList = plt.axesList
# Set new alignement
for axes in axesList:
if self.form.xAlign.currentIndex() == 0:
axes.xaxis.tick_bottom()
axes.spines['bottom'].set_color((0.0,0.0,0.0))
axes.spines['top'].set_color('none')
axes.xaxis.set_ticks_position('bottom')
axes.xaxis.set_label_position('bottom')
else:
axes.xaxis.tick_top()
axes.spines['top'].set_color((0.0,0.0,0.0))
axes.spines['bottom'].set_color('none')
axes.xaxis.set_ticks_position('top')
axes.xaxis.set_label_position('top')
if self.form.yAlign.currentIndex() == 0:
axes.yaxis.tick_left()
axes.spines['left'].set_color((0.0,0.0,0.0))
axes.spines['right'].set_color('none')
axes.yaxis.set_ticks_position('left')
axes.yaxis.set_label_position('left')
else:
axes.yaxis.tick_right()
axes.spines['right'].set_color((0.0,0.0,0.0))
axes.spines['left'].set_color('none')
axes.yaxis.set_ticks_position('right')
axes.yaxis.set_label_position('right')
plt.update()
def onOffset(self, value):
""" Executed when axes offsets have been modified. """
# Get apply environment
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
axesList = [plt.axes]
if self.form.all.isChecked():
axesList = plt.axesList
# Set new offset
for axes in axesList:
# For some reason, modify spines offset erase axes labels, so we
# need store it in order to regenerate later
x = axes.get_xlabel()
y = axes.get_ylabel()
for loc, spine in axes.spines.iteritems():
if loc in ['bottom', 'top']:
spine.set_position(('outward',self.form.xOffset.value()))
if loc in ['left', 'right']:
spine.set_position(('outward',self.form.yOffset.value()))
# Now we can restore axes labels
Plot.xlabel(unicode(x))
Plot.ylabel(unicode(y))
plt.update()
def onScales(self):
""" Executed when axes scales have been modified. """
# Get apply environment
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
axesList = [plt.axes]
if self.form.all.isChecked():
axesList = plt.axesList
if not self.skip:
self.skip = True
# X axis
if self.form.xAuto.isChecked():
for ax in axesList:
ax.set_autoscalex_on(True)
self.form.xSMin.setEnabled(False)
self.form.xSMax.setEnabled(False)
lim = plt.axes.get_xlim()
self.form.xSMin.setText(str(lim[0]))
self.form.xSMax.setText(str(lim[1]))
else:
self.form.xSMin.setEnabled(True)
self.form.xSMax.setEnabled(True)
try:
xMin = float(self.form.xSMin.text())
except:
xMin = plt.axes.get_xlim()[0]
self.form.xSMin.setText(str(xMin))
try:
xMax = float(self.form.xSMax.text())
except:
xMax = plt.axes.get_xlim()[1]
self.form.xSMax.setText(str(xMax))
for ax in axesList:
ax.set_xlim(( xMin,xMax ))
# Y axis
if self.form.yAuto.isChecked():
for ax in axesList:
ax.set_autoscaley_on(True)
self.form.ySMin.setEnabled(False)
self.form.ySMax.setEnabled(False)
lim = plt.axes.get_ylim()
self.form.ySMin.setText(str(lim[0]))
self.form.ySMax.setText(str(lim[1]))
else:
self.form.ySMin.setEnabled(True)
self.form.ySMax.setEnabled(True)
try:
yMin = float(self.form.ySMin.text())
except:
yMin = plt.axes.get_ylim()[0]
self.form.ySMin.setText(str(yMin))
try:
yMax = float(self.form.ySMax.text())
except:
yMax = plt.axes.get_ylim()[1]
self.form.ySMax.setText(str(yMax))
for ax in axesList:
ax.set_ylim(( yMin,yMax ))
plt.update()
self.skip = False
def onMdiArea(self, subWin):
""" Executed when window is selected on mdi area.
@param subWin Selected window.
"""
plt = Plot.getPlot()
if plt != subWin:
self.updateUI()
def updateUI(self):
""" Setup UI controls values if possible """
plt = Plot.getPlot()
self.form.axId.setEnabled(bool(plt))
self.form.new.setEnabled(bool(plt))
self.form.remove.setEnabled(bool(plt))
self.form.all.setEnabled(bool(plt))
self.form.xMin.setEnabled(bool(plt))
self.form.xMax.setEnabled(bool(plt))
self.form.yMin.setEnabled(bool(plt))
self.form.yMax.setEnabled(bool(plt))
self.form.xAlign.setEnabled(bool(plt))
self.form.yAlign.setEnabled(bool(plt))
self.form.xOffset.setEnabled(bool(plt))
self.form.yOffset.setEnabled(bool(plt))
self.form.xAuto.setEnabled(bool(plt))
self.form.yAuto.setEnabled(bool(plt))
self.form.xSMin.setEnabled(bool(plt))
self.form.xSMax.setEnabled(bool(plt))
self.form.ySMin.setEnabled(bool(plt))
self.form.ySMax.setEnabled(bool(plt))
if not plt:
return
# Ensure that active axes is correct
index = min(self.form.axId.value(), len(plt.axesList)-1)
self.form.axId.setValue(index)
# Set dimensions
ax = plt.axes
bb = ax.get_position()
self.form.xMin.setValue(int(100*bb._get_xmin()))
self.form.xMax.setValue(int(100*bb._get_xmax()))
self.form.yMin.setValue(int(100*bb._get_ymin()))
self.form.yMax.setValue(int(100*bb._get_ymax()))
# Set alignment and offset
xPos = ax.xaxis.get_ticks_position()
yPos = ax.yaxis.get_ticks_position()
xOffset = ax.spines['bottom'].get_position()[1]
yOffset = ax.spines['left'].get_position()[1]
if xPos == 'bottom' or xPos == 'default':
self.form.xAlign.setCurrentIndex(0)
else:
self.form.xAlign.setCurrentIndex(1)
self.form.xOffset.setValue(xOffset)
if yPos == 'left' or yPos == 'default':
self.form.yAlign.setCurrentIndex(0)
else:
self.form.yAlign.setCurrentIndex(1)
self.form.yOffset.setValue(yOffset)
# Set scales
if ax.get_autoscalex_on():
self.form.xAuto.setChecked(True)
self.form.xSMin.setEnabled(False)
self.form.xSMax.setEnabled(False)
else:
self.form.xAuto.setChecked(False)
self.form.xSMin.setEnabled(True)
self.form.xSMax.setEnabled(True)
lim = ax.get_xlim()
self.form.xSMin.setText(str(lim[0]))
self.form.xSMax.setText(str(lim[1]))
if ax.get_autoscaley_on():
self.form.yAuto.setChecked(True)
self.form.ySMin.setEnabled(False)
self.form.ySMax.setEnabled(False)
else:
self.form.yAuto.setChecked(False)
self.form.ySMin.setEnabled(True)
self.form.ySMax.setEnabled(True)
lim = ax.get_ylim()
self.form.ySMin.setText(str(lim[0]))
self.form.ySMax.setText(str(lim[1]))
def createTask():
panel = TaskPanel()
Gui.Control.showDialog(panel)
if panel.setupUi():
Gui.Control.closeDialog(panel)
return None
return panel

View File

@@ -0,0 +1,332 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TaskPanel</class>
<widget class="QWidget" name="TaskPanel">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>276</width>
<height>416</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>336</height>
</size>
</property>
<property name="windowTitle">
<string>Configure axes</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="axesLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Active axes:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="axesIndex">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>5</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>1</number>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="newAxesButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Fixed">
<horstretch>2</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>add</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="delAxesButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Fixed">
<horstretch>2</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>10</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>del</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="allAxes">
<property name="text">
<string>Apply to all axes</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<property name="bottomMargin">
<number>0</number>
</property>
<property name="verticalSpacing">
<number>6</number>
</property>
<item row="0" column="2">
<widget class="QSlider" name="posYMax">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>1</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>90</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QSlider" name="posXMax">
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>90</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSlider" name="posXMin">
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>10</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QSlider" name="posYMin">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>1</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>10</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="dimLabel">
<property name="text">
<string>Dimensions:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="3">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="yPosLabel">
<property name="text">
<string>Y axis position</string>
</property>
<property name="alignment">
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="yAlign">
<property name="currentIndex">
<number>0</number>
</property>
<item>
<property name="text">
<string>y at Left</string>
</property>
</item>
<item>
<property name="text">
<string>y at Right</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QSpinBox" name="yOffset">
<property name="maximum">
<number>99999</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="1">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="xPosLabel">
<property name="text">
<string>X axis position</string>
</property>
<property name="alignment">
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="xAlign">
<property name="currentIndex">
<number>0</number>
</property>
<item>
<property name="text">
<string>x at bottom</string>
</property>
</item>
<item>
<property name="text">
<string>x at top</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QSpinBox" name="xOffset">
<property name="maximum">
<number>99999</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="scalesLabel">
<property name="text">
<string>Scales</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="xAuto">
<property name="text">
<string>X auto</string>
</property>
</widget>
</item>
<item row="1" column="2" colspan="2">
<widget class="QCheckBox" name="yAuto">
<property name="text">
<string>Y auto</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="xMax">
<property name="inputMask">
<string notr="true"/>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="yMin">
<property name="inputMask">
<string notr="true"/>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLineEdit" name="yMax">
<property name="inputMask">
<string notr="true"/>
</property>
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLineEdit" name="xMin">
<property name="inputMask">
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,36 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
# FreeCAD modules
import FreeCAD
import FreeCADGui
# Qt libraries
from PyQt4 import QtGui,QtCore
# Main object
import TaskPanel
def load():
""" Loads the tool """
TaskPanel.createTask()

View File

@@ -0,0 +1,206 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
# FreeCAD modules
import FreeCAD as App
import FreeCADGui as Gui
# Qt library
from PyQt4 import QtGui,QtCore
# Module
import Plot
from plotUtils import Paths, Translator
class TaskPanel:
def __init__(self):
self.ui = Paths.modulePath() + "/plotLabels/TaskPanel.ui"
self.skip = False
def accept(self):
return True
def reject(self):
return True
def clicked(self, index):
pass
def open(self):
pass
def needsFullSpace(self):
return True
def isAllowedAlterSelection(self):
return False
def isAllowedAlterView(self):
return True
def isAllowedAlterDocument(self):
return False
def helpRequested(self):
pass
def setupUi(self):
mw = self.getMainWindow()
form = mw.findChild(QtGui.QWidget, "TaskPanel")
form.axId = form.findChild(QtGui.QSpinBox, "axesIndex")
form.title = form.findChild(QtGui.QLineEdit, "title")
form.titleSize = form.findChild(QtGui.QSpinBox, "titleSize")
form.xLabel = form.findChild(QtGui.QLineEdit, "titleX")
form.xSize = form.findChild(QtGui.QSpinBox, "xSize")
form.yLabel = form.findChild(QtGui.QLineEdit, "titleY")
form.ySize = form.findChild(QtGui.QSpinBox, "ySize")
self.form = form
self.retranslateUi()
# Look for active axes if can
axId = 0
plt = Plot.getPlot()
if plt:
while plt.axes != plt.axesList[axId]:
axId = axId + 1
form.axId.setValue(axId)
self.updateUI()
QtCore.QObject.connect(form.axId, QtCore.SIGNAL('valueChanged(int)'),self.onAxesId)
QtCore.QObject.connect(form.title, QtCore.SIGNAL("editingFinished()"),self.onLabels)
QtCore.QObject.connect(form.xLabel, QtCore.SIGNAL("editingFinished()"),self.onLabels)
QtCore.QObject.connect(form.yLabel, QtCore.SIGNAL("editingFinished()"),self.onLabels)
QtCore.QObject.connect(form.titleSize,QtCore.SIGNAL("valueChanged(int)"),self.onFontSizes)
QtCore.QObject.connect(form.xSize, QtCore.SIGNAL("valueChanged(int)"),self.onFontSizes)
QtCore.QObject.connect(form.ySize, QtCore.SIGNAL("valueChanged(int)"),self.onFontSizes)
QtCore.QObject.connect(Plot.getMdiArea(),QtCore.SIGNAL("subWindowActivated(QMdiSubWindow*)"),self.onMdiArea)
return False
def getMainWindow(self):
"returns the main window"
# using QtGui.qApp.activeWindow() isn't very reliable because if another
# widget than the mainwindow is active (e.g. a dialog) the wrong widget is
# returned
toplevel = QtGui.qApp.topLevelWidgets()
for i in toplevel:
if i.metaObject().className() == "Gui::MainWindow":
return i
raise Exception("No main window found")
def retranslateUi(self):
""" Set user interface locale strings.
"""
self.form.setWindowTitle(Translator.translate("Set labels"))
self.form.findChild(QtGui.QLabel, "axesLabel").setText(Translator.translate("Active axes"))
self.form.findChild(QtGui.QLabel, "titleLabel").setText(Translator.translate("Title"))
self.form.findChild(QtGui.QLabel, "xLabel").setText(Translator.translate("X label"))
self.form.findChild(QtGui.QLabel, "yLabel").setText(Translator.translate("Y label"))
def onAxesId(self, value):
""" Executed when axes index is modified. """
if not self.skip:
self.skip = True
# UI control in some special plot cases
plt = Plot.getPlot()
if not plt:
self.updateUI()
self.skip = False
return
# UI control in most cases
self.form.axId.setMaximum(len(plt.axesList))
if self.form.axId.value() >= len(plt.axesList):
self.form.axId.setValue(len(plt.axesList)-1)
# Send new control to Plot instance
plt.setActiveAxes(self.form.axId.value())
self.updateUI()
self.skip = False
def onLabels(self):
""" Executed when labels have been modified. """
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
# Set labels
Plot.title(unicode(self.form.title.text()))
Plot.xlabel(unicode(self.form.xLabel.text()))
Plot.ylabel(unicode(self.form.yLabel.text()))
plt.update()
def onFontSizes(self, value):
""" Executed when font sizes have been modified. """
# Get apply environment
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
# Set font sizes
ax = plt.axes
ax.title.set_fontsize(self.form.titleSize.value())
ax.xaxis.label.set_fontsize(self.form.xSize.value())
ax.yaxis.label.set_fontsize(self.form.ySize.value())
plt.update()
def onMdiArea(self, subWin):
""" Executed when window is selected on mdi area.
@param subWin Selected window.
"""
plt = Plot.getPlot()
if plt != subWin:
self.updateUI()
def updateUI(self):
""" Setup UI controls values if possible """
plt = Plot.getPlot()
self.form.axId.setEnabled(bool(plt))
self.form.title.setEnabled(bool(plt))
self.form.titleSize.setEnabled(bool(plt))
self.form.xLabel.setEnabled(bool(plt))
self.form.xSize.setEnabled(bool(plt))
self.form.yLabel.setEnabled(bool(plt))
self.form.ySize.setEnabled(bool(plt))
if not plt:
return
# Ensure that active axes is correct
index = min(self.form.axId.value(), len(plt.axesList)-1)
self.form.axId.setValue(index)
# Store data before starting changing it.
ax = plt.axes
t = ax.get_title()
x = ax.get_xlabel()
y = ax.get_ylabel()
tt = ax.title.get_fontsize()
xx = ax.xaxis.label.get_fontsize()
yy = ax.yaxis.label.get_fontsize()
# Set labels
self.form.title.setText(t)
self.form.xLabel.setText(x)
self.form.yLabel.setText(y)
# Set font sizes
self.form.titleSize.setValue(tt)
self.form.xSize.setValue(xx)
self.form.ySize.setValue(yy)
def createTask():
panel = TaskPanel()
Gui.Control.showDialog(panel)
if panel.setupUi():
Gui.Control.closeDialog(panel)
return None
return panel

View File

@@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TaskPanel</class>
<widget class="QWidget" name="TaskPanel">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>276</width>
<height>228</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="windowTitle">
<string>Set labels</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="axesLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Active axes:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="axesIndex">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>5</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>1</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<property name="bottomMargin">
<number>0</number>
</property>
<property name="verticalSpacing">
<number>6</number>
</property>
<item row="0" column="2">
<widget class="QLineEdit" name="title"/>
</item>
<item row="0" column="1">
<widget class="QLabel" name="titleLabel">
<property name="text">
<string>Title</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QSpinBox" name="titleSize">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>1024</number>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QSpinBox" name="xSize">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>1024</number>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="xLabel">
<property name="text">
<string>X label</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="titleX"/>
</item>
<item row="2" column="1">
<widget class="QLabel" name="yLabel">
<property name="text">
<string>Y label</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="titleY"/>
</item>
<item row="2" column="3">
<widget class="QSpinBox" name="ySize">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>1024</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,36 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
# FreeCAD modules
import FreeCAD
import FreeCADGui
# Qt libraries
from PyQt4 import QtGui,QtCore
# Main object
import TaskPanel
def load():
""" Loads the tool """
TaskPanel.createTask()

View File

@@ -0,0 +1,223 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
# FreeCAD modules
import FreeCAD as App
import FreeCADGui as Gui
# Qt library
from PyQt4 import QtGui,QtCore
# Module
import Plot
from plotUtils import Paths, Translator
class TaskPanel:
def __init__(self):
self.ui = Paths.modulePath() + "/plotPositions/TaskPanel.ui"
self.skip = False
self.item = 0
self.names = []
self.objs = []
self.plt = None
def accept(self):
return True
def reject(self):
return True
def clicked(self, index):
pass
def open(self):
pass
def needsFullSpace(self):
return True
def isAllowedAlterSelection(self):
return False
def isAllowedAlterView(self):
return True
def isAllowedAlterDocument(self):
return False
def helpRequested(self):
pass
def setupUi(self):
mw = self.getMainWindow()
form = mw.findChild(QtGui.QWidget, "TaskPanel")
form.items = form.findChild(QtGui.QListWidget, "items")
form.x = form.findChild(QtGui.QDoubleSpinBox, "x")
form.y = form.findChild(QtGui.QDoubleSpinBox, "y")
form.s = form.findChild(QtGui.QDoubleSpinBox, "size")
self.form = form
self.retranslateUi()
self.updateUI()
QtCore.QObject.connect(form.items, QtCore.SIGNAL("currentRowChanged(int)"),self.onItem)
QtCore.QObject.connect(form.x, QtCore.SIGNAL("valueChanged(double)"),self.onData)
QtCore.QObject.connect(form.y, QtCore.SIGNAL("valueChanged(double)"),self.onData)
QtCore.QObject.connect(form.s, QtCore.SIGNAL("valueChanged(double)"),self.onData)
QtCore.QObject.connect(Plot.getMdiArea(),QtCore.SIGNAL("subWindowActivated(QMdiSubWindow*)"),self.onMdiArea)
return False
def getMainWindow(self):
"returns the main window"
# using QtGui.qApp.activeWindow() isn't very reliable because if another
# widget than the mainwindow is active (e.g. a dialog) the wrong widget is
# returned
toplevel = QtGui.qApp.topLevelWidgets()
for i in toplevel:
if i.metaObject().className() == "Gui::MainWindow":
return i
raise Exception("No main window found")
def retranslateUi(self):
""" Set user interface locale strings.
"""
self.form.setWindowTitle(Translator.translate("Set positions and sizes"))
self.form.findChild(QtGui.QLabel, "posLabel").setText(Translator.translate("Position"))
self.form.findChild(QtGui.QLabel, "sizeLabel").setText(Translator.translate("Size"))
def onItem(self, row):
""" Executed when selected item is modified. """
# Get selected item
self.item = row
# Call to update
self.updateUI()
def onData(self, value):
""" Executed when selected item data is modified. """
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
if not self.skip:
self.skip = True
name = self.names[self.item]
obj = self.objs[self.item]
x = self.form.x.value()
y = self.form.y.value()
s = self.form.s.value()
# x/y labels only have one position control
if name.find('x label') >= 0:
self.form.y.setValue(x)
elif name.find('y label') >= 0:
self.form.x.setValue(y)
# title and labels only have one size control
if name.find('title') >= 0 or name.find('label') >= 0:
obj.set_position((x,y))
obj.set_size(s)
# legend have all controls
else:
Plot.legend(plt.legend, (x,y), s)
plt.update()
self.skip = False
def onMdiArea(self, subWin):
""" Executed when window is selected on mdi area.
@param subWin Selected window.
"""
plt = Plot.getPlot()
if plt != subWin:
self.updateUI()
def updateUI(self):
""" Setup UI controls values if possible """
plt = Plot.getPlot()
self.form.items.setEnabled(bool(plt))
self.form.x.setEnabled(bool(plt))
self.form.y.setEnabled(bool(plt))
self.form.s.setEnabled(bool(plt))
if not plt:
self.plt = plt
self.form.items.clear()
return
# Refill items list only if Plot instance have been changed
if self.plt != plt:
self.plt = plt
self.plt.update() # Update plot in order to put legend in correct place
self.setList()
# Get data for controls
name = self.names[self.item]
obj = self.objs[self.item]
if name.find('title') >= 0 or name.find('label') >= 0:
p = obj.get_position()
x = p[0]
y = p[1]
s = obj.get_size()
if name.find('x label') >= 0:
self.form.y.setEnabled(False)
self.form.y.setValue(x)
elif name.find('y label') >= 0:
self.form.x.setEnabled(False)
self.form.x.setValue(y)
else:
x = plt.legPos[0]
y = plt.legPos[1]
s = obj.get_texts()[-1].get_fontsize()
# Send it to controls
self.form.x.setValue(x)
self.form.y.setValue(y)
self.form.s.setValue(s)
def setList(self):
""" Setup UI controls values if possible """
# Clear lists
self.names = []
self.objs = []
# Fill lists with available objects
if self.plt:
# Axes data
for i in range(0,len(self.plt.axesList)):
ax = self.plt.axesList[i]
# Each axes have title, xaxis and yaxis
self.names.append('title (axes %d)' % (i))
self.objs.append(ax.title)
self.names.append('x label (axes %d)' % (i))
self.objs.append(ax.xaxis.get_label())
self.names.append('y label (axes %d)' % (i))
self.objs.append(ax.yaxis.get_label())
# Legend if exist
ax = self.plt.axesList[-1]
if ax.legend_:
self.names.append('legend')
self.objs.append(ax.legend_)
# Send list to widget
self.form.items.clear()
for name in self.names:
self.form.items.addItem(name)
# Ensure that selected item is correct
if self.item >= len(self.names):
self.item = len(self.names)-1
self.form.items.setCurrentIndex(self.item)
def createTask():
panel = TaskPanel()
Gui.Control.showDialog(panel)
if panel.setupUi():
Gui.Control.closeDialog(panel)
return None
return panel

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TaskPanel</class>
<widget class="QWidget" name="TaskPanel">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>296</width>
<height>336</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>336</height>
</size>
</property>
<property name="windowTitle">
<string>Set positions and sizes</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QListWidget" name="items">
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="posLabel">
<property name="text">
<string>Position</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="x">
<property name="decimals">
<number>3</number>
</property>
<property name="minimum">
<double>-99999.000000000000000</double>
</property>
<property name="maximum">
<double>99999.000000000000000</double>
</property>
<property name="singleStep">
<double>0.010000000000000</double>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QDoubleSpinBox" name="y">
<property name="decimals">
<number>3</number>
</property>
<property name="minimum">
<double>-99999.000000000000000</double>
</property>
<property name="maximum">
<double>99999.000000000000000</double>
</property>
<property name="singleStep">
<double>0.010000000000000</double>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="sizeLabel">
<property name="text">
<string>Size</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<widget class="QDoubleSpinBox" name="size">
<property name="decimals">
<number>1</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>99999.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,36 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
# FreeCAD modules
import FreeCAD
import FreeCADGui
# Qt libraries
from PyQt4 import QtGui,QtCore
# Main object
import TaskPanel
def load():
""" Loads the tool """
TaskPanel.createTask()

View File

@@ -0,0 +1,149 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
import os
# FreeCAD modules
import FreeCAD as App
import FreeCADGui as Gui
# Qt library
from PyQt4 import QtGui,QtCore
# Module
import Plot
from plotUtils import Paths, Translator
class TaskPanel:
def __init__(self):
self.ui = Paths.modulePath() + "/plotSave/TaskPanel.ui"
def accept(self):
plt = Plot.getPlot()
if not plt:
msg = Translator.translate("Plot document must be selected in order to save it.")
App.Console.PrintError(msg+"\n")
return False
path = unicode(self.form.path.text())
size = (self.form.sizeX.value(), self.form.sizeY.value())
dpi = self.form.dpi.value()
Plot.save(path, size, dpi)
return True
def reject(self):
return True
def clicked(self, index):
pass
def open(self):
pass
def needsFullSpace(self):
return True
def isAllowedAlterSelection(self):
return False
def isAllowedAlterView(self):
return True
def isAllowedAlterDocument(self):
return False
def helpRequested(self):
pass
def setupUi(self):
mw = self.getMainWindow()
form = mw.findChild(QtGui.QWidget, "TaskPanel")
form.path = form.findChild(QtGui.QLineEdit, "path")
form.pathButton = form.findChild(QtGui.QPushButton, "pathButton")
form.sizeX = form.findChild(QtGui.QDoubleSpinBox, "sizeX")
form.sizeY = form.findChild(QtGui.QDoubleSpinBox, "sizeY")
form.dpi = form.findChild(QtGui.QSpinBox, "dpi")
self.form = form
self.retranslateUi()
QtCore.QObject.connect(form.pathButton,QtCore.SIGNAL("pressed()"),self.onPathButton)
QtCore.QObject.connect(Plot.getMdiArea(),QtCore.SIGNAL("subWindowActivated(QMdiSubWindow*)"),self.onMdiArea)
home = os.getenv('USERPROFILE') or os.getenv('HOME')
form.path.setText(os.path.join(home,"plot.png"))
self.updateUI()
return False
def getMainWindow(self):
"returns the main window"
# using QtGui.qApp.activeWindow() isn't very reliable because if another
# widget than the mainwindow is active (e.g. a dialog) the wrong widget is
# returned
toplevel = QtGui.qApp.topLevelWidgets()
for i in toplevel:
if i.metaObject().className() == "Gui::MainWindow":
return i
raise Exception("No main window found")
def retranslateUi(self):
""" Set user interface locale strings.
"""
self.form.setWindowTitle(Translator.translate("Save figure"))
self.form.findChild(QtGui.QLabel, "sizeLabel").setText(Translator.translate("Inches"))
self.form.findChild(QtGui.QLabel, "dpiLabel").setText(Translator.translate("Dots per Inch"))
def updateUI(self):
""" Setup UI controls values if possible """
plt = Plot.getPlot()
self.form.path.setEnabled(bool(plt))
self.form.pathButton.setEnabled(bool(plt))
self.form.sizeX.setEnabled(bool(plt))
self.form.sizeY.setEnabled(bool(plt))
self.form.dpi.setEnabled(bool(plt))
if not plt:
return
fig = plt.fig
size = fig.get_size_inches()
dpi = fig.get_dpi()
self.form.sizeX.setValue(size[0])
self.form.sizeY.setValue(size[1])
self.form.dpi.setValue(dpi)
def onPathButton(self):
""" Executed when path button is pressed.
"""
path = self.form.path.text()
file_choices = "Portable Network Graphics (*.png)|*.png;;Portable Document Format (*.pdf)|*.pdf;;PostScript (*.ps)|*.ps;;Encapsulated PostScript (*.eps)|*.eps"
path = QtGui.QFileDialog.getSaveFileName(None, 'Save figure', path, file_choices)
if path:
self.form.path.setText(path)
def onMdiArea(self, subWin):
""" Executed when window is selected on mdi area.
@param subWin Selected window.
"""
plt = Plot.getPlot()
if plt != subWin:
self.updateUI()
def createTask():
panel = TaskPanel()
Gui.Control.showDialog(panel)
if panel.setupUi():
Gui.Control.closeDialog(panel)
return None
return panel

View File

@@ -0,0 +1,141 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TaskPanel</class>
<widget class="QWidget" name="TaskPanel">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>260</width>
<height>253</height>
</rect>
</property>
<property name="windowTitle">
<string>Save figure</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLineEdit" name="path">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>7</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pathButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QDoubleSpinBox" name="sizeX">
<property name="minimum">
<double>0.010000000000000</double>
</property>
<property name="maximum">
<double>99999.000000000000000</double>
</property>
<property name="value">
<double>6.400000000000000</double>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="xLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>x</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="sizeY">
<property name="minimum">
<double>0.010000000000000</double>
</property>
<property name="maximum">
<double>99999.000000000000000</double>
</property>
<property name="value">
<double>4.800000000000000</double>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="sizeLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Inches</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QSpinBox" name="dpi">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>2048</number>
</property>
<property name="value">
<number>100</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="dpiLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Dots per Inch</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,36 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
# FreeCAD modules
import FreeCAD
import FreeCADGui
# Qt libraries
from PyQt4 import QtGui,QtCore
# Main object
import TaskPanel
def load():
""" Loads the tool """
TaskPanel.createTask()

View File

@@ -0,0 +1,309 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
# FreeCAD modules
import FreeCAD as App
import FreeCADGui as Gui
# Qt library
from PyQt4 import QtGui,QtCore
# Module
import Plot
from plotUtils import Paths, Translator
# matplotlib
import matplotlib
from matplotlib.lines import Line2D
import matplotlib.colors as Colors
class TaskPanel:
def __init__(self):
self.ui = Paths.modulePath() + "/plotSeries/TaskPanel.ui"
self.skip = False
self.item = 0
self.plt = None
def accept(self):
return True
def reject(self):
return True
def clicked(self, index):
pass
def open(self):
pass
def needsFullSpace(self):
return True
def isAllowedAlterSelection(self):
return False
def isAllowedAlterView(self):
return True
def isAllowedAlterDocument(self):
return False
def helpRequested(self):
pass
def setupUi(self):
mw = self.getMainWindow()
form = mw.findChild(QtGui.QWidget, "TaskPanel")
form.items = form.findChild(QtGui.QListWidget, "items")
form.label = form.findChild(QtGui.QLineEdit, "label")
form.isLabel = form.findChild(QtGui.QCheckBox, "isLabel")
form.style = form.findChild(QtGui.QComboBox, "lineStyle")
form.marker = form.findChild(QtGui.QComboBox, "markers")
form.width = form.findChild(QtGui.QDoubleSpinBox, "lineWidth")
form.size = form.findChild(QtGui.QSpinBox, "markerSize")
form.color = form.findChild(QtGui.QPushButton, "color")
form.remove = form.findChild(QtGui.QPushButton, "remove")
self.form = form
self.retranslateUi()
self.fillStyles()
self.updateUI()
QtCore.QObject.connect(form.items, QtCore.SIGNAL("currentRowChanged(int)"),self.onItem)
QtCore.QObject.connect(form.label, QtCore.SIGNAL("editingFinished()"),self.onData)
QtCore.QObject.connect(form.isLabel,QtCore.SIGNAL("stateChanged(int)"),self.onData)
QtCore.QObject.connect(form.style, QtCore.SIGNAL("currentIndexChanged(int)"),self.onData)
QtCore.QObject.connect(form.marker, QtCore.SIGNAL("currentIndexChanged(int)"),self.onData)
QtCore.QObject.connect(form.width, QtCore.SIGNAL("valueChanged(double)"),self.onData)
QtCore.QObject.connect(form.size, QtCore.SIGNAL("valueChanged(int)"),self.onData)
QtCore.QObject.connect(form.color, QtCore.SIGNAL("pressed()"),self.onColor)
QtCore.QObject.connect(form.remove, QtCore.SIGNAL("pressed()"),self.onRemove)
QtCore.QObject.connect(Plot.getMdiArea(),QtCore.SIGNAL("subWindowActivated(QMdiSubWindow*)"),self.onMdiArea)
return False
def getMainWindow(self):
"returns the main window"
# using QtGui.qApp.activeWindow() isn't very reliable because if another
# widget than the mainwindow is active (e.g. a dialog) the wrong widget is
# returned
toplevel = QtGui.qApp.topLevelWidgets()
for i in toplevel:
if i.metaObject().className() == "Gui::MainWindow":
return i
raise Exception("No main window found")
def retranslateUi(self):
""" Set user interface locale strings.
"""
self.form.setWindowTitle(Translator.translate("Set positions and sizes"))
self.form.isLabel.setText(Translator.translate("No label"))
self.form.remove.setText(Translator.translate("Remove serie"))
self.form.findChild(QtGui.QLabel, "styleLabel").setText(Translator.translate("Line style"))
self.form.findChild(QtGui.QLabel, "markerLabel").setText(Translator.translate("Marker"))
def fillStyles(self):
""" Fill style combo boxes. """
# Line styles
linestyles = Line2D.lineStyles.keys()
for i in range(0,len(linestyles)):
style = linestyles[i]
string = "\'" + str(style) + "\' (" + Line2D.lineStyles[style] + ")"
self.form.style.addItem(string)
# Markers
markers = Line2D.markers.keys()
for i in range(0,len(markers)):
marker = markers[i]
string = "\'" + str(marker) + "\' (" + Line2D.markers[marker] + ")"
self.form.marker.addItem(string)
def onItem(self, row):
""" Executed when selected item is modified. """
if not self.skip:
self.skip = True
# Get selected item
self.item = row
# Call to update
self.updateUI()
self.skip = False
def onData(self):
""" Executed when selected item data is modified. """
if not self.skip:
self.skip = True
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
# Ensure that selected serie exist
if self.item >= len(Plot.series()):
self.updateUI()
return
# Set label
serie = Plot.series()[self.item]
if(self.form.isLabel.isChecked()):
serie.name = None
self.form.label.setEnabled(False)
else:
serie.name = self.form.label.text()
self.form.label.setEnabled(True)
# Set line style and marker
style = self.form.style.currentIndex()
linestyles = Line2D.lineStyles.keys()
serie.line.set_linestyle(linestyles[style])
marker = self.form.marker.currentIndex()
markers = Line2D.markers.keys()
serie.line.set_marker(markers[marker])
# Set line width and marker size
serie.line.set_linewidth(self.form.width.value())
serie.line.set_markersize(self.form.size.value())
plt.update()
# Regenerate series labels
self.setList()
self.skip = False
def onColor(self):
""" Executed when color pallete is requested. """
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
# Ensure that selected serie exist
if self.item >= len(Plot.series()):
self.updateUI()
return
# Show widget to select color
col = QtGui.QColorDialog.getColor()
# Send color to widget and serie
if col.isValid():
serie = plt.series[self.item]
self.form.color.setStyleSheet("background-color: rgb(%d, %d, %d);" % (col.red(),
col.green(), col.blue()))
serie.line.set_color((col.redF(), col.greenF(), col.blueF()))
plt.update()
def onRemove(self):
""" Executed when data serie must be removed. """
plt = Plot.getPlot()
if not plt:
self.updateUI()
return
# Ensure that selected serie exist
if self.item >= len(Plot.series()):
self.updateUI()
return
# Remove serie
Plot.removeSerie(self.item)
self.setList()
self.updateUI()
plt.update()
def onMdiArea(self, subWin):
""" Executed when window is selected on mdi area.
@param subWin Selected window.
"""
plt = Plot.getPlot()
if plt != subWin:
self.updateUI()
def updateUI(self):
""" Setup UI controls values if possible """
plt = Plot.getPlot()
self.form.items.setEnabled(bool(plt))
self.form.label.setEnabled(bool(plt))
self.form.isLabel.setEnabled(bool(plt))
self.form.style.setEnabled(bool(plt))
self.form.marker.setEnabled(bool(plt))
self.form.width.setEnabled(bool(plt))
self.form.size.setEnabled(bool(plt))
self.form.color.setEnabled(bool(plt))
self.form.remove.setEnabled(bool(plt))
if not plt:
self.plt = plt
self.form.items.clear()
return
self.skip = True
# Refill list
if self.plt != plt or len(Plot.series()) != self.form.items.count():
self.plt = plt
self.setList()
# Ensure that have series
if not len(Plot.series()):
self.form.label.setEnabled(False)
self.form.isLabel.setEnabled(False)
self.form.style.setEnabled(False)
self.form.marker.setEnabled(False)
self.form.width.setEnabled(False)
self.form.size.setEnabled(False)
self.form.color.setEnabled(False)
self.form.remove.setEnabled(False)
return
# Set label
serie = Plot.series()[self.item]
if serie.name == None:
self.form.isLabel.setChecked(True)
self.form.label.setEnabled(False)
self.form.label.setText("")
else:
self.form.isLabel.setChecked(False)
self.form.label.setText(serie.name)
# Set line style and marker
self.form.style.setCurrentIndex(0)
linestyles = Line2D.lineStyles.keys()
for i in range(0,len(linestyles)):
style = linestyles[i]
if style == serie.line.get_linestyle():
self.form.style.setCurrentIndex(i)
self.form.marker.setCurrentIndex(0)
markers = Line2D.markers.keys()
for i in range(0,len(markers)):
marker = markers[i]
if marker == serie.line.get_marker():
self.form.marker.setCurrentIndex(i)
# Set line width and marker size
self.form.width.setValue(serie.line.get_linewidth())
self.form.size.setValue(serie.line.get_markersize())
# Set color
color = Colors.colorConverter.to_rgb(serie.line.get_color())
self.form.color.setStyleSheet("background-color: rgb(%d, %d, %d);" % (int(color[0]*255),
int(color[1]*255), int(color[2]*255)))
self.skip = False
def setList(self):
""" Setup UI controls values if possible """
self.form.items.clear()
series = Plot.series()
for i in range(0,len(series)):
serie = series[i]
string = 'serie ' + str(i) + ': '
if serie.name == None:
string = string + '\"No label\"'
else:
string = string + serie.name
self.form.items.addItem(string)
# Ensure that selected item is correct
if len(series) and self.item >= len(series):
self.item = len(series)-1
self.form.items.setCurrentIndex(self.item)
def createTask():
panel = TaskPanel()
Gui.Control.showDialog(panel)
if panel.setupUi():
Gui.Control.closeDialog(panel)
return None
return panel

View File

@@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TaskPanel</class>
<widget class="QWidget" name="TaskPanel">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>296</width>
<height>336</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>336</height>
</size>
</property>
<property name="windowTitle">
<string>Configure series</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QListWidget" name="items">
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="4">
<widget class="QLineEdit" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>2</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QDoubleSpinBox" name="lineWidth">
<property name="minimum">
<double>0.010000000000000</double>
</property>
<property name="maximum">
<double>9999.000000000000000</double>
</property>
<property name="singleStep">
<double>0.500000000000000</double>
</property>
<property name="value">
<double>1.000000000000000</double>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="styleLabel">
<property name="text">
<string>Line style</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="5">
<widget class="QPushButton" name="remove">
<property name="text">
<string>Remove serie</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="3">
<widget class="QComboBox" name="lineStyle">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="markerLabel">
<property name="text">
<string>Markers</string>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QCheckBox" name="isLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>No label</string>
</property>
</widget>
</item>
<item row="2" column="1" colspan="3">
<widget class="QComboBox" name="markers">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="3" column="0" colspan="5">
<widget class="QPushButton" name="color">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QSpinBox" name="markerSize">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,36 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
# FreeCAD modules
import FreeCAD
import FreeCADGui
# Qt libraries
from PyQt4 import QtGui,QtCore
# Main object
import TaskPanel
def load():
""" Loads the tool """
TaskPanel.createTask()

View File

@@ -0,0 +1,55 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
import FreeCAD, FreeCADGui, os
def modulePath():
"""returns the current Ship design module path
@return Module path"""
path1 = FreeCAD.ConfigGet("AppHomePath") + "Mod/Plot"
path2 = FreeCAD.ConfigGet("UserAppData") + "Mod/Plot"
if os.path.exists(path2):
return path2
else:
return path1
def iconsPath():
"""returns the current Ship design module icons path
@return Icons path"""
path = modulePath() + "/Icons"
return path
def getPathFromFile(fileName):
""" Gets the directory path from a file name
@param fileName Name of the file
@return Directory path.
"""
if not fileName:
return ''
i = 1
try:
while 1:
i = fileName.index("/", i+1)
except ValueError:
pass
return fileName[0:i+1]

View File

@@ -0,0 +1,30 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
import FreeCAD, FreeCADGui, os
from PyQt4 import QtCore,QtGui
def translate(text,context="plot"):
"convenience function for Qt translator"
return QtGui.QApplication.translate(context, text, None,
QtGui.QApplication.UnicodeUTF8)

View File

@@ -0,0 +1,25 @@
#***************************************************************************
#* *
#* Copyright (c) 2011, 2012 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
# Empty file to treat the folder as a package