Re-Created branch form 0, to avoid conflicts
|
@ -344,6 +344,15 @@ MARK_AS_ADVANCED(FORCE FREECAD_LIBPACK_CHECKFILE6X FREECAD_LIBPACK_CHECKFILE7X)
|
|||
find_package(Spnav)
|
||||
endif(WIN32)
|
||||
|
||||
# ------------------------------ Matplotlib ------------------------------
|
||||
|
||||
find_package(Matplotlib)
|
||||
IF(MATPLOTLIB_FOUND)
|
||||
message("-- matplotlib-${MATPLOTLIB_VERSION} has been found.")
|
||||
ELSE(MATPLOTLIB_FOUND)
|
||||
message("matplotlib not found, Plot module will not available until matplotlib is installed!")
|
||||
ENDIF(MATPLOTLIB_FOUND)
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
|
48
cMake/FindMatplotlib.cmake
Normal file
|
@ -0,0 +1,48 @@
|
|||
# - Find the matplotlib libraries
|
||||
# This module finds IF matplotlib is installed, and sets the following variables
|
||||
# indicating where it is.
|
||||
#
|
||||
# MATPLOTLIB_FOUND - was matplotlib found
|
||||
# MATPLOTLIB_VERSION - the version of matplotlib found as a string
|
||||
# MATPLOTLIB_VERSION_MAJOR - the major version number of matplotlib
|
||||
# MATPLOTLIB_VERSION_MINOR - the minor version number of matplotlib
|
||||
# MATPLOTLIB_VERSION_PATCH - the patch version number of matplotlib
|
||||
# MATPLOTLIB_VERSION_DECIMAL - e.g. version 1.1.1r is 10101
|
||||
# MATPLOTLIB_PATH_DIRS - path to the matplotlib include files
|
||||
|
||||
IF(PYTHONINTERP_FOUND)
|
||||
# Try to import matplotlib into Python interpreter. Python
|
||||
# interpreter was found previously as required package, so
|
||||
# don't take care about this.
|
||||
execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c"
|
||||
"import matplotlib as m; print(m.__version__); print(m.__path__[0]);"
|
||||
RESULT_VARIABLE _MATPLOTLIB_SEARCH_SUCCESS
|
||||
OUTPUT_VARIABLE _MATPLOTLIB_VALUES
|
||||
ERROR_VARIABLE _MATPLOTLIB_ERROR_VALUE
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
IF(_MATPLOTLIB_SEARCH_SUCCESS MATCHES 0)
|
||||
set(MATPLOTLIB_FOUND TRUE)
|
||||
|
||||
# Convert the process output into a list
|
||||
string(REGEX REPLACE ";" "\\\\;" _MATPLOTLIB_VALUES ${_MATPLOTLIB_VALUES})
|
||||
string(REGEX REPLACE "\n" ";" _MATPLOTLIB_VALUES ${_MATPLOTLIB_VALUES})
|
||||
list(GET _MATPLOTLIB_VALUES 0 MATPLOTLIB_VERSION)
|
||||
list(GET _MATPLOTLIB_VALUES 1 MATPLOTLIB_PATH_DIRS)
|
||||
|
||||
# Make sure all directory separators are '/'
|
||||
string(REGEX REPLACE "\\\\" "/" MATPLOTLIB_PATH_DIRS ${MATPLOTLIB_PATH_DIRS})
|
||||
|
||||
# Get the major and minor version numbers
|
||||
string(REGEX REPLACE "\\." ";" _MATPLOTLIB_VERSION_LIST ${MATPLOTLIB_VERSION})
|
||||
list(GET _MATPLOTLIB_VERSION_LIST 0 MATPLOTLIB_VERSION_MAJOR)
|
||||
list(GET _MATPLOTLIB_VERSION_LIST 1 MATPLOTLIB_VERSION_MINOR)
|
||||
list(GET _MATPLOTLIB_VERSION_LIST 2 MATPLOTLIB_VERSION_PATCH)
|
||||
math(EXPR MATPLOTLIB_VERSION_DECIMAL
|
||||
"(${MATPLOTLIB_VERSION_MAJOR} * 10000) + (${MATPLOTLIB_VERSION_MINOR} * 100) + ${MATPLOTLIB_VERSION_PATCH}")
|
||||
ELSE()
|
||||
set(MATPLOTLIB_FOUND FALSE)
|
||||
ENDIF()
|
||||
ELSE()
|
||||
set(MATPLOTLIB_FOUND FALSE)
|
||||
ENDIF()
|
17
configure.ac
|
@ -649,6 +649,23 @@ fi
|
|||
|
||||
AM_CONDITIONAL(HAVE_SPNAV_FOUND, test x"$fc_cv_lib_spnav_avail" = xyes)
|
||||
|
||||
|
||||
dnl checking for matplotlib
|
||||
dnl **************************************************************************
|
||||
fc_matplotlib_avail=no
|
||||
AC_MSG_CHECKING([for matplotlib])
|
||||
fc_matplotlib_ver=`python -c "import matplotlib as m; print m.__version__;"`;
|
||||
if test x$fc_py_ver = x; then
|
||||
AC_MSG_WARN([
|
||||
**** Cannot find matplotlib Python module.
|
||||
Plot Module will not available until matplotlib is installed ****
|
||||
])
|
||||
else
|
||||
fc_matplotlib_avail=yes
|
||||
fi;
|
||||
AC_MSG_RESULT([yes])
|
||||
AM_CONDITIONAL(HAVE_MATPLOTLIB, test x"$fc_matplotlib_avail" = xyes)
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
#
|
||||
# Check if 64-bit platform
|
||||
|
|
|
@ -21,7 +21,7 @@ Standards-Version: 3.9.2
|
|||
Package: freecad
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
|
||||
Recommends: python-pivy
|
||||
Recommends: python-pivy python-matplotlib
|
||||
Suggests: freecad-doc
|
||||
Description: Extensible Open Source CAx program (alpha)
|
||||
FreeCAD is an Open Source CAx RAD based on OpenCasCade, Qt and Python.
|
||||
|
|
|
@ -48,4 +48,7 @@ add_subdirectory(Surfaces)
|
|||
add_subdirectory(Ship)
|
||||
add_subdirectory(OpenSCAD)
|
||||
|
||||
add_subdirectory(Plot)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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 |
705
src/Mod/Plot/Icons/Labels.svg
Normal 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 |
679
src/Mod/Plot/Icons/Legend.svg
Normal 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 |
702
src/Mod/Plot/Icons/Positions.svg
Normal 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
|
@ -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 |
457
src/Mod/Plot/Icons/Series.svg
Normal 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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -0,0 +1,3 @@
|
|||
/** \defgroup PLOT Plot
|
||||
* \ingroup WORKBENCHES */
|
||||
|
425
src/Mod/Plot/plotAxes/TaskPanel.py
Normal 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
|
332
src/Mod/Plot/plotAxes/TaskPanel.ui
Normal 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>
|
36
src/Mod/Plot/plotAxes/__init__.py
Normal 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()
|
206
src/Mod/Plot/plotLabels/TaskPanel.py
Normal 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
|
134
src/Mod/Plot/plotLabels/TaskPanel.ui
Normal 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>
|
36
src/Mod/Plot/plotLabels/__init__.py
Normal 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()
|
223
src/Mod/Plot/plotPositions/TaskPanel.py
Normal 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
|
107
src/Mod/Plot/plotPositions/TaskPanel.ui
Normal 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>
|
36
src/Mod/Plot/plotPositions/__init__.py
Normal 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()
|
149
src/Mod/Plot/plotSave/TaskPanel.py
Normal 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
|
141
src/Mod/Plot/plotSave/TaskPanel.ui
Normal 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>
|
36
src/Mod/Plot/plotSave/__init__.py
Normal 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()
|
309
src/Mod/Plot/plotSeries/TaskPanel.py
Normal 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
|
154
src/Mod/Plot/plotSeries/TaskPanel.ui
Normal 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>
|
36
src/Mod/Plot/plotSeries/__init__.py
Normal 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()
|
55
src/Mod/Plot/plotUtils/Paths.py
Normal 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]
|
30
src/Mod/Plot/plotUtils/Translator.py
Normal 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)
|
25
src/Mod/Plot/plotUtils/__init__.py
Normal 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
|
||||
|
|
@ -181,6 +181,15 @@
|
|||
<ComponentRef Id="CompModtankWeights" />
|
||||
<!-- Ship module -->
|
||||
<ComponentRef Id="CompExampleData" />
|
||||
<!-- Plot module -->
|
||||
<ComponentRef Id="CompModPlot" />
|
||||
<ComponentRef Id="CompModPlotIcons" />
|
||||
<ComponentRef Id="CompModplotAxes" />
|
||||
<ComponentRef Id="CompModplotLabels" />
|
||||
<ComponentRef Id="CompModplotPositions" />
|
||||
<ComponentRef Id="CompModplotSave" />
|
||||
<ComponentRef Id="CompModplotSeries" />
|
||||
<ComponentRef Id="CompModplotUtils" />
|
||||
|
||||
<Feature Id="FeatModImage" Title="The Image module" Description="Module to handle pictures" Level="1">
|
||||
<ComponentRef Id="CompModImage" />
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
<?include ModArch.wxi ?>
|
||||
<?include ModOpenSCAD.wxi ?>
|
||||
<?include ModShip.wxi ?>
|
||||
<?include ModPlot.wxi ?>
|
||||
</DirectoryRef>
|
||||
</Fragment>
|
||||
</Wix>
|
||||
|
|
86
src/WindowsInstaller/ModPlot.wxi
Normal file
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
(c) Jose Luis Cercos Pita (jlcercos@gmail.com) 2012
|
||||
|
||||
This file is part of the FreeCAD CAx development system.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Library 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.
|
||||
|
||||
FreeCAD 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 FreeCAD; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
USA
|
||||
|
||||
Jose Luis Cercos Pita 2012
|
||||
-->
|
||||
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Directory Id="ModPlot" Name="Plot" FileSource="../../Mod/Plot">
|
||||
<Component Id="CompModPlot" Guid="672b5f07-5779-47a0-a1fc-6be045329d75" Win64='$(var.Win_64)' KeyPath="yes">
|
||||
<File Id="PlotGuiPy" Name="PlotGui.py" DiskId="1" />
|
||||
<File Id="PlotInitGuiPy" Name="InitGui.py" DiskId="1" />
|
||||
<File Id="PlotInstance" Name="Plot.py" DiskId="1" />
|
||||
</Component>
|
||||
<Directory Id="ModPlotIcons" Name="Icons" FileSource="../../Mod/Plot/Icons" >
|
||||
<Component Id="CompModPlotIcons" Guid="a176d6d9-755c-4b09-824a-af56c45f08c0" Win64='$(var.Win_64)' KeyPath="yes">
|
||||
<File Id="PlotIcons01" Name="Axes.svg" />
|
||||
<File Id="PlotIcons02" Name="Grid.svg" />
|
||||
<File Id="PlotIcons03" Name="Icon.svg" />
|
||||
<File Id="PlotIcons04" Name="Labels.svg" />
|
||||
<File Id="PlotIcons05" Name="Legend.svg" />
|
||||
<File Id="PlotIcons06" Name="Positions.svg" />
|
||||
<File Id="PlotIcons07" Name="Save.svg" />
|
||||
<File Id="PlotIcons08" Name="Series.svg" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="ModplotAxes" Name="plotAxes" FileSource="../../Mod/Plot/plotAxes" >
|
||||
<Component Id="CompModplotAxes" Guid="0dfd62d2-196b-45e8-ba6d-a51267233890" Win64='$(var.Win_64)' KeyPath="yes">
|
||||
<File Id="plotAxes01" Name="__init__.py" />
|
||||
<File Id="plotAxes02" Name="TaskPanel.py" />
|
||||
<File Id="plotAxes03" Name="TaskPanel.ui" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="ModplotLabels" Name="plotLabels" FileSource="../../Mod/Plot/plotLabels" >
|
||||
<Component Id="CompModplotLabels" Guid="5741d177-c82c-4489-a344-775c0fa82a05" Win64='$(var.Win_64)' KeyPath="yes">
|
||||
<File Id="plotLabels01" Name="__init__.py" />
|
||||
<File Id="plotLabels02" Name="TaskPanel.py" />
|
||||
<File Id="plotLabels03" Name="TaskPanel.ui" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="ModplotPositions" Name="plotPositions" FileSource="../../Mod/Plot/plotPositions" >
|
||||
<Component Id="CompModplotPositions" Guid="d6fd8e93-e4df-4e78-8ac6-9f74eccbb64c" Win64='$(var.Win_64)' KeyPath="yes">
|
||||
<File Id="plotPositions01" Name="__init__.py" />
|
||||
<File Id="plotPositions02" Name="TaskPanel.py" />
|
||||
<File Id="plotPositions03" Name="TaskPanel.ui" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="ModplotSave" Name="plotSave" FileSource="../../Mod/Plot/plotSave" >
|
||||
<Component Id="CompModplotSave" Guid="0d9896e0-f992-41e9-a52c-ea24fcb786d4" Win64='$(var.Win_64)' KeyPath="yes">
|
||||
<File Id="plotSave01" Name="__init__.py" />
|
||||
<File Id="plotSave02" Name="TaskPanel.py" />
|
||||
<File Id="plotSave03" Name="TaskPanel.ui" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="ModplotSeries" Name="plotSeries" FileSource="../../Mod/Plot/plotSeries" >
|
||||
<Component Id="CompModplotSeries" Guid="4adb6faf-867a-4c23-b8de-34f9149b8805" Win64='$(var.Win_64)' KeyPath="yes">
|
||||
<File Id="plotSeries01" Name="__init__.py" />
|
||||
<File Id="plotSeries02" Name="TaskPanel.py" />
|
||||
<File Id="plotSeries03" Name="TaskPanel.ui" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="ModplotUtils" Name="plotUtils" FileSource="../../Mod/Plot/plotUtils" >
|
||||
<Component Id="CompModplotUtils" Guid="861945d1-6105-4063-8cbb-93235876e15b" Win64='$(var.Win_64)' KeyPath="yes">
|
||||
<File Id="plotUtils01" Name="__init__.py" />
|
||||
<File Id="plotUtils02" Name="Paths.py" />
|
||||
<File Id="plotUtils03" Name="Translator.ui" />
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Include>
|