remove MachDist module - now in a private repository

This commit is contained in:
jriegel
2013-09-08 19:51:33 +02:00
parent 9962af035b
commit 33733e7feb
41 changed files with 0 additions and 23201 deletions

View File

@@ -1,175 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Aligment_Parameter</class>
<widget class="QWidget" name="Aligment_Parameter">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>150</width>
<height>297</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="pushButton_FlipX">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Flip X</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_FlipY">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Flip Y</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_FlipZ">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Flip Z</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_AutoMinimize">
<property name="text">
<string>Auto minimize</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_Minimize">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>30</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Minimize</string>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Volume</string>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>X-Size:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_XS">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Y-Size:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit_YS">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Z-Size:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEdit_ZS">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Volume:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="lineEdit_VS">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -1,99 +0,0 @@
def ApplyingBC_IC(Casedir,YoungModulus,PoissonCoeff,OUTER_GRID_No1,OUTER_GRID_No2,OUTER_GRID_No3,Meshobject) :
# Variables generales
import os,subprocess
#
AC_file = open (str(Casedir + "/" + "Applied_Conditions.txt"),'w')
#
#Setup local coordinate system by using *TRANSFORM keyword to avoid any rigid body motions during isostatic clamping
#Outer_Grid_no_1 is origin, no_2 is on x-axis and no_3 is in local XY plane
#Therefore
#OUTER_GRID_No2-OUTER_GRID_No1,OUTER_GRID_No3-OUTER_GRID_No1 is the input for the TRansform keyword
AllNodes = Meshobject.FemMesh.Nodes
GridNode1 = AllNodes[OUTER_GRID_No1]
GridNode2 = AllNodes[OUTER_GRID_No2]
GridNode3 = AllNodes[OUTER_GRID_No3]
print GridNode1
a_x = GridNode2[0]-GridNode1[0]
a_y = GridNode2[1]-GridNode1[1]
a_z = GridNode2[2]-GridNode1[2]
b_x = GridNode3[0]-GridNode1[0]
b_y = GridNode3[1]-GridNode1[1]
b_z = GridNode3[2]-GridNode1[2]
AC_file.write("** \n")
AC_file.write("** Node Set for transformation card :\n")
AC_file.write("*Nset, nset=transformed_nodes\n")
AC_file.write(str(OUTER_GRID_No1)+","+str(OUTER_GRID_No2)+","+str(OUTER_GRID_No3)+"\n")
AC_file.write("** \n")
AC_file.write("** Transformation to avoid rigid body motions :\n")
AC_file.write("*TRANSFORM, nset=transformed_nodes\n")
AC_file.write(str(a_x)+","+str(a_y)+","+str(a_z)+","+str(b_x)+","+str(b_y)+","+str(b_z)+"\n")
AC_file.write("** \n")
# a) BOUNDARY conditions in order to prevent the billet to any solid displacement
AC_file.write("** \n")
AC_file.write("** BOUNDARY Conditions :\n")
AC_file.write("*BOUNDARY\n")
AC_file.write("%i, 1, 3\n" %OUTER_GRID_No1)
AC_file.write("*BOUNDARY\n")
AC_file.write("%i, 2, 3\n" %OUTER_GRID_No2)
AC_file.write("*BOUNDARY \n")
AC_file.write("%i, 3\n" %OUTER_GRID_No3)
AC_file.write("** \n")
#
# b) MATERIAL description :
MAT_NAME = "EL"
AC_file.write("*MATERIAL, NAME=%s \n" %MAT_NAME)
AC_file.write("*ELASTIC \n")
AC_file.write("%f, %f \n" %(YoungModulus,PoissonCoeff))
# Assign the material properties to the desired group of elements :
AC_file.write("*SOLID SECTION, ELSET=Eall, MATERIAL=%s \n" %MAT_NAME)
AC_file.write("** \n")
#
# c) Define the load :
AC_file.write("** LOAD :\n")
#-Load_1: Points Loading :
#-Load_1: AC_file.write("*NSET, NSET=LOAD \n") # list of Nodes where Concentrated Load will be applied
#-Load_1: AC_file.write("??, ??, ??, ... \n")
#-Load_2 : For applying Internal (residual) stresses (cf. user-subroutine "sigini.f") :
AC_file.write("*INITIAL CONDITIONS, TYPE=STRESS, USER \n")
#
# d) FEM-calculation pilote :
AC_file.write("** \n")
AC_file.write("*STEP \n")
AC_file.write("*STATIC \n")
#-Load_1: AC_file.write("*CLOAD \n") # for Applying Concentrated Load
#-Load_1: AC_file.write("LOAD,3,Magnitude_per_Node \n") # force acting in the Z-dir, force magnitude per Node
#
# e) Specify the OUTPUT requested :
AC_file.write("** OUTPUT REQUESTS \n")
# If one wants to store each 0^th step the results of present calculation for future restarts
# AC_file.write("*Restart, write, frequency=0 \n")
AC_file.write("*NODE FILE \n")
AC_file.write("U \n") # displacements expressed in the GLOBAL Coord System
# AC_file.write("** \n")
AC_file.write("*EL FILE \n")
AC_file.write("S \n") # (Cauchy) Stresses
#
AC_file.write("*NODE PRINT , NSET=Nall \n")
AC_file.write("U \n") # displacements expressed in the GLOBAL Coord System
# AC_file.write("** \n")
AC_file.write("*EL PRINT , ELSET=Eall \n")
AC_file.write("S \n") # (Cauchy) Stresses
# AC_file.write("** \n")
#
AC_file.write("*END STEP")
#
AC_file.close()
os.chdir(str(Casedir))
fnull = open(os.devnull, 'w')
if os.name != "posix":
process = subprocess.Popen("type geometry_fe_input.inp Applied_Conditions.txt> final_fe_input.inp",shell=True)
process.wait()
process = subprocess.Popen("del /Q geometry_fe_input.inp",shell=True)
process.wait()
else:
commandline = "cat Applied_Conditions.txt >> geometry_fe_input.inp"
result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull)
#
fnull.close()
return

View File

@@ -1,45 +0,0 @@
# collect all the python files:
#FILE( GLOB MachDist_SRCS ./*.py )
SET(MachDist_SRCS
Init.py
InitGui.py
ApplyingBC_IC.py
mach_dist_gui.py
machdist_rc.py
Parameter.py
postprocess.py
postprocess_gui.py
calculix_postprocess.py
MachiningDistortionCommands.py
User_Interface_Mach_Dist.py
machdist_rc.py
MachDistMaterial.py
MachDistMesh.py
MachDistAnalysis.py
MachDistIsostatic.py
MachDistAlignment.py
MachDistMoveTools.py
Parameter.ui
Material.ui
Aligment.ui
JobControl.ui
Isostatic.ui
)
SOURCE_GROUP("" FILES ${MachDist_SRCS})
ADD_CUSTOM_TARGET(Machining_Distortion ALL
SOURCES ${MachDist_SRCS}
)
fc_copy_sources(Machining_Distortion "${CMAKE_BINARY_DIR}/Mod/Machining_Distortion" ${MachDist_SRCS})
INSTALL(
FILES
${MachDist_SRCS}
DESTINATION
Mod/Machining_Distortion
)

View File

@@ -1,317 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>278</width>
<height>144</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_24">
<property name="text">
<string>From</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_25">
<property name="text">
<string>To</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_26">
<property name="text">
<string>Intervall</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QSpinBox" name="spinBox_misalignment_x_from">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBox_misalignment_x_to">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="spinBox_misalignment_x_intervall">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="label">
<property name="text">
<string>Angle X-Axis</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QSpinBox" name="spinBox_misalignment_y_from">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="spinBox_misalignment_y_to">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QSpinBox" name="spinBox_misalignment_y_intervall">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Angle Y-Axis</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QSpinBox" name="spinBox_misalignment_z_from">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="spinBox_misalignment_z_to">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QSpinBox" name="spinBox_misalignment_z_intervall">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Angle Z-Axis</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QSpinBox" name="spinBox_z_level_from">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QSpinBox" name="spinBox_z_level_to">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QSpinBox" name="spinBox_z_level_intervall">
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QLabel" name="label_27">
<property name="text">
<string>Z-Level</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
<zorder></zorder>
<zorder></zorder>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -1,2 +0,0 @@
C:\Users\jriegel\SW-Entwicklung\FreeCAD\fem-dev-build\bin\pyrcc4.exe -o machdist_rc.py Resources\machdist_resources.qrc

View File

@@ -1,5 +0,0 @@
# MachiningDistortion
# Get the Parameter Group of this module
ParGrp = App.ParamGet("System parameter:Modules").GetGroup("MachiningDistortion")

View File

@@ -1,185 +0,0 @@
# MachiningDistortion Gui stuff
class MachiningDistortionWorkbench ( Workbench ):
"Test workbench object"
Icon = """
/* XPM */
static const char *test_icon[]={
"13 16 88 1",
" c None",
". c #000000",
"+ c #130D02",
"@ c #372704",
"# c #5C4107",
"$ c #5C3F07",
"% c #5B3D07",
"& c #5B3C07",
"* c #5B3A07",
"= c #4D3106",
"- c #5B4207",
"; c #9A7E08",
"> c #E4B30C",
", c #E7B00C",
"' c #E3A70B",
") c #E09E0B",
"! c #DD950A",
"~ c #5D3B07",
"{ c #5D4707",
"] c #F1CC0E",
"^ c #AF900A",
"/ c #BF970B",
"( c #E7B10C",
"_ c #E4A90C",
": c #E1A00B",
"< c #5D3E07",
"[ c #5F4807",
"} c #F5D70E",
"| c #D7B70C",
"1 c #504204",
"2 c #EBBC0D",
"3 c #E8B30C",
"4 c #E5AB0C",
"5 c #5E4007",
"6 c #604A08",
"7 c #F9E10F",
"8 c #F6D90E",
"9 c #574A05",
"0 c #DBB70C",
"a c #ECBE0D",
"b c #E9B50C",
"c c #604307",
"d c #604B08",
"e c #FDEC10",
"f c #FAE30F",
"g c #F4D70F",
"h c #F3D20E",
"i c #F0C90E",
"j c #EDC00D",
"k c #604507",
"l c #FFF110",
"m c #FEEE10",
"n c #FBE50F",
"o c #726607",
"p c #EBCD0E",
"q c #F1CB0E",
"r c #614608",
"s c #FFF010",
"t c #A3960A",
"u c #958509",
"v c #F5D60E",
"w c #614908",
"x c #F9EB10",
"y c #716807",
"z c #F9E00F",
"A c #634B08",
"B c #FDEB10",
"C c #634D08",
"D c #5C4808",
"E c #B9AF0C",
"F c #A69D0A",
"G c #655008",
"H c #584407",
"I c #EFE20F",
"J c #595406",
"K c #5B4708",
"L c #716B07",
"M c #2A2104",
"N c #1B1502",
"O c #E9DC0F",
"P c #2C2303",
"Q c #201803",
"R c #6B5608",
"S c #1E1802",
"T c #201A02",
"U c #695508",
"V c #362C04",
"W c #0C0901",
"... +@#$%&*=",
" -;>,')!~",
" . {]^/(_:<",
" . [}|12345",
" 67890abc",
" . defghijk",
" . dlmnopqr",
" dllstuvw",
" dlllxyzA",
" .dlllllBC",
" .DllllEFG",
" HllllIJG",
" KlllllLG",
" MllllllG",
" NlllllOP",
" QRPSTUVW"};
"""
MenuText = "Part Distortion"
ToolTip = "PartDistortion workbench"
def setWatchers(self):
class WatcherStart:
def __init__(self):
self.commands = ["MachDist_Analysis"]
self.title = "Start"
def shouldShow(self):
import FemGui
return FemGui.getActiveAnalysis() == None
class WatcherFill:
def __init__(self):
self.commands = ["MachDist_Mesh","MachDist_Alignment","MachDist_Material","MachDist_Isostatic"]
self.title = "Modify objects"
def shouldShow(self):
import FemGui
return FemGui.getActiveAnalysis() != None
#class DraftTrayWatcher:
# def __init__(self,traywidget):
# self.form = traywidget
# self.widgets = [self.form]
# def shouldShow(self):
# return True
#self.traywidget = QtGui.QWidget()
#self.tray = QtGui.QVBoxLayout(self.traywidget)
#self.tray.setObjectName("traylayout")
#self.toptray = QtGui.QHBoxLayout()
#self.bottomtray = QtGui.QHBoxLayout()
#self.tray.addLayout(self.toptray)
#self.tray.addLayout(self.bottomtray)
#self.setupTray()
#self.setupStyle()
#w = DraftTrayWatcher(self.traywidget)
FreeCADGui.Control.addTaskWatcher([WatcherStart(),WatcherFill()])
def Initialize(self):
import machdist_rc
import MachiningDistortionCommands
import MachDistMesh
import MachDistAnalysis
import MachDistMaterial
import MachDistAlignment
import MachDistIsostatic
CmdList = ["MachiningDistortion_StartGUI","MachiningDistortion_StartPostprocess"]
self.appendToolbar("MachiningDistortionTools",CmdList)
self.appendMenu("Machining Distortion",CmdList)
CmdList2 = ["MachDist_Analysis","Separator","MachDist_Mesh","MachDist_Alignment","MachDist_Material","MachDist_Isostatic","Separator","MachDist_JobControl"]
self.appendToolbar("MachiningDistortionTools2",CmdList2)
self.appendMenu("Machining Distortion2",CmdList2)
#self.setWatchers()
Gui.addPreferencePage(":/ui/MachDist-userprefs.ui","Part Distortion")
Log ('Loading MachiningDistortion module... done\n')
def Activated(self):
self.setWatchers()
FreeCADGui.Control.showTaskView()
Msg("PartDistortionWorkbench::Activated()\n")
def Deactivated(self):
FreeCADGui.Control.clearTaskWatcher()
Msg("PartDistortionWorkbench::Deactivated()\n")
Gui.addWorkbench(MachiningDistortionWorkbench)

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Isostatic</class>
<widget class="QWidget" name="Isostatic">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>228</width>
<height>227</height>
</rect>
</property>
<property name="windowTitle">
<string>Isostatic Plane</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTextEdit" name="textEdit">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -1,350 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>JobControl</class>
<widget class="QWidget" name="JobControl">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>258</width>
<height>604</height>
</rect>
</property>
<property name="windowTitle">
<string>Job Control</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_24">
<property name="text">
<string>From</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_25">
<property name="text">
<string>To</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_26">
<property name="text">
<string>Intervall</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QSpinBox" name="spinBox_misalignment_x_from">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>-1</number>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBox_misalignment_x_to">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="label">
<property name="text">
<string>A</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QSpinBox" name="spinBox_misalignment_y_from">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>-1</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="spinBox_misalignment_y_to">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="label_2">
<property name="text">
<string>B</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QSpinBox" name="spinBox_misalignment_z_from">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>-1</number>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="spinBox_misalignment_z_to">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLabel" name="label_3">
<property name="text">
<string>C</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QSpinBox" name="spinBox_z_level_from">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>-1</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QSpinBox" name="spinBox_z_level_to">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QLabel" name="label_27">
<property name="text">
<string>Z</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="spinBox_misalignment_x_intervall">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QSpinBox" name="spinBox_misalignment_y_intervall">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QSpinBox" name="spinBox_misalignment_z_intervall">
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QSpinBox" name="spinBox_z_level_intervall">
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="minimum">
<number>-99</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLineEdit" name="lineEdit_outputDir"/>
</item>
<item>
<widget class="QToolButton" name="toolButton_chooseOutputDir">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QPushButton" name="pushButton_generate">
<property name="text">
<string>Generate</string>
</property>
</widget>
</item>
<item>
<widget class="QTextEdit" name="textEdit_Output"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -1,212 +0,0 @@
#***************************************************************************
#* *
#* Copyright (c) 2013 - Juergen Riegel <FreeCAD@juergen-riegel.net> *
#* *
#* 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, Fem, MachDistMoveTools
if FreeCAD.GuiUp:
import FreeCADGui, FemGui
from FreeCAD import Vector
from PyQt4 import QtCore, QtGui
from pivy import coin
import PyQt4.uic as uic
__title__="Machine-Distortion Alignment managment"
__author__ = "Juergen Riegel"
__url__ = "http://free-cad.sourceforge.net"
class _CommandAlignment:
"the MachDist Alignment command definition"
def GetResources(self):
return {'Pixmap' : 'MachDist_Align',
'MenuText': QtCore.QT_TRANSLATE_NOOP("MachDist_Alignment","Part Alignment"),
'Accel': "A",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("MachDist_Alignment","Part Alignment")}
def Activated(self):
FemMeshObject = None
import FemGui
# check if a active analysis is present and no Mesh in it
if FemGui.getActiveAnalysis() != None:
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("Fem::FemMeshObject"):
FemMeshObject = i
break
else:
return
FreeCAD.ActiveDocument.openTransaction("Alignment")
taskd = _AlignTaskPanel(FemMeshObject)
FreeCADGui.Control.showDialog(taskd)
def IsActive(self):
if FemGui.getActiveAnalysis():
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("Fem::FemMeshObject"):
return True
else:
return False
class _AlignTaskPanel:
'''The editmode TaskPanel for Material objects'''
def __init__(self,object):
# the panel has a tree widget that contains categories
# for the subcomponents, such as additions, subtractions.
# the categories are shown only if they are not empty.
form_class, base_class = uic.loadUiType(FreeCAD.getHomePath() + "Mod/Machining_Distortion/Aligment.ui")
self.obj = object
self.formUi = form_class()
self.form = QtGui.QWidget()
self.formUi.setupUi(self.form)
#Connect Signals and Slots
QtCore.QObject.connect(self.formUi.pushButton_FlipX, QtCore.SIGNAL("clicked()"), self.flipX)
QtCore.QObject.connect(self.formUi.pushButton_FlipY, QtCore.SIGNAL("clicked()"), self.flipY)
QtCore.QObject.connect(self.formUi.pushButton_FlipZ, QtCore.SIGNAL("clicked()"), self.flipZ)
QtCore.QObject.connect(self.formUi.checkBox_AutoMinimize, QtCore.SIGNAL("stateChanged(int)"), self.autoMinToogle)
QtCore.QObject.connect(self.formUi.pushButton_Minimize, QtCore.SIGNAL("clicked()"), self.minimize)
self.formUi.checkBox_AutoMinimize.setCheckState(0)
self.update()
# switch on Bound Box
#self.obj.ViewObject.BoundingBox = True
# calculate eigen transformation and transform the mesh
QtGui.qApp.setOverrideCursor(QtCore.Qt.WaitCursor)
import Mesh
# find the eigen axis
self.obj.Placement = Mesh.calculateEigenTransform(self.obj.FemMesh.Nodes.values())
# make the first alignment persistent
m = Fem.FemMesh(self.obj.FemMesh)
m.setTransform(self.obj.Placement)
self.obj.FemMesh = m
self.obj.Placement = FreeCAD.Placement()
# move in the first quandrant and minimize bound box
MachDistMoveTools.moveHome(self.obj)
MachDistMoveTools.minimizeBoundVolume(self.obj)
MachDistMoveTools.moveHome(self.obj)
# make the first alignment persistent
m = Fem.FemMesh(self.obj.FemMesh)
m.setTransform(self.obj.Placement)
self.obj.FemMesh = m
self.obj.Placement = FreeCAD.Placement()
self.showData()
QtGui.qApp.restoreOverrideCursor()
def getStandardButtons(self):
return int(QtGui.QDialogButtonBox.Ok) | int(QtGui.QDialogButtonBox.Cancel)
def update(self):
'fills the widgets'
return
def accept(self):
FreeCADGui.Control.closeDialog()
#self.obj.ViewObject.BoundingBox = False
FreeCAD.ActiveDocument.commitTransaction()
def reject(self):
FreeCADGui.Control.closeDialog()
#self.obj.ViewObject.BoundingBox = False
FreeCAD.ActiveDocument.abortTransaction()
def autoMinToogle(self,state):
if state == 0: self.formUi.pushButton_Minimize.setEnabled(True)
if state == 2: self.formUi.pushButton_Minimize.setEnabled(False)
def minimize(self):
QtGui.qApp.setOverrideCursor(QtCore.Qt.WaitCursor)
MachDistMoveTools.minimizeBoundVolume(self.obj)
MachDistMoveTools.moveHome(self.obj)
self.showData()
QtGui.qApp.restoreOverrideCursor()
def showData(self):
b = self.obj.FemMesh.BoundBox
self.formUi.lineEdit_XS.setText("%f"%b.XLength)
self.formUi.lineEdit_YS.setText("%f"%b.YLength)
self.formUi.lineEdit_ZS.setText("%f"%b.ZLength)
self.formUi.lineEdit_VS.setText("%f"% float(b.XLength*b.YLength*b.ZLength))
def afterFlip(self):
QtGui.qApp.setOverrideCursor(QtCore.Qt.WaitCursor)
MachDistMoveTools.minimizeBoundVolume(self.obj)
MachDistMoveTools.moveHome(self.obj)
QtGui.qApp.restoreOverrideCursor()
def flipX(self):
QtGui.qApp.setOverrideCursor(QtCore.Qt.WaitCursor)
p = self.obj.Placement
p.Rotation = p.Rotation.multiply(FreeCAD.Rotation(FreeCAD.Vector(1,0,0),90))
MachDistMoveTools.moveHome(self.obj)
if(self.formUi.checkBox_AutoMinimize.isChecked()):
MachDistMoveTools.minimizeBoundVolume(self.obj)
MachDistMoveTools.moveHome(self.obj)
self.showData()
QtGui.qApp.restoreOverrideCursor()
def flipY(self):
QtGui.qApp.setOverrideCursor(QtCore.Qt.WaitCursor)
p = self.obj.Placement
p.Rotation = p.Rotation.multiply(FreeCAD.Rotation(FreeCAD.Vector(0,1,0),90))
MachDistMoveTools.moveHome(self.obj)
if(self.formUi.checkBox_AutoMinimize.isChecked()):
MachDistMoveTools.minimizeBoundVolume(self.obj)
MachDistMoveTools.moveHome(self.obj)
self.showData()
QtGui.qApp.restoreOverrideCursor()
def flipZ(self):
QtGui.qApp.setOverrideCursor(QtCore.Qt.WaitCursor)
p = self.obj.Placement
p.Rotation = p.Rotation.multiply(FreeCAD.Rotation(FreeCAD.Vector(0,0,1),90))
MachDistMoveTools.moveHome(self.obj)
if(self.formUi.checkBox_AutoMinimize.isChecked()):
MachDistMoveTools.minimizeBoundVolume(self.obj)
MachDistMoveTools.moveHome(self.obj)
self.showData()
QtGui.qApp.restoreOverrideCursor()
FreeCADGui.addCommand('MachDist_Alignment',_CommandAlignment())

View File

@@ -1,378 +0,0 @@
#***************************************************************************
#* *
#* Copyright (c) 2013 - Juergen Riegel <FreeCAD@juergen-riegel.net> *
#* *
#* 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, Fem, os,sys,string,math,shutil,glob,subprocess,tempfile,MachDistMoveTools
from ApplyingBC_IC import ApplyingBC_IC
if FreeCAD.GuiUp:
import FreeCADGui,FemGui
from FreeCAD import Vector
from PyQt4 import QtCore, QtGui
from pivy import coin
import PyQt4.uic as uic
__title__="Machine-Distortion Analysis managment"
__author__ = "Juergen Riegel"
__url__ = "http://free-cad.sourceforge.net"
def makeMachDistAnalysis(name):
'''makeMachDistAnalysis(name): makes a MachDist Analysis object'''
obj = FreeCAD.ActiveDocument.addObject("Fem::FemAnalysisPython",name)
_MachDistAnalysis(obj)
_ViewProviderMachDistAnalysis(obj.ViewObject)
#FreeCAD.ActiveDocument.recompute()
return obj
class _CommandAnalysis:
"the MachDist Analysis command definition"
def GetResources(self):
return {'Pixmap' : 'MachDist_NewAnalysis',
'MenuText': QtCore.QT_TRANSLATE_NOOP("MachDist_Analysis","Machine-Distortion Analysis"),
'Accel': "A",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("MachDist_Analysis","Add or edit a Machine-Distortion Analysis")}
def Activated(self):
FreeCAD.ActiveDocument.openTransaction("Create Analysis")
FreeCADGui.addModule("FemGui")
FreeCADGui.addModule("MachDistAnalysis")
FreeCADGui.doCommand("FreeCADGui.ActiveDocument.ActiveView.setAxisCross(True)")
#FreeCADGui.doCommand("App.activeDocument().addObject('Fem::FemAnalysis','PartDistortion')")
FreeCADGui.doCommand("MachDistAnalysis.makeMachDistAnalysis('PartDistortion')")
FreeCADGui.doCommand("FemGui.setActiveAnalysis(App.activeDocument().ActiveObject)")
sel = FreeCADGui.Selection.getSelection()
if (len(sel) == 1):
if(sel[0].isDerivedFrom("Fem::FemMeshObject")):
FreeCADGui.doCommand("App.activeDocument().ActiveObject.Member = App.activeDocument().ActiveObject.Member + [App.activeDocument()."+sel[0].Name+"]")
if(sel[0].isDerivedFrom("Part::Feature")):
FreeCADGui.doCommand("App.activeDocument().addObject('Fem::FemMeshShapeNetgenObject','"+sel[0].Name +"_Mesh')")
FreeCADGui.doCommand("App.activeDocument().ActiveObject.Shape = App.activeDocument()."+sel[0].Name)
FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [App.activeDocument().ActiveObject]")
FreeCADGui.doCommand("Gui.activeDocument().hide('"+sel[0].Name+"')")
#FreeCADGui.doCommand("App.activeDocument().ActiveObject.touch()")
#FreeCADGui.doCommand("App.activeDocument().recompute()")
FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name)")
FreeCAD.ActiveDocument.commitTransaction()
FreeCADGui.Selection.clearSelection()
def IsActive(self):
import FemGui
return FreeCADGui.ActiveDocument != None and FemGui.getActiveAnalysis() == None
class _CommandJobControl:
"the MachDist JobControl command definition"
def GetResources(self):
return {'Pixmap' : 'MachDist_Upload',
'MenuText': QtCore.QT_TRANSLATE_NOOP("MachDist_JobControl","Generate Jobs"),
'Accel': "A",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("MachDist_Analysis","Dialog to generate the jobs")}
def Activated(self):
taskd = _JobControlTaskPanel()
#taskd.obj = vobj.Object
taskd.update()
FreeCADGui.Control.showDialog(taskd)
def IsActive(self):
import FemGui
return True
class _MachDistAnalysis:
"The Material object"
def __init__(self,obj):
self.Type = "MachDistAnalysis"
obj.Proxy = self
#obj.Material = StartMat
obj.addProperty("App::PropertyString","OutputDir","Base","Directory where the jobs get generated")
obj.addProperty("App::PropertyFloat","PlateThikness","Base","Thikness of the plate")
def execute(self,obj):
return
def onChanged(self,obj,prop):
if prop in ["MaterialName"]:
return
def __getstate__(self):
return self.Type
def __setstate__(self,state):
if state:
self.Type = state
class _ViewProviderMachDistAnalysis:
"A View Provider for the Material object"
def __init__(self,vobj):
#vobj.addProperty("App::PropertyLength","BubbleSize","Base", str(translate("MachDist","The size of the axis bubbles")))
vobj.Proxy = self
def getIcon(self):
import machdist_rc
return ":/icons/MachDist_NewAnalysis.svg"
def attach(self, vobj):
self.ViewObject = vobj
self.Object = vobj.Object
self.bubbles = None
def updateData(self, obj, prop):
return
def onChanged(self, vobj, prop):
return
def doubleClicked(self,vobj):
taskd = _JobControlTaskPanel(self.Object)
taskd.obj = vobj.Object
taskd.update()
FreeCADGui.Control.showDialog(taskd)
return True
def __getstate__(self):
return None
def __setstate__(self,state):
return None
class _JobControlTaskPanel:
'''The editmode TaskPanel for Material objects'''
def __init__(self):
# the panel has a tree widget that contains categories
# for the subcomponents, such as additions, subtractions.
# the categories are shown only if they are not empty.
form_class, base_class = uic.loadUiType(FreeCAD.getHomePath() + "Mod/Machining_Distortion/JobControl.ui")
#self.obj = object
self.formUi = form_class()
self.form = QtGui.QWidget()
self.formUi.setupUi(self.form)
self.params = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Machining_Distortion")
#Connect Signals and Slots
QtCore.QObject.connect(self.formUi.toolButton_chooseOutputDir, QtCore.SIGNAL("clicked()"), self.chooseOutputDir)
QtCore.QObject.connect(self.formUi.pushButton_generate, QtCore.SIGNAL("clicked()"), self.generate)
self.update()
def getStandardButtons(self):
return int(QtGui.QDialogButtonBox.Close)
def update(self):
'fills the widgets'
self.formUi.lineEdit_outputDir.setText(self.params.GetString("JobDir",'/'))
return
def accept(self):
FreeCADGui.Control.closeDialog()
def reject(self):
FreeCADGui.Control.closeDialog()
def chooseOutputDir(self):
print "chooseOutputDir"
dirname = QtGui.QFileDialog.getExistingDirectory(None, 'Choose material directory',self.params.GetString("JobDir",'/'))
if(dirname):
self.params.SetString("JobDir",str(dirname))
self.formUi.lineEdit_outputDir.setText(dirname)
def generate(self):
print "pushButton_generate"
print self.formUi.lineEdit_outputDir.text()
dirName = self.formUi.lineEdit_outputDir.text()
MeshObject = None
if FemGui.getActiveAnalysis():
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("Fem::FemMeshObject"):
MeshObject = i
else:
QtGui.QMessageBox.critical(None, "Missing prerequisit","No active Analysis")
return
if not MeshObject:
QtGui.QMessageBox.critical(None, "Missing prerequisit","No mesh object in the Analysis")
return
MathObject = None
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("App::MaterialObjectPython"):
MathObject = i
if not MathObject:
QtGui.QMessageBox.critical(None, "Missing prerequisit","No material object in the Analysis")
return
matmap = MathObject.Material
IsoNodeObject = None
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("App::FeaturePython"):
if i.Proxy.Type == 'MachDist_IsostaticNodes':
IsoNodeObject = i
if not IsoNodeObject:
QtGui.QMessageBox.critical(None, "Missing prerequisit","No Isostatic nodes defined in the Analysis")
return
IsoNodes = IsoNodeObject.IsostaticNodes
filename_without_suffix = MeshObject.Name
#current_file_name
z_offset_from = self.formUi.spinBox_z_level_from.value()
z_offset_to = self.formUi.spinBox_z_level_to.value()
z_offset_intervall = self.formUi.spinBox_z_level_intervall.value()
x_rot_from = self.formUi.spinBox_misalignment_x_from.value()
x_rot_to = self.formUi.spinBox_misalignment_x_to.value()
x_rot_intervall = self.formUi.spinBox_misalignment_x_intervall.value()
y_rot_from = self.formUi.spinBox_misalignment_y_from.value()
y_rot_to = self.formUi.spinBox_misalignment_y_to.value()
y_rot_intervall = self.formUi.spinBox_misalignment_y_intervall.value()
z_rot_from = self.formUi.spinBox_misalignment_z_from.value()
z_rot_to = self.formUi.spinBox_misalignment_z_to.value()
z_rot_intervall = self.formUi.spinBox_misalignment_z_intervall.value()
#current_file_name = self.JobTable.item(job,0).text()
lc1 = float(matmap['PartDist_lc1'])
lc2 = float(matmap['PartDist_lc2'])
lc3 = float(matmap['PartDist_lc3'])
lc4 = float(matmap['PartDist_lc4'])
lc5 = float(matmap['PartDist_lc5'])
lc6 = float(matmap['PartDist_lc6'])
ltc1 =float(matmap['PartDist_ltc1'])
ltc2 =float(matmap['PartDist_ltc2'])
ltc3 =float(matmap['PartDist_ltc3'])
ltc4 =float(matmap['PartDist_ltc4'])
ltc5 =float(matmap['PartDist_ltc5'])
ltc6 =float(matmap['PartDist_ltc6'])
young_modulus = float(matmap['FEM_youngsmodulus'])
poisson_ratio = float(matmap['PartDist_poissonratio'])
plate_thickness = float(matmap['PartDist_platethickness'])
batch = open(str(dirName + "/" + "lcmt_CALCULIX_Calculation_batch.bat"),'wb')
batch.write("#!/bin/bash\n")
batch.write("export CCX_NPROC=4\n")
OutStr = "Generate:\n"
print z_rot_intervall,y_rot_intervall,x_rot_intervall,z_offset_intervall
print z_offset_from,z_offset_intervall,z_offset_to
i = z_offset_from
while i <= z_offset_to:
j = x_rot_from
while j <= x_rot_to:
k = y_rot_from
while k <= y_rot_to:
l = z_rot_from
while l <= z_rot_to:
OutStr = OutStr + str(j) + "," + str(k) + "," + str(l)
self.formUi.textEdit_Output.setText(OutStr)
rotation_around_x = FreeCAD.Base.Placement(FreeCAD.Base.Vector(0,0,0),FreeCAD.Base.Vector(1,0,0),j)
rotation_around_y = FreeCAD.Base.Placement(FreeCAD.Base.Vector(0,0,0),FreeCAD.Base.Vector(0,1,0),k)
rotation_around_z = FreeCAD.Base.Placement(FreeCAD.Base.Vector(0,0,0),FreeCAD.Base.Vector(0,0,1),l)
translate = FreeCAD.Base.Vector(0,0,i)
rotation = rotation_around_x.multiply(rotation_around_y).multiply(rotation_around_z)
MeshObject.Placement = rotation #Now only the rotation is applied
#Move back to Origin and apply translation
MachDistMoveTools.moveHome(MeshObject)
p = MeshObject.Placement
p2 = FreeCAD.Placement(p.Base + translate,p.Rotation)
MeshObject.Placement = p2
BndBox = MeshObject.FemMesh.BoundBox
print BndBox.ZMax
print plate_thickness
if(BndBox.ZMax > plate_thickness):
print " Too heavy rotations"
print str(plate_thickness)
l= l + z_rot_intervall
OutStr = OutStr + " Too heavy rotations"
self.formUi.textEdit_Output.setText(OutStr)
continue
Case_Dir = str(dirName) + "/" + filename_without_suffix +\
"_"+"x_rot"+ str(int(j))+ \
"_"+"y_rot"+ str(int(k))+ \
"_"+"z_rot"+ str(int(l))+ \
"_"+"z_l"+ str(int(i))
if ( os.path.exists(str(Case_Dir)) ):
os.chdir(str(dirName))
shutil.rmtree(str(Case_Dir))
OutStr = OutStr + "\n"
self.formUi.textEdit_Output.setText(OutStr)
FreeCADGui.updateGui()
os.mkdir(str(Case_Dir))
#Lets generate a sigini Input Deck for the calculix user subroutine
sigini_input = open (str(Case_Dir + "/" + "sigini_input.txt"),'wb')
#Write plate thickness to the sigini_file
sigini_input.write(str(plate_thickness) + "\n")
#Now write the Interpolation coefficients, first the L and then the LC ones
sigini_input.write(\
str(lc1) + "," + \
str(lc2) + "," + \
str(lc3) + "," + \
str(lc4) + "," + \
str(lc5) + "," + \
str(lc6) + "\n")
sigini_input.write(\
str(ltc1) + "," + \
str(ltc2) + "," + \
str(ltc3) + "," + \
str(ltc4) + "," + \
str(ltc5) + "," + \
str(ltc6) + "\n")
sigini_input.close()
#Check if the
MeshObject.FemMesh.writeABAQUS(str(Case_Dir + "/" + "geometry_fe_input.inp"))
IsoNodes = list(IsoNodes)
ApplyingBC_IC(Case_Dir, young_modulus,poisson_ratio,IsoNodes[0],IsoNodes[1],IsoNodes[2],MeshObject)
batch.write("cd \"" + str(Case_Dir) + "\"\n")
batch.write("ccx -i geometry_fe_input\n")
l= l + z_rot_intervall
k = k + y_rot_intervall
j = j + x_rot_intervall
i = i+ z_offset_intervall
# set the neutral placement from the beginning
MeshObject.Placement = FreeCAD.Base.Placement()
FreeCADGui.addCommand('MachDist_Analysis',_CommandAnalysis())
FreeCADGui.addCommand('MachDist_JobControl',_CommandJobControl())

View File

@@ -1,274 +0,0 @@
#***************************************************************************
#* *
#* Copyright (c) 2013 - Juergen Riegel <FreeCAD@juergen-riegel.net> *
#* *
#* 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, Fem, Mesh
if FreeCAD.GuiUp:
import FreeCADGui,FemGui
from FreeCAD import Vector
from PyQt4 import QtCore, QtGui
from pivy import coin
import PyQt4.uic as uic
__title__="Machine-Distortion Isostatic managment"
__author__ = "Juergen Riegel"
__url__ = "http://free-cad.sourceforge.net"
def getBoundaryCoditions(Mesh):
BndBox = Mesh.BoundBox
FirstLength = 10000.0
FirstIndex = -1
SecondLength = 10000.0
SecondIndex = -1
ThirdLength = 10000.0
ThirdIndex = -1
for id,i in Mesh.Nodes.items():
l = (i-FreeCAD.Vector(BndBox.XMin,BndBox.YMin,BndBox.ZMin)).Length
if FirstLength > l:
FirstLength = l
FirstIndex = id
l = (i-FreeCAD.Vector(BndBox.XMax,BndBox.YMin,BndBox.ZMin)).Length
if SecondLength > l:
SecondLength = l
SecondIndex = id
l = (i-FreeCAD.Vector(BndBox.XMin,BndBox.YMax,BndBox.ZMin)).Length
if ThirdLength > l:
ThirdLength = l
ThirdIndex = id
print FirstIndex,SecondIndex,ThirdIndex
return (FirstIndex,SecondIndex,ThirdIndex)
def makeIsostatic(name):
'''makeMaterial(name): makes an Material
name there fore is a material name or an file name for a FCMat file'''
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython",name)
_IsostaticNodes(obj)
_ViewProviderIsostaticNodes(obj.ViewObject)
#FreeCAD.ActiveDocument.recompute()
return obj
class _CommandIsostatic:
"the MachDist Isostatic command definition"
def GetResources(self):
return {'Pixmap' : 'MachDist_Isostatic',
'MenuText': QtCore.QT_TRANSLATE_NOOP("MachDist_Isostatic","Machine-Distortion Isostatic"),
'Accel': "A",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("MachDist_Isostatic","Add or edit a Machine-Distortion Isostatic")}
def Activated(self):
FreeCAD.ActiveDocument.openTransaction("Isostatic")
obj = None
FemMeshObj = None
if FemGui.getActiveAnalysis():
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("App::FeaturePython"):
if i.Proxy.Type == 'MachDist_IsostaticNodes':
obj = i
break
else:
return
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("Fem::FemMeshObject"):
FemMeshObj = i
if not obj:
FreeCADGui.addModule("MachDistIsostatic")
FreeCADGui.doCommand("MachDistIsostatic.makeIsostatic('IsostaticNodes')")
obj = FreeCAD.activeDocument().ActiveObject
FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [App.activeDocument().ActiveObject]")
#node_numbers = Fem.getBoundary_Conditions(FemMeshObj.FemMesh)
node_numbers = getBoundaryCoditions(FemMeshObj.FemMesh)
obj.IsostaticNodes = node_numbers
nodes = FemMeshObj.FemMesh.Nodes
meshObj = None
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("Mesh::Feature"):
meshObj = i
break
if not meshObj:
FreeCADGui.doCommand("App.activeDocument().addObject('Mesh::Feature','IsostaticPlane')")
meshObj = FreeCAD.activeDocument().ActiveObject
meshObj.ViewObject.ShapeColor = (0.0, 1.0, 0.0, 0.0)
FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [App.activeDocument().ActiveObject]")
planarMesh = [
# triangle 1
nodes[node_numbers[0]],nodes[node_numbers[1]],nodes[node_numbers[2]],
#triangle 2
#[-0.5000,-0.5000,0.0000],[0.5000,-0.5000,0.0000],[0.5000,0.5000,0.0000],
]
aMesh = Mesh.Mesh(planarMesh)
meshObj.Mesh = aMesh
taskd = _IsostaticTaskPanel(obj,meshObj,FemMeshObj)
FreeCADGui.Control.showDialog(taskd)
def IsActive(self):
if FemGui.getActiveAnalysis():
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("Fem::FemMeshObject"):
return True
else:
return False
class _IsostaticNodes:
"The IsostaticNodes object"
def __init__(self,obj):
self.Type = "MachDist_IsostaticNodes"
obj.Proxy = self
obj.addProperty("App::PropertyIntegerList","IsostaticNodes","Base",
"The isostatic node numbers")
def execute(self,obj):
return
def onChanged(self,obj,prop):
if prop in ["IsostaticNodes"]:
return
def __getstate__(self):
return self.Type
def __setstate__(self,state):
if state:
self.Type = state
class _ViewProviderIsostaticNodes:
"A View Provider for the IsostaticNodes object"
def __init__(self,vobj):
#vobj.addProperty("App::PropertyLength","BubbleSize","Base", str(translate("MachDist","The size of the axis bubbles")))
vobj.Proxy = self
def getIcon(self):
import machdist_rc
return ":/icons/MachDist_Isostatic.svg"
def attach(self, vobj):
self.ViewObject = vobj
self.Object = vobj.Object
def setEdit(self,vobj,mode):
FemMeshObj = None
if FemGui.getActiveAnalysis():
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("Fem::FemMeshObject"):
FemMeshObj = i
break
else:
return False
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("Fem::FemMeshObject"):
FemMeshObj = i
taskd = _IsostaticTaskPanel(self.Object, None,FemMeshObj)
taskd.obj = vobj.Object
taskd.update()
FreeCADGui.Control.showDialog(taskd)
return True
def unsetEdit(self,vobj,mode):
FreeCADGui.Control.closeDialog()
return
class _IsostaticTaskPanel:
'''The editmode TaskPanel for Material objects'''
def __init__(self,obj,meshObj,femMeshObj):
# the panel has a tree widget that contains categories
# for the subcomponents, such as additions, subtractions.
# the categories are shown only if they are not empty.
form_class, base_class = uic.loadUiType(FreeCAD.getHomePath() + "Mod/Machining_Distortion/Isostatic.ui")
self.obj = obj
self.meshObj = meshObj
self.femMeshObj = femMeshObj
self.formUi = form_class()
self.form = QtGui.QWidget()
self.formUi.setupUi(self.form)
self.params = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Machining_Distortion")
#QtCore.QObject.connect(self.formUi.select_L_file, QtCore.SIGNAL("clicked()"), self.add_L_data)
self.femMeshObj.ViewObject.Transparency = 50
self.meshObj.ViewObject.Visibility=True
self.update()
def getStandardButtons(self):
return int(QtGui.QDialogButtonBox.Ok) | int(QtGui.QDialogButtonBox.Cancel)
def update(self):
'fills the widgets'
OutStr = 'Isostatic Plane:\n'
IsoNodes = list(self.obj.IsostaticNodes)
AllNodes = self.femMeshObj.FemMesh.Nodes
GridNode1 = AllNodes[IsoNodes[0]]
GridNode2 = AllNodes[IsoNodes[1]]
GridNode3 = AllNodes[IsoNodes[2]]
OutStr = OutStr + 'Nodes: '+`IsoNodes[0]`+', '+`IsoNodes[1]`+', '+`IsoNodes[2]`+'\n'
OutStr = OutStr + '('+`GridNode1.x`[0:6]+', '+`GridNode1.y`[0:6]+', '+`GridNode1.z`[0:6]+')\n'
OutStr = OutStr + '('+`GridNode2.x`[0:6]+', '+`GridNode2.y`[0:6]+', '+`GridNode2.z`[0:6]+')\n'
OutStr = OutStr + '('+`GridNode3.x`[0:6]+', '+`GridNode3.y`[0:6]+', '+`GridNode3.z`[0:6]+')\n'
self.formUi.textEdit.setText(OutStr)
return
def accept(self):
self.femMeshObj.ViewObject.Transparency = 0
self.meshObj.ViewObject.Visibility=False
FreeCAD.ActiveDocument.commitTransaction()
FreeCADGui.Control.closeDialog()
def reject(self):
self.femMeshObj.ViewObject.Transparency = 0
self.meshObj.ViewObject.Visibility=False
FreeCAD.ActiveDocument.abortTransaction()
FreeCADGui.Control.closeDialog()
FreeCADGui.addCommand('MachDist_Isostatic',_CommandIsostatic())

View File

@@ -1,331 +0,0 @@
#***************************************************************************
#* *
#* Copyright (c) 2013 - Juergen Riegel <FreeCAD@juergen-riegel.net> *
#* *
#* 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, Fem
if FreeCAD.GuiUp:
import FreeCADGui,FemGui
from FreeCAD import Vector
from PyQt4 import QtCore, QtGui
from pivy import coin
import PyQt4.uic as uic
__title__="Machine-Distortion FemSetGeometryObject managment"
__author__ = "Juergen Riegel"
__url__ = "http://free-cad.sourceforge.net"
StartMat = {'FEM_youngsmodulus' :'7000.00',
'PartDist_poissonratio' :'0.30',
'PartDist_platethickness' :'40.0',
'PartDist_lc1' :'0.0',
'PartDist_lc2' :'0.0',
'PartDist_lc3' :'0.0',
'PartDist_lc4' :'0.0',
'PartDist_lc5' :'0.0',
'PartDist_lc6' :'0.0',
'PartDist_ltc1' :'0.0',
'PartDist_ltc2' :'0.0',
'PartDist_ltc3' :'0.0',
'PartDist_ltc4' :'0.0',
'PartDist_ltc5' :'0.0',
'PartDist_ltc6' :'0.0'
}
def makeMaterial(name):
'''makeMaterial(name): makes an Material
name there fore is a material name or an file name for a FCMat file'''
obj = FreeCAD.ActiveDocument.addObject("App::MaterialObjectPython",name)
_Material(obj)
_ViewProviderMaterial(obj.ViewObject)
#FreeCAD.ActiveDocument.recompute()
return obj
class _CommandMaterial:
"the MachDist Material command definition"
def GetResources(self):
return {'Pixmap' : 'MachDist_Material',
'MenuText': QtCore.QT_TRANSLATE_NOOP("MachDist_Material","Material"),
'Accel': "A, X",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("MachDist_Material","Creates or edit the material definition.")}
def Activated(self):
MatObj = None
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("App::MaterialObject"):
MatObj = i
if (not MatObj):
FreeCAD.ActiveDocument.openTransaction("Create Material")
FreeCADGui.addModule("MachDistMaterial")
FreeCADGui.doCommand("mat = MachDistMaterial.makeMaterial('Material')")
FreeCADGui.doCommand("App.activeDocument()."+FemGui.getActiveAnalysis().Name+".Member = App.activeDocument()."+FemGui.getActiveAnalysis().Name+".Member + [mat]")
FreeCADGui.doCommand("Gui.activeDocument().setEdit(mat.Name,0)")
#FreeCADGui.doCommand("MachDist.makeMaterial()")
else:
FreeCADGui.doCommand("Gui.activeDocument().setEdit('"+MatObj.Name+"',0)")
def IsActive(self):
if FemGui.getActiveAnalysis():
return True
else:
return False
class _Material:
"The Material object"
def __init__(self,obj):
self.Type = "MachDistMaterial"
obj.Proxy = self
obj.Material = StartMat
#obj.addProperty("App::PropertyString","MaterialName","Base",
# "The name of the distorion material")
def execute(self,obj):
return
def onChanged(self,obj,prop):
if prop in ["MaterialName"]:
return
def __getstate__(self):
return self.Type
def __setstate__(self,state):
if state:
self.Type = state
class _ViewProviderMaterial:
"A View Provider for the Material object"
def __init__(self,vobj):
#vobj.addProperty("App::PropertyLength","BubbleSize","Base", str(translate("MachDist","The size of the axis bubbles")))
vobj.Proxy = self
def getIcon(self):
import machdist_rc
return ":/icons/MachDist_Material.svg"
def claimChildren(self):
return []
def attach(self, vobj):
self.ViewObject = vobj
self.Object = vobj.Object
self.bubbles = None
def updateData(self, obj, prop):
return
def onChanged(self, vobj, prop):
return
def setEdit(self,vobj,mode):
taskd = _MaterialTaskPanel(self.Object)
taskd.obj = vobj.Object
taskd.update()
FreeCADGui.Control.showDialog(taskd)
return True
def unsetEdit(self,vobj,mode):
FreeCADGui.Control.closeDialog()
return
def __getstate__(self):
return None
def __setstate__(self,state):
return None
class _MaterialTaskPanel:
'''The editmode TaskPanel for Material objects'''
def __init__(self,obj):
# the panel has a tree widget that contains categories
# for the subcomponents, such as additions, subtractions.
# the categories are shown only if they are not empty.
form_class, base_class = uic.loadUiType(FreeCAD.getHomePath() + "Mod/Machining_Distortion/Material.ui")
self.obj = obj
self.formUi = form_class()
self.form = QtGui.QWidget()
self.formUi.setupUi(self.form)
self.params = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Machining_Distortion")
QtCore.QObject.connect(self.formUi.select_L_file, QtCore.SIGNAL("clicked()"), self.add_L_data)
QtCore.QObject.connect(self.formUi.select_LT_file, QtCore.SIGNAL("clicked()"), self.add_LT_data)
QtCore.QObject.connect(self.formUi.pushButton_SaveMat, QtCore.SIGNAL("clicked()"), self.saveMat)
QtCore.QObject.connect(self.formUi.toolButton_chooseDir, QtCore.SIGNAL("clicked()"), self.chooseDir)
QtCore.QObject.connect(self.formUi.comboBox_MaterialsInDir, QtCore.SIGNAL("currentIndexChanged(int)"), self.chooseMat)
self.update()
def transferTo(self):
"Transfer from the dialog to the object"
matmap = self.obj.Material
matmap['FEM_youngsmodulus'] = str(self.formUi.spinBox_young_modulus.value())
matmap['PartDist_poissonratio'] = str(self.formUi.spinBox_poisson_ratio.value())
matmap['PartDist_platethickness'] = str(self.formUi.spinBox_Plate_Thickness.value())
matmap['PartDist_lc1'] = str(self.formUi.lc1.value())
matmap['PartDist_lc2'] = str(self.formUi.lc2.value())
matmap['PartDist_lc3'] = str(self.formUi.lc3.value())
matmap['PartDist_lc4'] = str(self.formUi.lc4.value())
matmap['PartDist_lc5'] = str(self.formUi.lc5.value())
matmap['PartDist_lc6'] = str(self.formUi.lc6.value())
matmap['PartDist_ltc1'] = str(self.formUi.ltc1.value())
matmap['PartDist_ltc2'] = str(self.formUi.ltc2.value())
matmap['PartDist_ltc3'] = str(self.formUi.ltc3.value())
matmap['PartDist_ltc4'] = str(self.formUi.ltc4.value())
matmap['PartDist_ltc5'] = str(self.formUi.ltc5.value())
matmap['PartDist_ltc6'] = str(self.formUi.ltc6.value())
self.obj.Material = matmap
def transferFrom(self):
"Transfer from the object to the dialog"
matmap = self.obj.Material
self.formUi.spinBox_young_modulus.setValue(float(matmap['FEM_youngsmodulus']))
self.formUi.spinBox_poisson_ratio.setValue(float(matmap['PartDist_poissonratio']))
self.formUi.spinBox_Plate_Thickness.setValue(float(matmap['PartDist_platethickness']))
self.formUi.lc1.setValue(float(matmap['PartDist_lc1']))
self.formUi.lc2.setValue(float(matmap['PartDist_lc2']))
self.formUi.lc3.setValue(float(matmap['PartDist_lc3']))
self.formUi.lc4.setValue(float(matmap['PartDist_lc4']))
self.formUi.lc5.setValue(float(matmap['PartDist_lc5']))
self.formUi.lc6.setValue(float(matmap['PartDist_lc6']))
self.formUi.ltc1.setValue(float(matmap['PartDist_ltc1']))
self.formUi.ltc2.setValue(float(matmap['PartDist_ltc2']))
self.formUi.ltc3.setValue(float(matmap['PartDist_ltc3']))
self.formUi.ltc4.setValue(float(matmap['PartDist_ltc4']))
self.formUi.ltc5.setValue(float(matmap['PartDist_ltc5']))
self.formUi.ltc6.setValue(float(matmap['PartDist_ltc6']))
def isAllowedAlterSelection(self):
return False
def isAllowedAlterView(self):
return True
def getStandardButtons(self):
return int(QtGui.QDialogButtonBox.Ok) | int(QtGui.QDialogButtonBox.Cancel)
def update(self):
'fills the widgets'
self.transferFrom()
self.fillMaterialCombo()
return
def accept(self):
self.transferTo()
FreeCADGui.ActiveDocument.resetEdit()
def reject(self):
FreeCADGui.ActiveDocument.resetEdit()
def saveMat(self):
self.transferTo()
filename = QtGui.QFileDialog.getSaveFileName(None, 'Save Material file file',self.params.GetString("MaterialDir",'/'),'FreeCAD material file (*.FCMat)')
if(filename):
import Material
Material.exportFCMat(filename,self.obj.Material)
def chooseDir(self):
dirname = QtGui.QFileDialog.getExistingDirectory(None, 'Choose material directory',self.params.GetString("MaterialDir",'/'))
if(dirname):
self.params.SetString("MaterialDir",str(dirname))
self.fillMaterialCombo()
def chooseMat(self,index):
if index == 0:return
import Material
name = self.pathList[index-1]
#print 'Import ', str(name)
self.obj.Material = Material.importFCMat(str(name))
#print self.obj.Material
self.transferFrom()
def fillMaterialCombo(self):
import glob,os
dirname = self.params.GetString("MaterialDir",'/')
self.pathList = glob.glob(dirname + '/*.FCMat')
self.formUi.comboBox_MaterialsInDir.clear()
self.formUi.comboBox_MaterialsInDir.addItem('-> choose Material')
for i in self.pathList:
self.formUi.comboBox_MaterialsInDir.addItem(os.path.basename(i) )
def add_L_data(self):
l_filename = QtGui.QFileDialog.getOpenFileName(None, 'Open file','','R-Script File for L Coefficients (*.txt)')
values = self.parse_R_output(l_filename)
self.formUi.lc1.setValue(values[0])
self.formUi.lc2.setValue(values[1])
self.formUi.lc3.setValue(values[2])
self.formUi.lc4.setValue(values[3])
self.formUi.lc5.setValue(values[4])
self.formUi.lc6.setValue(values[5])
def add_LT_data(self):
lt_filename = QtGui.QFileDialog.getOpenFileName(None, 'Open file','','R-Script File for LT Coefficients (*.txt)')
values = self.parse_R_output(lt_filename)
self.formUi.ltc1.setValue(values[0])
self.formUi.ltc2.setValue(values[1])
self.formUi.ltc3.setValue(values[2])
self.formUi.ltc4.setValue(values[3])
self.formUi.ltc5.setValue(values[4])
self.formUi.ltc6.setValue(values[5])
def parse_R_output(self,filename):
file = open(str(filename))
lines = file.readlines()
found = False
coeff = []
for line in lines:
if line[0:9] == "c0 to c5:":
found = True
coeff.append(float(line[15:]))
continue
if found and line[0:4] == "MSE:":
found = False
if found:
coeff.append(float(line[15:]))
file.close()
return coeff[0],coeff[1],coeff[2],coeff[3],coeff[4],coeff[5]
FreeCADGui.addCommand('MachDist_Material',_CommandMaterial())

View File

@@ -1,96 +0,0 @@
#***************************************************************************
#* *
#* Copyright (c) 2013 - Juergen Riegel <FreeCAD@juergen-riegel.net> *
#* *
#* 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, Fem
if FreeCAD.GuiUp:
import FreeCADGui
from FreeCAD import Vector
from PyQt4 import QtCore, QtGui
from pivy import coin
__title__="Machine-Distortion Mesh managment"
__author__ = "Juergen Riegel"
__url__ = "http://free-cad.sourceforge.net"
class _CommandMesh:
"the MachDist Mesh command definition"
def GetResources(self):
return {'Pixmap' : 'MachDist_AddFemMesh',
'MenuText': QtCore.QT_TRANSLATE_NOOP("MachDist_Mesh","Add Part"),
'Accel': "M",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("MachDist_Mesh","Add a Part to the Analysis.")}
def Activated(self):
FreeCAD.ActiveDocument.openTransaction("Add part")
FreeCADGui.addModule("FemGui")
sel = FreeCADGui.Selection.getSelection()
if (len(sel) == 1):
if(sel[0].isDerivedFrom("Fem::FemMeshObject")):
FreeCADGui.doCommand("App.activeDocument().ActiveObject.Member = App.activeDocument().ActiveObject.Member + [App.activeDocument()."+sel[0].Name+"]")
if(sel[0].isDerivedFrom("Part::Feature")):
FreeCADGui.doCommand("App.activeDocument().addObject('Fem::FemMeshShapeNetgenObject','"+sel[0].Name +"_Mesh')")
FreeCADGui.doCommand("App.activeDocument().ActiveObject.Shape = App.activeDocument()."+sel[0].Name)
FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [App.activeDocument().ActiveObject]")
FreeCADGui.doCommand("Gui.activeDocument().hide('"+sel[0].Name+"')")
FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name)")
else:
import os
filename = QtGui.QFileDialog.getOpenFileName(QtGui.qApp.activeWindow(),'Open part file..',os.getcwd(),'Mesh or Part files (*.bdf *.unv *.med *.dat *.stp *.igs);;All files(*)')
QtGui.qApp.setOverrideCursor(QtCore.Qt.WaitCursor)
if filename.right(3) in (u'bdf',u'med',u'dat',u'unv'):
FreeCADGui.addModule("Fem")
FreeCADGui.doCommand("Fem.insert('" + str(filename) +"','"+FreeCAD.ActiveDocument.Name+ "')")
FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [App.activeDocument().ActiveObject]")
FreeCADGui.doCommand("Gui.SendMsgToActiveView('ViewFit')")
if filename.right(3) in (u'stp',u'igs'):
FreeCADGui.addModule("Part")
FreeCADGui.doCommand("Part.insert('" + str(filename) +"','"+FreeCAD.ActiveDocument.Name+ "')")
FreeCADGui.doCommand("Gui.SendMsgToActiveView('ViewFit')")
name = FreeCAD.activeDocument().ActiveObject.Name
FreeCADGui.doCommand("App.activeDocument().addObject('Fem::FemMeshShapeNetgenObject','"+name +"_Mesh')")
FreeCADGui.doCommand("App.activeDocument().ActiveObject.Shape = App.activeDocument()."+name)
FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [App.activeDocument().ActiveObject]")
FreeCADGui.doCommand("Gui.activeDocument().hide('"+name+"')")
FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name)")
QtGui.qApp.restoreOverrideCursor()
FreeCAD.ActiveDocument.commitTransaction()
def IsActive(self):
import FemGui
# check if a active analysis is present and no Mesh in it
if FemGui.getActiveAnalysis() != None:
for i in FemGui.getActiveAnalysis().Member:
if i.isDerivedFrom("Fem::FemMeshObject"):
return False
return True
else:
return False
FreeCADGui.addCommand('MachDist_Mesh',_CommandMesh())

View File

@@ -1,63 +0,0 @@
#***************************************************************************
#* *
#* Copyright (c) 2013 - Juergen Riegel <FreeCAD@juergen-riegel.net> *
#* *
#* 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, Fem
__title__="Machine-Distortion Move tools"
__author__ = "Juergen Riegel"
__url__ = "http://free-cad.sourceforge.net"
def moveHome(obj):
b = obj.FemMesh.BoundBox
m = FreeCAD.Vector(-(b.XMin),-(b.YMin),-(b.ZMin))
p = obj.Placement
p2 = FreeCAD.Placement(p.Base + m,p.Rotation)
obj.Placement = p2
return
def getBoundBoxVolume(obj):
b = obj.FemMesh.BoundBox
return b.XLength * b.YLength * b.ZLength
def minimizeBoundVolume(obj):
p = obj.Placement
VolOld = getBoundBoxVolume(obj)
OverallSteps = 0
# rotate a fraction and test if it get better
for a in (3.0,1.0,0.5,0.1,0.05,0.01,0.005,0.001):
for v in ( (0.0, 0.0, 1.0),(0.0, 1.0, 0.0),(1.0, 0.0, 0.0) ):
for dir in (-1.0,1.0):
Better = True
i = 0
while(Better):
p.Rotation = p.Rotation.multiply(FreeCAD.Rotation(FreeCAD.Vector(v[0],v[1],v[2]),a*dir))
NewVol = getBoundBoxVolume(obj)
i = i+1
if(NewVol>VolOld):
Better = False
print "Axis: (",v[0],v[1],v[2],") Angle: ",a*dir," -> End with after ",i," Steps with V=",NewVol
VolOld = NewVol
OverallSteps = OverallSteps + i
print "OverallSteps: ",OverallSteps

View File

@@ -1,105 +0,0 @@
# Machining Distortion Commands
# import FreeCAD modules
import FreeCAD, FreeCADGui, Fem, sys
from PyQt4 import QtGui,QtCore
from FreeCAD import Base
# globals
import mach_dist_gui
import postprocess_gui
import time
#---------------------------------------------------------------------------
# The command classes
#---------------------------------------------------------------------------
class MachiningDistortion_StartGUI:
def Activated(self):
# pi=Base.ProgressIndicator()
# pi.start("Hello, World!",100)
# for i in range(100):
# time.sleep(1)
# pi.next()
# pi.stop()
myapp = mach_dist_gui.MyForm(QtGui.qApp.activeWindow())
myapp.exec_()
def GetResources(self):
return {'Pixmap' : 'Std_Tool1', 'MenuText': 'Open Machining Distortion GUI', 'ToolTip': 'Start Up the main GUI'}
class MachiningDistortion_StartPostprocess:
def Activated(self):
app = postprocess_gui.MyForm(QtGui.qApp.activeWindow())
app.exec_()
def GetResources(self):
return {'Pixmap' : 'Std_Tool2', 'MenuText': 'Open Machining Distortion Postprocess GUI', 'ToolTip': 'Start Up the postprocess GUI'}
class MachiningDistortion_ChooseParameter:
"Start Main GUI"
def Activated(self):
from PyQt4 import QtGui
import PyQt4.uic as uic
form_class, base_class = uic.loadUiType(FreeCAD.getHomePath() + "Mod/MachiningDistortion/User_Interface_Mach_Dist.ui")
# instaciate the UI dialog
form = form_class()
# create the actuall dialog
dlg = QtGui.QDialog()
# set the Ui to the dialog
form.setupUi(dlg)
#run the dialog
rtn = dlg.exec_()
# get the values of the Form
#Connect Signals and Slots
QtCore.QObject.connect(form.button_select_files, QtCore.SIGNAL("clicked()"), self.select_files)
QtCore.QObject.connect(form.button_select_output, QtCore.SIGNAL("clicked()"), self.select_output)
QtCore.QObject.connect(form.button_dialog, QtCore.SIGNAL("accepted()"), self.onAbbrechen)
QtCore.QObject.connect(form.button_dialog, QtCore.SIGNAL("rejected()"), self.onAbbrechen)
QtCore.QObject.connect(form.button_start_calculation, QtCore.SIGNAL("clicked()"), self.start_calculation)
def select_files(self):
filenames=QtGui.QFileDialog.getOpenFileNames(None, 'Open file','','Nastran Files (*.bdf)')
def select_output(self):
self.dirname=QtGui.QFileDialog.getExistingDirectory(None, 'Open working directory', '', QtGui.QFileDialog.ShowDirsOnly)
self.button_start_calculation.setEnabled(True)
def onAbbrechen(self):
form.close()
def start_calculation(self):
##Get values from the GUI
young_modulus = form.spinBox_young_modulus.value()
poisson_ratio = form.spinBox_poisson_ratio.value()
z_level_from = form.spinBox_z_level_from.value()
z_level_to = form.spinBox_z_level_to.value()
misalignment_x = form.spinBox_misalignment_x.value()
misalignment_y = form.spinBox_misalignment_y.value()
misalignment_z = form.spinBox_misalignment_z.value()
fly_to_buy = form.check_fly_to_buy.isChecked()
FreeCAD.Console.PrintMessage("Start with:"+ `misalignment_x` + "\n" )
def GetResources(self):
return {'Pixmap' : 'Std_Tool3', 'MenuText': 'parameters...', 'ToolTip': 'Choose the parameters'}
#---------------------------------------------------------------------------
# Adds the commands to the FreeCAD command manager
#---------------------------------------------------------------------------
FreeCADGui.addCommand('MachiningDistortion_StartGUI',MachiningDistortion_StartGUI())
FreeCADGui.addCommand('MachiningDistortion_StartPostprocess',MachiningDistortion_StartPostprocess())
FreeCADGui.addCommand('MachiningDistortion_ChooseParameter',MachiningDistortion_ChooseParameter())

View File

@@ -1,585 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Material_Parameter</class>
<widget class="QWidget" name="Material_Parameter">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>159</width>
<height>562</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QComboBox" name="comboBox_MaterialsInDir">
<item>
<property name="text">
<string>- manual -</string>
</property>
</item>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pushButton_SaveMat">
<property name="text">
<string>Save Material ...</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="toolButton_chooseDir">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0" colspan="2">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QDoubleSpinBox" name="spinBox_young_modulus">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="maximum">
<double>999999.989999999990687</double>
</property>
<property name="value">
<double>70000.000000000000000</double>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Young Modulus</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QDoubleSpinBox" name="spinBox_poisson_ratio">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>0.300000000000000</double>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Poisson Ratio</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QDoubleSpinBox" name="spinBox_Plate_Thickness">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="maximum">
<double>500.000000000000000</double>
</property>
<property name="value">
<double>40.000000000000000</double>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Plate Thickness</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="select_L_file">
<property name="text">
<string>Select L File ...</string>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout_2">
<item row="0" column="0">
<widget class="QDoubleSpinBox" name="lc1">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_9">
<property name="text">
<string>LC1</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QDoubleSpinBox" name="lc2">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_12">
<property name="text">
<string>LC2</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QDoubleSpinBox" name="lc3">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="label_11">
<property name="text">
<string>LC3</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QDoubleSpinBox" name="lc4">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="label_10">
<property name="text">
<string>LC4</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QDoubleSpinBox" name="lc5">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_19">
<property name="text">
<string>LC5</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QDoubleSpinBox" name="lc6">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="label_20">
<property name="text">
<string>LC6</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="select_LT_file">
<property name="text">
<string>Select LT File ...</string>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout_3">
<item row="0" column="0">
<widget class="QDoubleSpinBox" name="ltc1">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_16">
<property name="text">
<string>LTC1</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QDoubleSpinBox" name="ltc2">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_13">
<property name="text">
<string>LTC2</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QDoubleSpinBox" name="ltc3">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="label_14">
<property name="text">
<string>LTC3</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QDoubleSpinBox" name="ltc4">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="label_15">
<property name="text">
<string>LTC4</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QDoubleSpinBox" name="ltc5">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_17">
<property name="text">
<string>LTC5</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QDoubleSpinBox" name="ltc6">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="decimals">
<number>7</number>
</property>
<property name="minimum">
<double>-99.999999000000003</double>
</property>
<property name="maximum">
<double>99.999999000000003</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="label_18">
<property name="text">
<string>LTC6</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -1,72 +0,0 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'Parameter.ui'
#
# Created: Fri Dec 17 12:28:02 2010
# by: PyQt4 UI code generator 4.7.2
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
class Ui_DialogParameter(object):
def setupUi(self, DialogParameter):
DialogParameter.setObjectName("DialogParameter")
DialogParameter.setWindowModality(QtCore.Qt.ApplicationModal)
DialogParameter.resize(178, 136)
self.verticalLayout = QtGui.QVBoxLayout(DialogParameter)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.label = QtGui.QLabel(DialogParameter)
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
self.ValueStart = QtGui.QDoubleSpinBox(DialogParameter)
self.ValueStart.setMinimum(-99.0)
self.ValueStart.setMaximum(0.0)
self.ValueStart.setProperty("value", -5.0)
self.ValueStart.setObjectName("ValueStart")
self.horizontalLayout.addWidget(self.ValueStart)
self.verticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout_2 = QtGui.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.label_2 = QtGui.QLabel(DialogParameter)
self.label_2.setObjectName("label_2")
self.horizontalLayout_2.addWidget(self.label_2)
self.ValueEnd = QtGui.QDoubleSpinBox(DialogParameter)
self.ValueEnd.setProperty("value", 5.0)
self.ValueEnd.setObjectName("ValueEnd")
self.horizontalLayout_2.addWidget(self.ValueEnd)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.line = QtGui.QFrame(DialogParameter)
self.line.setFrameShape(QtGui.QFrame.HLine)
self.line.setFrameShadow(QtGui.QFrame.Sunken)
self.line.setObjectName("line")
self.verticalLayout.addWidget(self.line)
self.horizontalLayout_3 = QtGui.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.label_3 = QtGui.QLabel(DialogParameter)
self.label_3.setObjectName("label_3")
self.horizontalLayout_3.addWidget(self.label_3)
self.ValueSize = QtGui.QDoubleSpinBox(DialogParameter)
self.ValueSize.setProperty("value", 1.0)
self.ValueSize.setObjectName("ValueSize")
self.horizontalLayout_3.addWidget(self.ValueSize)
self.verticalLayout.addLayout(self.horizontalLayout_3)
self.buttonBox = QtGui.QDialogButtonBox(DialogParameter)
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
self.buttonBox.setObjectName("buttonBox")
self.verticalLayout.addWidget(self.buttonBox)
self.retranslateUi(DialogParameter)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), DialogParameter.accept)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), DialogParameter.reject)
QtCore.QMetaObject.connectSlotsByName(DialogParameter)
def retranslateUi(self, DialogParameter):
DialogParameter.setWindowTitle(QtGui.QApplication.translate("DialogParameter", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("DialogParameter", "Start value:", None, QtGui.QApplication.UnicodeUTF8))
self.label_2.setText(QtGui.QApplication.translate("DialogParameter", "End value:", None, QtGui.QApplication.UnicodeUTF8))
self.label_3.setText(QtGui.QApplication.translate("DialogParameter", "Step size:", None, QtGui.QApplication.UnicodeUTF8))

View File

@@ -1,134 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DialogParameter</class>
<widget class="QDialog" name="DialogParameter">
<property name="windowModality">
<enum>Qt::ApplicationModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>178</width>
<height>136</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Start value:</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="ValueStart">
<property name="minimum">
<double>-99.000000000000000</double>
</property>
<property name="maximum">
<double>0.000000000000000</double>
</property>
<property name="value">
<double>-5.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>End value:</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="ValueEnd">
<property name="value">
<double>5.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Step size:</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="ValueSize">
<property name="value">
<double>1.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>DialogParameter</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>DialogParameter</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -1,406 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2816"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="Arch_Roof.svg">
<defs
id="defs2818">
<linearGradient
id="linearGradient3681">
<stop
id="stop3697"
offset="0"
style="stop-color:#fff110;stop-opacity:1;" />
<stop
style="stop-color:#cf7008;stop-opacity:1;"
offset="1"
id="stop3685" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2824" />
<inkscape:perspective
id="perspective3622"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3622-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3653"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3675"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3697"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3720"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3764"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3785"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3835"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672-5"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3746"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.67643728,-0.81829155,2.4578314,1.8844554,-26.450606,18.294947)"
id="pattern5231"
xlink:href="#Strips1_1-4"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5224-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,39.618381,8.9692804)"
id="pattern5231-4"
xlink:href="#Strips1_1-6"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-6"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-0"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.66513382,-1.0631299,2.4167603,2.4482973,-49.762569,2.9546807)"
id="pattern5296"
xlink:href="#pattern5231-3"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5288"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,-26.336284,10.887197)"
id="pattern5231-3"
xlink:href="#Strips1_1-4-3"
inkscape:collect="always" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4-3"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4-6"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.42844886,-0.62155849,1.5567667,1.431396,27.948414,13.306456)"
id="pattern5330"
xlink:href="#Strips1_1-9"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5323"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-9"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-3"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5361"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5383"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5411"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3687"
x1="37.89756"
y1="41.087898"
x2="4.0605712"
y2="40.168594"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3695"
x1="31.777767"
y1="40.24213"
x2="68.442062"
y2="54.041203"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.24227019,-0.62451792,0.66563096,0.22730625,5.6049058,42.273138)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.8890872"
inkscape:cx="-9.4525225"
inkscape:cy="14.197821"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:window-width="1280"
inkscape:window-height="758"
inkscape:window-x="0"
inkscape:window-y="19"
inkscape:window-maximized="0" />
<metadata
id="metadata2821">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3695);fill-opacity:1;stroke:#3e2806;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 29.767856,9.989093 50.450594,9.9835238 50.198132,53.0683 29.729643,53.165756 z"
id="path2896"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:8,4;stroke-dashoffset:0"
d="M 29.729643,53.165756 C 29.746484,34.137259 13.627876,9.488494 13.627876,9.488494 c 0,0 14.854331,0.5009452 16.13998,0.500599 9.513178,-0.00256 20.430276,43.079207 20.430276,43.079207 z"
id="path3863"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccscc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,243 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2860"
sodipodi:version="0.32"
inkscape:version="0.48.4 r9939"
sodipodi:docname="MachDist_FemMesh.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2862">
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3377"
id="radialGradient3692"
cx="45.883327"
cy="28.869568"
fx="45.883327"
fy="28.869568"
r="19.467436"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3377"
id="radialGradient3703"
gradientUnits="userSpaceOnUse"
cx="135.38333"
cy="97.369568"
fx="135.38333"
fy="97.369568"
r="19.467436"
gradientTransform="matrix(0.97435,0.2250379,-0.4623105,2.0016728,48.487554,-127.99883)" />
<linearGradient
id="linearGradient3377">
<stop
id="stop3379"
offset="0"
style="stop-color:#faff2b;stop-opacity:1;" />
<stop
id="stop3381"
offset="1"
style="stop-color:#ffaa00;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3377"
id="radialGradient3705"
gradientUnits="userSpaceOnUse"
cx="148.88333"
cy="81.869568"
fx="148.88333"
fy="81.869568"
r="19.467436"
gradientTransform="matrix(1.3852588,-5.1367833e-2,3.7056289e-2,0.9993132,-60.392403,7.7040438)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2868" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="7.0909091"
inkscape:cy="29.272727"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="750"
inkscape:window-x="1307"
inkscape:window-y="89"
inkscape:window-maximized="0" />
<metadata
id="metadata2865">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g3618"
transform="translate(-129.7515,-68.681262)">
<path
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.07586193;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 164.25407,125.89934 L 185.75844,120.53301 L 191.3165,115.1667 L 181.45756,113.73568 L 164.25407,125.89934 z"
id="path3546" />
<path
style="opacity:1;fill:url(#radialGradient3705);fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 152.88222,77.612314 L 133.06781,84.791524 L 163.56337,88.940395 L 163.98885,124.71349 L 180.09861,114.12316 L 180.67448,79.738312 L 152.88222,77.612314 z"
id="rect3522"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:1;fill:url(#radialGradient3703);fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 133.33785,84.998317 L 164.04669,88.363932 L 164.04669,124.84112 L 132.92286,119.77634 L 133.33785,84.998317 z"
id="rect3520"
sodipodi:nodetypes="ccccc" />
<path
style="opacity:1;fill:url(#radialGradient3692);fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 163.81279,88.408895 L 180.53877,80.000095"
id="path3536" />
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 10.545455,17.272727 L 9.6363636,52"
id="path2390" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 18.545455,18 C 18.545455,18.060606 18.545455,18.121212 18.545455,18 z"
id="path2392" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 16,53.454545 C 16.060606,53.454545 16.121212,53.454545 16,53.454545 z"
id="path2394" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 19.090909,53.818182 L 20,18.909091"
id="path2398"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 28.545455,19.272727 L 27.454545,55.454545"
id="path2400" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 10.727273,17.090909 C 10.969697,17.090909 10.969697,17.090909 10.727273,17.090909 z"
id="path2402" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 28.545455,8.7272727 C 28.545455,8.7878788 28.545455,8.8484848 28.545455,8.7272727 z"
id="path2404" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 27.636364,9.0909091 C 27.575758,9.0909091 27.515152,9.0909091 27.636364,9.0909091 z"
id="path2406" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 29.090909,9.6363637 C 28.839485,9.9151131 11.048018,15.903965 10.727273,16.545455"
id="path2408"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 37,10.181818 C 36.748576,10.460567 20.048018,17.722146 20.636364,18.181818"
id="path2410"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 45.28032,10.909091 C 45.028896,11.18784 28.328338,18.449419 28.916684,18.909091"
id="path2412"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 52.007593,18.727273 C 51.756169,19.006022 35.055611,26.267601 35.643957,26.727273"
id="path2414"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 52.007593,26.727273 C 51.756169,27.006022 35.055611,34.267601 35.643957,34.727273"
id="path2416"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 51.28032,34.727273 C 51.028896,35.006022 34.328338,42.267601 34.916684,42.727273"
id="path2418"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 50.734866,41.636364 C 50.483442,41.915113 33.782884,49.176692 34.37123,49.636364"
id="path2420"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 3.8181818,23.636364 C 4.0606061,23.636364 4.0606061,23.636364 3.8181818,23.636364 z"
id="path2422" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 3.6363636,23.636364 L 34.545455,26.909091"
id="path2424" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 34,34.909091 L 3.8181818,31.454545"
id="path2426" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 34.181818,43.454545 L 2.9090909,40.181818"
id="path2432" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 34,49.818182 L 3.4545455,46.545455"
id="path2434" />
<text
xml:space="preserve"
style="font-size:54.56216431000000000px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="26.24147"
y="37.811981"
id="text3027"
sodipodi:linespacing="125%"
transform="scale(1.0433167,0.95848173)"><tspan
sodipodi:role="line"
id="tspan3029"
x="26.24147"
y="37.811981">+</tspan></text>
<text
transform="scale(1.0433167,0.95848173)"
sodipodi:linespacing="125%"
id="text3023"
y="36.86351"
x="27.635628"
style="font-size:54.56216431px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="36.86351"
x="27.635628"
id="tspan3025"
sodipodi:role="line">+</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,523 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2816"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="MachDist_AddPart.svg">
<defs
id="defs2818">
<linearGradient
inkscape:collect="always"
id="linearGradient4044">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4046" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop4048" />
</linearGradient>
<linearGradient
id="linearGradient3681">
<stop
id="stop3697"
offset="0"
style="stop-color:#fff110;stop-opacity:1;" />
<stop
style="stop-color:#cf7008;stop-opacity:1;"
offset="1"
id="stop3685" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2824" />
<inkscape:perspective
id="perspective3622"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3622-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3653"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3675"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3697"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3720"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3764"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3785"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3835"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672-5"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3746"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.67643728,-0.81829155,2.4578314,1.8844554,-26.450606,18.294947)"
id="pattern5231"
xlink:href="#Strips1_1-4"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5224-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,39.618381,8.9692804)"
id="pattern5231-4"
xlink:href="#Strips1_1-6"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-6"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-0"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.66513382,-1.0631299,2.4167603,2.4482973,-49.762569,2.9546807)"
id="pattern5296"
xlink:href="#pattern5231-3"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5288"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,-26.336284,10.887197)"
id="pattern5231-3"
xlink:href="#Strips1_1-4-3"
inkscape:collect="always" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4-3"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4-6"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.42844886,-0.62155849,1.5567667,1.431396,27.948414,13.306456)"
id="pattern5330"
xlink:href="#Strips1_1-9"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5323"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-9"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-3"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5361"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5383"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5411"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3687"
x1="37.89756"
y1="41.087898"
x2="4.0605712"
y2="40.168594"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3695"
x1="31.777767"
y1="40.24213"
x2="68.442062"
y2="54.041203"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.25023482,-0.66040068,0.68751357,0.24036653,-8.7488565,43.149938)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient12512"
id="radialGradient278"
gradientUnits="userSpaceOnUse"
cx="55"
cy="125"
fx="55"
fy="125"
r="14.375" />
<linearGradient
id="linearGradient12512">
<stop
style="stop-color:#ffffff;stop-opacity:1.0000000;"
offset="0.0000000"
id="stop12513" />
<stop
style="stop-color:#fff520;stop-opacity:0.89108908;"
offset="0.50000000"
id="stop12517" />
<stop
style="stop-color:#fff300;stop-opacity:0.0000000;"
offset="1.0000000"
id="stop12514" />
</linearGradient>
<radialGradient
r="14.375"
fy="125"
fx="55"
cy="125"
cx="55"
gradientUnits="userSpaceOnUse"
id="radialGradient4017"
xlink:href="#linearGradient12512"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4044"
id="linearGradient4060"
x1="15.78776"
y1="50.394047"
x2="27.641447"
y2="39.95837"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient12512-2"
id="radialGradient278-5"
gradientUnits="userSpaceOnUse"
cx="55"
cy="125"
fx="55"
fy="125"
r="14.375" />
<linearGradient
id="linearGradient12512-2">
<stop
style="stop-color:#ffffff;stop-opacity:1.0000000;"
offset="0.0000000"
id="stop12513-3" />
<stop
style="stop-color:#fff520;stop-opacity:0.89108908;"
offset="0.50000000"
id="stop12517-1" />
<stop
style="stop-color:#fff300;stop-opacity:0.0000000;"
offset="1.0000000"
id="stop12514-6" />
</linearGradient>
<radialGradient
r="14.375"
fy="125"
fx="55"
cy="125"
cx="55"
gradientUnits="userSpaceOnUse"
id="radialGradient4078"
xlink:href="#linearGradient12512-2"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.8890872"
inkscape:cx="-9.4525225"
inkscape:cy="14.197821"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:window-width="1280"
inkscape:window-height="758"
inkscape:window-x="0"
inkscape:window-y="19"
inkscape:window-maximized="0" />
<metadata
id="metadata2821">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="40.817909"
y="28.001837"
id="text4038"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4040"
x="40.817909"
y="28.001837">+</tspan></text>
<path
sodipodi:type="arc"
style="fill:#c1a315;fill-opacity:1;stroke:url(#linearGradient4060);stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="path4042"
sodipodi:cx="27.641447"
sodipodi:cy="39.95837"
sodipodi:rx="20.956074"
sodipodi:ry="20.956074"
d="m 48.597521,39.95837 a 20.956074,20.956074 0 1 1 -41.9121477,0 20.956074,20.956074 0 1 1 41.9121477,0 z" />
<path
sodipodi:type="arc"
style="color:#000000;fill:url(#radialGradient4078);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;marker:none;visibility:visible;display:block"
id="path12511"
sodipodi:cx="55"
sodipodi:cy="125"
sodipodi:rx="14.375"
sodipodi:ry="14.375"
d="m 69.375,125 a 14.375,14.375 0 1 1 -28.75,0 14.375,14.375 0 1 1 28.75,0 z"
transform="matrix(0.783292,0,0,0.783292,-24.355425,-63.638656)"
inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png"
inkscape:export-xdpi="33.852203"
inkscape:export-ydpi="33.852203" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 11.208324,52.963932 c 1.005383,1.177057 23.761321,-3.620327 23.761321,-3.620327 l 13.627876,-9.385235 0,0"
id="path4099"
inkscape:connector-curvature="0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -1,446 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2816"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="MachDist_Align.svg">
<defs
id="defs2818">
<linearGradient
id="linearGradient3681">
<stop
id="stop3697"
offset="0"
style="stop-color:#fff110;stop-opacity:1;" />
<stop
style="stop-color:#cf7008;stop-opacity:1;"
offset="1"
id="stop3685" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2824" />
<inkscape:perspective
id="perspective3622"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3622-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3653"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3675"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3697"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3720"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3764"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3785"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3835"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672-5"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3746"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.67643728,-0.81829155,2.4578314,1.8844554,-26.450606,18.294947)"
id="pattern5231"
xlink:href="#Strips1_1-4"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5224-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,39.618381,8.9692804)"
id="pattern5231-4"
xlink:href="#Strips1_1-6"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-6"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-0"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.66513382,-1.0631299,2.4167603,2.4482973,-49.762569,2.9546807)"
id="pattern5296"
xlink:href="#pattern5231-3"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5288"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,-26.336284,10.887197)"
id="pattern5231-3"
xlink:href="#Strips1_1-4-3"
inkscape:collect="always" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4-3"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4-6"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.42844886,-0.62155849,1.5567667,1.431396,27.948414,13.306456)"
id="pattern5330"
xlink:href="#Strips1_1-9"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5323"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-9"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-3"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5361"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5383"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5411"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3687"
x1="37.89756"
y1="41.087898"
x2="4.0605712"
y2="40.168594"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3695"
x1="31.777767"
y1="40.24213"
x2="68.442062"
y2="54.041203"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.25023482,-0.66040068,0.68751357,0.24036653,-8.7488565,43.149938)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient12512"
id="radialGradient278"
gradientUnits="userSpaceOnUse"
cx="55"
cy="125"
fx="55"
fy="125"
r="14.375" />
<linearGradient
id="linearGradient12512">
<stop
style="stop-color:#ffffff;stop-opacity:1.0000000;"
offset="0.0000000"
id="stop12513" />
<stop
style="stop-color:#fff520;stop-opacity:0.89108908;"
offset="0.50000000"
id="stop12517" />
<stop
style="stop-color:#fff300;stop-opacity:0.0000000;"
offset="1.0000000"
id="stop12514" />
</linearGradient>
<radialGradient
r="14.375"
fy="125"
fx="55"
cy="125"
cx="55"
gradientUnits="userSpaceOnUse"
id="radialGradient4017"
xlink:href="#linearGradient12512"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.8890872"
inkscape:cx="-9.4525225"
inkscape:cy="14.197821"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:window-width="1280"
inkscape:window-height="758"
inkscape:window-x="0"
inkscape:window-y="19"
inkscape:window-maximized="0" />
<metadata
id="metadata2821">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3695);fill-opacity:1;stroke:#3e2806;stroke-width:2.09018707;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 16.208451,9.010958 37.571135,9.005068 37.310372,54.565355 16.168982,54.66841 z"
id="path2896"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="40.817909"
y="28.001837"
id="text4038"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4040"
x="40.817909"
y="28.001837">+</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,406 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2816"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="MachDist.svg">
<defs
id="defs2818">
<linearGradient
id="linearGradient3681">
<stop
id="stop3697"
offset="0"
style="stop-color:#fff110;stop-opacity:1;" />
<stop
style="stop-color:#cf7008;stop-opacity:1;"
offset="1"
id="stop3685" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2824" />
<inkscape:perspective
id="perspective3622"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3622-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3653"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3675"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3697"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3720"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3764"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3785"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3835"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672-5"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3746"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.67643728,-0.81829155,2.4578314,1.8844554,-26.450606,18.294947)"
id="pattern5231"
xlink:href="#Strips1_1-4"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5224-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,39.618381,8.9692804)"
id="pattern5231-4"
xlink:href="#Strips1_1-6"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-6"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-0"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.66513382,-1.0631299,2.4167603,2.4482973,-49.762569,2.9546807)"
id="pattern5296"
xlink:href="#pattern5231-3"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5288"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,-26.336284,10.887197)"
id="pattern5231-3"
xlink:href="#Strips1_1-4-3"
inkscape:collect="always" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4-3"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4-6"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.42844886,-0.62155849,1.5567667,1.431396,27.948414,13.306456)"
id="pattern5330"
xlink:href="#Strips1_1-9"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5323"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-9"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-3"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5361"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5383"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5411"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3687"
x1="37.89756"
y1="41.087898"
x2="4.0605712"
y2="40.168594"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3695"
x1="31.777767"
y1="40.24213"
x2="68.442062"
y2="54.041203"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.24326871,-0.56997241,0.66837436,0.20745328,-0.94334799,38.386707)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.8890872"
inkscape:cx="-9.4525225"
inkscape:cy="14.197821"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:window-width="1280"
inkscape:window-height="758"
inkscape:window-x="0"
inkscape:window-y="19"
inkscape:window-maximized="0" />
<metadata
id="metadata2821">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3695);fill-opacity:1;stroke:#3e2806;stroke-width:1.91459799;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 23.31919,8.9223569 44.087173,8.9172741 43.83367,48.239018 23.28082,48.327962 z"
id="path2896"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 50.894953,51.660143 0,0 5.6574,6.258529 -45.99366,-0.274825 -0.513897,-51.1176504 6.154378,8.1048924 0,0"
id="path3865"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,219 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2860"
sodipodi:version="0.32"
inkscape:version="0.48.4 r9939"
sodipodi:docname="MachDist_FemMesh.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2862">
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3377"
id="radialGradient3692"
cx="45.883327"
cy="28.869568"
fx="45.883327"
fy="28.869568"
r="19.467436"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3377"
id="radialGradient3703"
gradientUnits="userSpaceOnUse"
cx="135.38333"
cy="97.369568"
fx="135.38333"
fy="97.369568"
r="19.467436"
gradientTransform="matrix(0.97435,0.2250379,-0.4623105,2.0016728,48.487554,-127.99883)" />
<linearGradient
id="linearGradient3377">
<stop
id="stop3379"
offset="0"
style="stop-color:#faff2b;stop-opacity:1;" />
<stop
id="stop3381"
offset="1"
style="stop-color:#ffaa00;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3377"
id="radialGradient3705"
gradientUnits="userSpaceOnUse"
cx="148.88333"
cy="81.869568"
fx="148.88333"
fy="81.869568"
r="19.467436"
gradientTransform="matrix(1.3852588,-5.1367833e-2,3.7056289e-2,0.9993132,-60.392403,7.7040438)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2868" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="7.0909091"
inkscape:cy="29.272727"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="750"
inkscape:window-x="1307"
inkscape:window-y="89"
inkscape:window-maximized="0" />
<metadata
id="metadata2865">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g3618"
transform="translate(-129.7515,-68.681262)">
<path
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.07586193;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 164.25407,125.89934 L 185.75844,120.53301 L 191.3165,115.1667 L 181.45756,113.73568 L 164.25407,125.89934 z"
id="path3546" />
<path
style="opacity:1;fill:url(#radialGradient3705);fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 152.88222,77.612314 L 133.06781,84.791524 L 163.56337,88.940395 L 163.98885,124.71349 L 180.09861,114.12316 L 180.67448,79.738312 L 152.88222,77.612314 z"
id="rect3522"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:1;fill:url(#radialGradient3703);fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 133.33785,84.998317 L 164.04669,88.363932 L 164.04669,124.84112 L 132.92286,119.77634 L 133.33785,84.998317 z"
id="rect3520"
sodipodi:nodetypes="ccccc" />
<path
style="opacity:1;fill:url(#radialGradient3692);fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 163.81279,88.408895 L 180.53877,80.000095"
id="path3536" />
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 10.545455,17.272727 L 9.6363636,52"
id="path2390" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 18.545455,18 C 18.545455,18.060606 18.545455,18.121212 18.545455,18 z"
id="path2392" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 16,53.454545 C 16.060606,53.454545 16.121212,53.454545 16,53.454545 z"
id="path2394" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 19.090909,53.818182 L 20,18.909091"
id="path2398"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 28.545455,19.272727 L 27.454545,55.454545"
id="path2400" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 10.727273,17.090909 C 10.969697,17.090909 10.969697,17.090909 10.727273,17.090909 z"
id="path2402" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 28.545455,8.7272727 C 28.545455,8.7878788 28.545455,8.8484848 28.545455,8.7272727 z"
id="path2404" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 27.636364,9.0909091 C 27.575758,9.0909091 27.515152,9.0909091 27.636364,9.0909091 z"
id="path2406" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 29.090909,9.6363637 C 28.839485,9.9151131 11.048018,15.903965 10.727273,16.545455"
id="path2408"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 37,10.181818 C 36.748576,10.460567 20.048018,17.722146 20.636364,18.181818"
id="path2410"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 45.28032,10.909091 C 45.028896,11.18784 28.328338,18.449419 28.916684,18.909091"
id="path2412"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 52.007593,18.727273 C 51.756169,19.006022 35.055611,26.267601 35.643957,26.727273"
id="path2414"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 52.007593,26.727273 C 51.756169,27.006022 35.055611,34.267601 35.643957,34.727273"
id="path2416"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 51.28032,34.727273 C 51.028896,35.006022 34.328338,42.267601 34.916684,42.727273"
id="path2418"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 50.734866,41.636364 C 50.483442,41.915113 33.782884,49.176692 34.37123,49.636364"
id="path2420"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 3.8181818,23.636364 C 4.0606061,23.636364 4.0606061,23.636364 3.8181818,23.636364 z"
id="path2422" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 3.6363636,23.636364 L 34.545455,26.909091"
id="path2424" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 34,34.909091 L 3.8181818,31.454545"
id="path2426" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 34.181818,43.454545 L 2.9090909,40.181818"
id="path2432" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 34,49.818182 L 3.4545455,46.545455"
id="path2434" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -1,250 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2860"
sodipodi:version="0.32"
inkscape:version="0.48.4 r9939"
sodipodi:docname="MachDist_FemMesh.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2862">
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3377"
id="radialGradient3692"
cx="45.883327"
cy="28.869568"
fx="45.883327"
fy="28.869568"
r="19.467436"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3377"
id="radialGradient3703"
gradientUnits="userSpaceOnUse"
cx="135.38333"
cy="97.369568"
fx="135.38333"
fy="97.369568"
r="19.467436"
gradientTransform="matrix(0.97435,0.2250379,-0.4623105,2.0016728,48.487554,-127.99883)" />
<linearGradient
id="linearGradient3377">
<stop
id="stop3379"
offset="0"
style="stop-color:#faff2b;stop-opacity:1;" />
<stop
id="stop3381"
offset="1"
style="stop-color:#ffaa00;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3377"
id="radialGradient3705"
gradientUnits="userSpaceOnUse"
cx="148.88333"
cy="81.869568"
fx="148.88333"
fy="81.869568"
r="19.467436"
gradientTransform="matrix(1.3852588,-5.1367833e-2,3.7056289e-2,0.9993132,-60.392403,7.7040438)" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2868" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="1.1818182"
inkscape:cy="29.272727"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="750"
inkscape:window-x="1167"
inkscape:window-y="114"
inkscape:window-maximized="0" />
<metadata
id="metadata2865">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g3618"
transform="translate(-129.7515,-68.681262)">
<path
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.07586193;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 164.25407,125.89934 L 185.75844,120.53301 L 191.3165,115.1667 L 181.45756,113.73568 L 164.25407,125.89934 z"
id="path3546" />
<path
style="opacity:1;fill:url(#radialGradient3705);fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 152.88222,77.612314 L 133.06781,84.791524 L 163.56337,88.940395 L 163.98885,124.71349 L 180.09861,114.12316 L 180.67448,79.738312 L 152.88222,77.612314 z"
id="rect3522"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:1;fill:url(#radialGradient3703);fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 133.33785,84.998317 L 164.04669,88.363932 L 164.04669,124.84112 L 132.92286,119.77634 L 133.33785,84.998317 z"
id="rect3520"
sodipodi:nodetypes="ccccc" />
<path
style="opacity:1;fill:url(#radialGradient3692);fill-opacity:1;fill-rule:evenodd;stroke:#7b5600;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 163.81279,88.408895 L 180.53877,80.000095"
id="path3536" />
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 10.545455,17.272727 L 9.6363636,52"
id="path2390" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 18.545455,18 C 18.545455,18.060606 18.545455,18.121212 18.545455,18 z"
id="path2392" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 16,53.454545 C 16.060606,53.454545 16.121212,53.454545 16,53.454545 z"
id="path2394" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 19.090909,53.818182 L 20,18.909091"
id="path2398"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 28.545455,19.272727 L 27.454545,55.454545"
id="path2400" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 10.727273,17.090909 C 10.969697,17.090909 10.969697,17.090909 10.727273,17.090909 z"
id="path2402" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 28.545455,8.7272727 C 28.545455,8.7878788 28.545455,8.8484848 28.545455,8.7272727 z"
id="path2404" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 27.636364,9.0909091 C 27.575758,9.0909091 27.515152,9.0909091 27.636364,9.0909091 z"
id="path2406" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 29.090909,9.6363637 C 28.839485,9.9151131 11.048018,15.903965 10.727273,16.545455"
id="path2408"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 37,10.181818 C 36.748576,10.460567 20.048018,17.722146 20.636364,18.181818"
id="path2410"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 45.28032,10.909091 C 45.028896,11.18784 28.328338,18.449419 28.916684,18.909091"
id="path2412"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 52.007593,18.727273 C 51.756169,19.006022 35.055611,26.267601 35.643957,26.727273"
id="path2414"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 52.007593,26.727273 C 51.756169,27.006022 35.055611,34.267601 35.643957,34.727273"
id="path2416"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 51.28032,34.727273 C 51.028896,35.006022 34.328338,42.267601 34.916684,42.727273"
id="path2418"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 50.734866,41.636364 C 50.483442,41.915113 33.782884,49.176692 34.37123,49.636364"
id="path2420"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 3.8181818,23.636364 C 4.0606061,23.636364 4.0606061,23.636364 3.8181818,23.636364 z"
id="path2422" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 3.6363636,23.636364 L 34.545455,26.909091"
id="path2424" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 34,34.909091 L 3.8181818,31.454545"
id="path2426" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 34.181818,43.454545 L 2.9090909,40.181818"
id="path2432" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 34,49.818182 L 3.4545455,46.545455"
id="path2434" />
<path
sodipodi:type="arc"
style="fill:#ff0900;fill-opacity:1;fill-rule:nonzero;stroke:#ff0900;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path3033"
sodipodi:cx="32.885815"
sodipodi:cy="39.529411"
sodipodi:rx="4.0143385"
sodipodi:ry="2.435986"
d="m 36.900153,39.529411 a 4.0143385,2.435986 0 1 1 -8.028677,0 4.0143385,2.435986 0 1 1 8.028677,0 z"
transform="matrix(0.71015233,0.23558117,-0.25090762,0.69465003,37.92793,10.339069)" />
<path
sodipodi:type="arc"
style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:#00ff00;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path3033-1"
sodipodi:cx="32.885815"
sodipodi:cy="39.529411"
sodipodi:rx="4.0143385"
sodipodi:ry="2.435986"
d="m 36.900153,39.529411 a 4.0143385,2.435986 0 1 1 -8.028677,0 4.0143385,2.435986 0 1 1 8.028677,0 z"
transform="matrix(0.71015233,0.23558117,-0.25090762,0.69465003,20.564293,20.066342)" />
<path
sodipodi:type="arc"
style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:#006bfe;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path3033-1-7"
sodipodi:cx="32.885815"
sodipodi:cy="39.529411"
sodipodi:rx="4.0143385"
sodipodi:ry="2.435986"
d="m 36.900153,39.529411 a 4.0143385,2.435986 0 1 1 -8.028677,0 4.0143385,2.435986 0 1 1 8.028677,0 z"
transform="matrix(0.71015233,0.23558117,-0.25090762,0.69465003,-8.1629809,16.793615)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,513 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2816"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="MachDist_AddMaterial.svg">
<defs
id="defs2818">
<linearGradient
inkscape:collect="always"
id="linearGradient4044">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop4046" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop4048" />
</linearGradient>
<linearGradient
id="linearGradient3681">
<stop
id="stop3697"
offset="0"
style="stop-color:#fff110;stop-opacity:1;" />
<stop
style="stop-color:#cf7008;stop-opacity:1;"
offset="1"
id="stop3685" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2824" />
<inkscape:perspective
id="perspective3622"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3622-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3653"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3675"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3697"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3720"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3764"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3785"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3835"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672-5"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3746"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.67643728,-0.81829155,2.4578314,1.8844554,-26.450606,18.294947)"
id="pattern5231"
xlink:href="#Strips1_1-4"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5224-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,39.618381,8.9692804)"
id="pattern5231-4"
xlink:href="#Strips1_1-6"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-6"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-0"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.66513382,-1.0631299,2.4167603,2.4482973,-49.762569,2.9546807)"
id="pattern5296"
xlink:href="#pattern5231-3"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5288"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,-26.336284,10.887197)"
id="pattern5231-3"
xlink:href="#Strips1_1-4-3"
inkscape:collect="always" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4-3"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4-6"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.42844886,-0.62155849,1.5567667,1.431396,27.948414,13.306456)"
id="pattern5330"
xlink:href="#Strips1_1-9"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5323"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-9"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-3"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5361"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5383"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5411"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3687"
x1="37.89756"
y1="41.087898"
x2="4.0605712"
y2="40.168594"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3695"
x1="31.777767"
y1="40.24213"
x2="68.442062"
y2="54.041203"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.25023482,-0.66040068,0.68751357,0.24036653,-8.7488565,43.149938)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient12512"
id="radialGradient278"
gradientUnits="userSpaceOnUse"
cx="55"
cy="125"
fx="55"
fy="125"
r="14.375" />
<linearGradient
id="linearGradient12512">
<stop
style="stop-color:#ffffff;stop-opacity:1.0000000;"
offset="0.0000000"
id="stop12513" />
<stop
style="stop-color:#fff520;stop-opacity:0.89108908;"
offset="0.50000000"
id="stop12517" />
<stop
style="stop-color:#fff300;stop-opacity:0.0000000;"
offset="1.0000000"
id="stop12514" />
</linearGradient>
<radialGradient
r="14.375"
fy="125"
fx="55"
cy="125"
cx="55"
gradientUnits="userSpaceOnUse"
id="radialGradient4017"
xlink:href="#linearGradient12512"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4044"
id="linearGradient4060"
x1="15.78776"
y1="50.394047"
x2="27.641447"
y2="39.95837"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient12512-2"
id="radialGradient278-5"
gradientUnits="userSpaceOnUse"
cx="55"
cy="125"
fx="55"
fy="125"
r="14.375" />
<linearGradient
id="linearGradient12512-2">
<stop
style="stop-color:#ffffff;stop-opacity:1.0000000;"
offset="0.0000000"
id="stop12513-3" />
<stop
style="stop-color:#fff520;stop-opacity:0.89108908;"
offset="0.50000000"
id="stop12517-1" />
<stop
style="stop-color:#fff300;stop-opacity:0.0000000;"
offset="1.0000000"
id="stop12514-6" />
</linearGradient>
<radialGradient
r="14.375"
fy="125"
fx="55"
cy="125"
cx="55"
gradientUnits="userSpaceOnUse"
id="radialGradient4078"
xlink:href="#linearGradient12512-2"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.8890872"
inkscape:cx="-9.4525225"
inkscape:cy="14.197821"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:window-width="1280"
inkscape:window-height="758"
inkscape:window-x="0"
inkscape:window-y="19"
inkscape:window-maximized="0" />
<metadata
id="metadata2821">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
sodipodi:type="arc"
style="fill:#c1a315;fill-opacity:1;stroke:url(#linearGradient4060);stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="path4042"
sodipodi:cx="27.641447"
sodipodi:cy="39.95837"
sodipodi:rx="20.956074"
sodipodi:ry="20.956074"
d="m 48.597521,39.95837 a 20.956074,20.956074 0 1 1 -41.9121477,0 20.956074,20.956074 0 1 1 41.9121477,0 z"
transform="matrix(1.2751074,0,0,1.28117,-3.5618174,-19.40621)" />
<path
sodipodi:type="arc"
style="color:#000000;fill:url(#radialGradient4078);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;marker:none;visibility:visible;display:block"
id="path12511"
sodipodi:cx="55"
sodipodi:cy="125"
sodipodi:rx="14.375"
sodipodi:ry="14.375"
d="m 69.375,125 a 14.375,14.375 0 1 1 -28.75,0 14.375,14.375 0 1 1 28.75,0 z"
transform="matrix(0.99878142,0,0,1.0035302,-34.6176,-100.93815)"
inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png"
inkscape:export-xdpi="33.852203"
inkscape:export-ydpi="33.852203" />
<path
style="fill:none;stroke:#000000;stroke-width:1.27813506px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.729999,48.449592 c 1.281972,1.508011 30.298236,-4.638254 30.298236,-4.638254 l 17.377006,-12.024082 0,0"
id="path4099"
inkscape:connector-curvature="0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -1,454 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2816"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="MachDist.svg">
<defs
id="defs2818">
<linearGradient
id="linearGradient3681">
<stop
id="stop3697"
offset="0"
style="stop-color:#fff110;stop-opacity:1;" />
<stop
style="stop-color:#cf7008;stop-opacity:1;"
offset="1"
id="stop3685" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2824" />
<inkscape:perspective
id="perspective3622"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3622-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3653"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3675"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3697"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3720"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3764"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3785"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3835"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672-5"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3746"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.67643728,-0.81829155,2.4578314,1.8844554,-26.450606,18.294947)"
id="pattern5231"
xlink:href="#Strips1_1-4"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5224-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,39.618381,8.9692804)"
id="pattern5231-4"
xlink:href="#Strips1_1-6"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-6"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-0"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.66513382,-1.0631299,2.4167603,2.4482973,-49.762569,2.9546807)"
id="pattern5296"
xlink:href="#pattern5231-3"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5288"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,-26.336284,10.887197)"
id="pattern5231-3"
xlink:href="#Strips1_1-4-3"
inkscape:collect="always" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4-3"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4-6"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.42844886,-0.62155849,1.5567667,1.431396,27.948414,13.306456)"
id="pattern5330"
xlink:href="#Strips1_1-9"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5323"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-9"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-3"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5361"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5383"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5411"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3687"
x1="37.89756"
y1="41.087898"
x2="4.0605712"
y2="40.168594"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3695"
x1="31.777767"
y1="40.24213"
x2="68.442062"
y2="54.041203"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.24227019,-0.62451792,0.66563096,0.22730625,-0.3950942,44.273138)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient12512"
id="radialGradient278"
gradientUnits="userSpaceOnUse"
cx="55"
cy="125"
fx="55"
fy="125"
r="14.375" />
<linearGradient
id="linearGradient12512">
<stop
style="stop-color:#ffffff;stop-opacity:1.0000000;"
offset="0.0000000"
id="stop12513" />
<stop
style="stop-color:#fff520;stop-opacity:0.89108908;"
offset="0.50000000"
id="stop12517" />
<stop
style="stop-color:#fff300;stop-opacity:0.0000000;"
offset="1.0000000"
id="stop12514" />
</linearGradient>
<radialGradient
r="14.375"
fy="125"
fx="55"
cy="125"
cx="55"
gradientUnits="userSpaceOnUse"
id="radialGradient4227"
xlink:href="#linearGradient12512"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="8.453125"
inkscape:cx="32"
inkscape:cy="32"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:window-width="1280"
inkscape:window-height="758"
inkscape:window-x="0"
inkscape:window-y="19"
inkscape:window-maximized="0" />
<metadata
id="metadata2821">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3695);fill-opacity:1;stroke:#3e2806;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 23.767856,11.989093 20.682738,-0.0056 -0.252462,43.084776 -20.468489,0.09746 z"
id="path2896"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:8, 4;stroke-dashoffset:0"
d="M 23.729643,55.165756 C 23.746484,36.137259 7.627876,11.488494 7.627876,11.488494 c 0,0 14.854331,0.500945 16.13998,0.500599 9.513178,-0.0026 20.430276,43.079207 20.430276,43.079207 z"
id="path3863"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccscc" />
<path
sodipodi:type="arc"
style="color:#000000;fill:url(#radialGradient4227);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;marker:none;visibility:visible;display:block"
id="path12511"
sodipodi:cx="55"
sodipodi:cy="125"
sodipodi:rx="14.375"
sodipodi:ry="14.375"
d="m 69.375,125 a 14.375,14.375 0 1 1 -28.75,0 14.375,14.375 0 1 1 28.75,0 z"
transform="matrix(1.1459283,0,0,1.0794812,-22.78836,-119.69393)"
inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png"
inkscape:export-xdpi="33.852203"
inkscape:export-ydpi="33.852203" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.4 KiB

View File

@@ -1,515 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2816"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="MachDist_Upload.svg">
<defs
id="defs2818">
<linearGradient
id="linearGradient3681">
<stop
id="stop3697"
offset="0"
style="stop-color:#fff110;stop-opacity:1;" />
<stop
style="stop-color:#cf7008;stop-opacity:1;"
offset="1"
id="stop3685" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2824" />
<inkscape:perspective
id="perspective3622"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3622-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3653"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3675"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3697"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3720"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3764"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3785"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3835"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672-5"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3746"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.67643728,-0.81829155,2.4578314,1.8844554,-26.450606,18.294947)"
id="pattern5231"
xlink:href="#Strips1_1-4"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5224-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,39.618381,8.9692804)"
id="pattern5231-4"
xlink:href="#Strips1_1-6"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-6"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-0"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.66513382,-1.0631299,2.4167603,2.4482973,-49.762569,2.9546807)"
id="pattern5296"
xlink:href="#pattern5231-3"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5288"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,-26.336284,10.887197)"
id="pattern5231-3"
xlink:href="#Strips1_1-4-3"
inkscape:collect="always" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4-3"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4-6"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.42844886,-0.62155849,1.5567667,1.431396,27.948414,13.306456)"
id="pattern5330"
xlink:href="#Strips1_1-9"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5323"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-9"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-3"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5361"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5383"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5411"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3687"
x1="37.89756"
y1="41.087898"
x2="4.0605712"
y2="40.168594"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3695"
x1="31.777767"
y1="40.24213"
x2="68.442062"
y2="54.041203"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.19230652,-0.6275745,0.5283571,0.22841875,1.152607,44.32671)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient12512"
id="radialGradient278"
gradientUnits="userSpaceOnUse"
cx="55"
cy="125"
fx="55"
fy="125"
r="14.375" />
<linearGradient
id="linearGradient12512">
<stop
style="stop-color:#ffffff;stop-opacity:1.0000000;"
offset="0.0000000"
id="stop12513" />
<stop
style="stop-color:#fff520;stop-opacity:0.89108908;"
offset="0.50000000"
id="stop12517" />
<stop
style="stop-color:#fff300;stop-opacity:0.0000000;"
offset="1.0000000"
id="stop12514" />
</linearGradient>
<radialGradient
r="14.375"
fy="125"
fx="55"
cy="125"
cx="55"
gradientUnits="userSpaceOnUse"
id="radialGradient4227"
xlink:href="#linearGradient12512"
inkscape:collect="always" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8650"
id="radialGradient3013"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.01137521,-2.0466974,1.557586,0.00865681,21.42195,65.887482)"
cx="19.701141"
cy="2.8969381"
fx="19.701141"
fy="2.8969381"
r="17.171415" />
<linearGradient
id="linearGradient8650"
inkscape:collect="always">
<stop
id="stop8652"
offset="0"
style="stop-color:#ffffff;stop-opacity:1;" />
<stop
id="stop8654"
offset="1"
style="stop-color:#ffffff;stop-opacity:0;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient2591"
id="radialGradient3016"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.00468531,-0.84300898,1.0201522,0.00566984,0.48255086,43.074241)"
cx="22.291636"
cy="32.797512"
fx="22.291636"
fy="32.797512"
r="16.9562" />
<linearGradient
id="linearGradient2591">
<stop
style="stop-color:#73d216"
offset="0"
id="stop2593" />
<stop
style="stop-color:#4e9a06"
offset="1.0000000"
id="stop2595" />
</linearGradient>
<radialGradient
r="16.9562"
fy="32.797512"
fx="22.291636"
cy="32.797512"
cx="22.291636"
gradientTransform="matrix(0.00468531,-0.84300898,1.0201522,0.00566984,19.48537,41.85906)"
gradientUnits="userSpaceOnUse"
id="radialGradient3040"
xlink:href="#linearGradient2591"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="8.453125"
inkscape:cx="13.190388"
inkscape:cy="32"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:window-width="1920"
inkscape:window-height="1137"
inkscape:window-x="1042"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata2821">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3695);fill-opacity:1;stroke:#3e2806;stroke-width:1.78622925;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 20.332403,11.884658 16.417313,-0.0056 -0.200397,43.295647 -16.247248,0.09794 z"
id="path2896"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1.78622925;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:7.1449172, 3.5724586;stroke-dashoffset:0"
d="M 20.302071,55.272641 C 20.315439,36.151013 7.5209907,11.381609 7.5209907,11.381609 c 0,0 11.7909043,0.503396 12.8114123,0.503049 7.551265,-0.0026 16.216916,43.29005 16.216916,43.29005 z"
id="path3863"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccscc" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
id="path8643"
d="m 33.643044,37.882794 16.994157,0.09445 0.07216,-12.983612 8.544906,0.04749 L 42.45902,4.987636 25.322442,24.971348 l 8.397406,0.04667 -0.0768,12.864774 z"
style="color:#000000;fill:url(#radialGradient3040);fill-opacity:1;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc"
id="path8645"
d="m 26.448831,24.434405 7.806354,0.04339 -0.07123,12.816972 9.040574,0.05025 C 45.323143,19.606399 35.861796,20.670295 42.443672,5.956648 L 26.448831,24.434405 z"
style="opacity:0.5080214;color:#000000;fill:url(#radialGradient3013);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
<path
inkscape:connector-curvature="0"
style="opacity:0.48128339;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
d="m 34.693038,36.9051 14.984208,0.08328 0.07217,-12.985167 7.395052,0.0411 -14.698325,-17.559974 -14.877399,17.411559 7.201271,0.04002 -0.07698,12.969178 z"
id="path8658"
sodipodi:nodetypes="cccccccc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -1,406 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2816"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="Arch_Roof.svg">
<defs
id="defs2818">
<linearGradient
id="linearGradient3681">
<stop
id="stop3697"
offset="0"
style="stop-color:#fff110;stop-opacity:1;" />
<stop
style="stop-color:#cf7008;stop-opacity:1;"
offset="1"
id="stop3685" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2824" />
<inkscape:perspective
id="perspective3622"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3622-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3653"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3675"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3697"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3720"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3764"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3785"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3806-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3835"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3614-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3643-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3672-5"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3701-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3746"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.67643728,-0.81829155,2.4578314,1.8844554,-26.450606,18.294947)"
id="pattern5231"
xlink:href="#Strips1_1-4"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5224-9"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,39.618381,8.9692804)"
id="pattern5231-4"
xlink:href="#Strips1_1-6"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5224-3"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-6"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-0"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.66513382,-1.0631299,2.4167603,2.4482973,-49.762569,2.9546807)"
id="pattern5296"
xlink:href="#pattern5231-3"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5288"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,-26.336284,10.887197)"
id="pattern5231-3"
xlink:href="#Strips1_1-4-3"
inkscape:collect="always" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-4-3"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-4-6"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<pattern
patternTransform="matrix(0.42844886,-0.62155849,1.5567667,1.431396,27.948414,13.306456)"
id="pattern5330"
xlink:href="#Strips1_1-9"
inkscape:collect="always" />
<inkscape:perspective
id="perspective5323"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<pattern
inkscape:stockid="Stripes 1:1"
id="Strips1_1-9"
patternTransform="matrix(0.66772843,-1.0037085,2.4261878,2.3114548,3.4760987,3.534923)"
height="1"
width="2"
patternUnits="userSpaceOnUse"
inkscape:collect="always">
<rect
id="rect4483-3"
height="2"
width="1"
y="-0.5"
x="0"
style="fill:black;stroke:none" />
</pattern>
<inkscape:perspective
id="perspective5361"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5383"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5411"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3687"
x1="37.89756"
y1="41.087898"
x2="4.0605712"
y2="40.168594"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3681"
id="linearGradient3695"
x1="31.777767"
y1="40.24213"
x2="68.442062"
y2="54.041203"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.24227019,-0.62451792,0.66563096,0.22730625,5.6049058,42.273138)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.8890872"
inkscape:cx="-9.4525225"
inkscape:cy="14.197821"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:window-width="1280"
inkscape:window-height="758"
inkscape:window-x="0"
inkscape:window-y="19"
inkscape:window-maximized="0" />
<metadata
id="metadata2821">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="fill:url(#linearGradient3695);fill-opacity:1;stroke:#3e2806;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 29.767856,9.989093 50.450594,9.9835238 50.198132,53.0683 29.729643,53.165756 z"
id="path2896"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:8,4;stroke-dashoffset:0"
d="M 29.729643,53.165756 C 29.746484,34.137259 13.627876,9.488494 13.627876,9.488494 c 0,0 14.854331,0.5009452 16.13998,0.500599 9.513178,-0.00256 20.430276,43.079207 20.430276,43.079207 z"
id="path3863"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccscc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,17 +0,0 @@
<RCC>
<qresource>
<file>ui/MachDist-userprefs.ui</file>
<file>icons/MachDist.svg</file>
<file>icons/MachDist_AddMaterial.svg</file>
<file>icons/MachDist_AddPart.svg</file>
<file>icons/MachDist_Align.svg</file>
<file>icons/MachDist_Material.svg</file>
<file>icons/MachDist_NewAnalysis.svg</file>
<file>icons/MachDist_Preferences.svg</file>
<file>icons/MachDist_Upload.svg</file>
<file>icons/MachDist_FemMesh.svg</file>
<file>icons/MachDist_AddFemMesh.svg</file>
<file>icons/MachDist_Isostatic.svg</file>
<file>icons/preferences-part_distortion.svg</file>
</qresource>
</RCC>

View File

@@ -1,477 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Gui::Dialog::DlgSettingsPartDistortion</class>
<widget class="QWidget" name="Gui::Dialog::DlgSettingsPartDistortion">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>452</width>
<height>305</height>
</rect>
</property>
<property name="windowTitle">
<string>General settings</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>General Machining Distortion Settings</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_10">
<property name="text">
<string>Linux Home Path</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Gui::PrefLineEdit" name="gui::preflineedit_2">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>This is the default group name for construction geometry</string>
</property>
<property name="text">
<string>/home/rmjzettl/</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="prefEntry" stdset="0">
<cstring>Linux Home Path</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Machining_Distortion</cstring>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="label_12">
<property name="text">
<string>Solver Link</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Gui::PrefLineEdit" name="gui::preflineedit_5">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>This is the default group name for construction geometry</string>
</property>
<property name="text">
<string>/usr/local/bin/ccx_2_2</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="prefEntry" stdset="0">
<cstring>Solver Link</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Machining_Distortion</cstring>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_11">
<property name="text">
<string>Servername</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Gui::PrefLineEdit" name="gui::preflineedit_4">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>This is the default group name for construction geometry</string>
</property>
<property name="text">
<string>dynabox</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="prefEntry" stdset="0">
<cstring>Servername</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Machining_Distortion</cstring>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>Linux Username</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Gui::PrefLineEdit" name="gui::preflineedit">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>This is the default font name for all Draft texts and dimensions.
It can be a font name such as &quot;Arial&quot;, a default style such as &quot;sans&quot;, &quot;serif&quot;
or &quot;mono&quot;, or a family such as &quot;Arial,Helvetica,sans&quot; or a name with a style
such as &quot;Arial:Bold&quot;</string>
</property>
<property name="text">
<string>rmjzettl</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="prefEntry" stdset="0">
<cstring>Linux User Name</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Machining_Distortion</cstring>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_9">
<property name="text">
<string>Linux Password</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Gui::PrefLineEdit" name="gui::preflineedit_3">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>This is the default font name for all Draft texts and dimensions.
It can be a font name such as &quot;Arial&quot;, a default style such as &quot;sans&quot;, &quot;serif&quot;
or &quot;mono&quot;, or a family such as &quot;Arial,Helvetica,sans&quot; or a name with a style
such as &quot;Arial:Bold&quot;</string>
</property>
<property name="text">
<string>Flo926652</string>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="prefEntry" stdset="0">
<cstring>Linux Password</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Machining_Distortion</cstring>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>Material Dir</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Gui::PrefLineEdit" name="gui::preflineedit_6">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>This is the default font name for all Draft texts and dimensions.
It can be a font name such as &quot;Arial&quot;, a default style such as &quot;sans&quot;, &quot;serif&quot;
or &quot;mono&quot;, or a family such as &quot;Arial,Helvetica,sans&quot; or a name with a style
such as &quot;Arial:Bold&quot;</string>
</property>
<property name="text">
<string>/home/Material</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="prefEntry" stdset="0">
<cstring>MaterialDir</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Machining_Distortion</cstring>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QLabel" name="label_7">
<property name="text">
<string>Job Dir</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Gui::PrefLineEdit" name="gui::preflineedit_7">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>This is the default font name for all Draft texts and dimensions.
It can be a font name such as &quot;Arial&quot;, a default style such as &quot;sans&quot;, &quot;serif&quot;
or &quot;mono&quot;, or a family such as &quot;Arial,Helvetica,sans&quot; or a name with a style
such as &quot;Arial:Bold&quot;</string>
</property>
<property name="text">
<string>/</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="prefEntry" stdset="0">
<cstring>JobDir</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Machining_Distortion</cstring>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="lineWidth">
<number>5</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_13">
<item>
<widget class="QLabel" name="label_8">
<property name="text">
<string>Number of CPUs to be used for the calculation</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Gui::PrefSpinBox" name="gui::prefspinbox_3">
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>The number of decimals in internal coordinates operations (for ex. 3 = 0.001)</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>64</number>
</property>
<property name="value">
<number>1</number>
</property>
<property name="prefEntry" stdset="0">
<cstring>NumberCPUs</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Machining_Distortion</cstring>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>17</width>
<height>41</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
<customwidgets>
<customwidget>
<class>Gui::PrefLineEdit</class>
<extends>QLineEdit</extends>
<header>Gui/PrefWidgets.h</header>
</customwidget>
<customwidget>
<class>Gui::PrefSpinBox</class>
<extends>QSpinBox</extends>
<header>Gui/PrefWidgets.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@@ -1,496 +0,0 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'User_Interface_Mach_Dist.ui'
#
# Created: Fri Apr 15 11:22:01 2011
# by: PyQt4 UI code generator 4.8.3
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_dialog(object):
def setupUi(self, dialog):
dialog.setObjectName(_fromUtf8("dialog"))
dialog.resize(658, 430)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(dialog.sizePolicy().hasHeightForWidth())
dialog.setSizePolicy(sizePolicy)
dialog.setMinimumSize(QtCore.QSize(658, 430))
dialog.setMaximumSize(QtCore.QSize(658, 430))
self.gridLayout_8 = QtGui.QGridLayout(dialog)
self.gridLayout_8.setObjectName(_fromUtf8("gridLayout_8"))
self.groupBox_3 = QtGui.QGroupBox(dialog)
self.groupBox_3.setMinimumSize(QtCore.QSize(282, 161))
self.groupBox_3.setMaximumSize(QtCore.QSize(282, 161))
self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
self.gridLayout_2 = QtGui.QGridLayout(self.groupBox_3)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.gridLayout = QtGui.QGridLayout()
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.label_24 = QtGui.QLabel(self.groupBox_3)
self.label_24.setAlignment(QtCore.Qt.AlignCenter)
self.label_24.setObjectName(_fromUtf8("label_24"))
self.gridLayout.addWidget(self.label_24, 0, 0, 1, 1)
self.label_25 = QtGui.QLabel(self.groupBox_3)
self.label_25.setAlignment(QtCore.Qt.AlignCenter)
self.label_25.setObjectName(_fromUtf8("label_25"))
self.gridLayout.addWidget(self.label_25, 0, 1, 1, 1)
self.label_26 = QtGui.QLabel(self.groupBox_3)
self.label_26.setAlignment(QtCore.Qt.AlignCenter)
self.label_26.setObjectName(_fromUtf8("label_26"))
self.gridLayout.addWidget(self.label_26, 0, 2, 1, 1)
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem, 0, 3, 1, 1)
self.spinBox_misalignment_x_from = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_misalignment_x_from.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_misalignment_x_from.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_misalignment_x_from.setMinimum(-99)
self.spinBox_misalignment_x_from.setObjectName(_fromUtf8("spinBox_misalignment_x_from"))
self.gridLayout.addWidget(self.spinBox_misalignment_x_from, 1, 0, 1, 1)
self.spinBox_misalignment_x_to = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_misalignment_x_to.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_misalignment_x_to.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_misalignment_x_to.setMinimum(-99)
self.spinBox_misalignment_x_to.setObjectName(_fromUtf8("spinBox_misalignment_x_to"))
self.gridLayout.addWidget(self.spinBox_misalignment_x_to, 1, 1, 1, 1)
self.label = QtGui.QLabel(self.groupBox_3)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName(_fromUtf8("label"))
self.gridLayout.addWidget(self.label, 1, 3, 1, 1)
self.spinBox_misalignment_y_from = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_misalignment_y_from.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_misalignment_y_from.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_misalignment_y_from.setMinimum(-99)
self.spinBox_misalignment_y_from.setObjectName(_fromUtf8("spinBox_misalignment_y_from"))
self.gridLayout.addWidget(self.spinBox_misalignment_y_from, 2, 0, 1, 1)
self.spinBox_misalignment_y_to = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_misalignment_y_to.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_misalignment_y_to.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_misalignment_y_to.setMinimum(-99)
self.spinBox_misalignment_y_to.setObjectName(_fromUtf8("spinBox_misalignment_y_to"))
self.gridLayout.addWidget(self.spinBox_misalignment_y_to, 2, 1, 1, 1)
self.label_2 = QtGui.QLabel(self.groupBox_3)
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.gridLayout.addWidget(self.label_2, 2, 3, 1, 1)
self.spinBox_misalignment_z_from = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_misalignment_z_from.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_misalignment_z_from.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_misalignment_z_from.setMinimum(-99)
self.spinBox_misalignment_z_from.setObjectName(_fromUtf8("spinBox_misalignment_z_from"))
self.gridLayout.addWidget(self.spinBox_misalignment_z_from, 3, 0, 1, 1)
self.spinBox_misalignment_z_to = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_misalignment_z_to.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_misalignment_z_to.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_misalignment_z_to.setMinimum(-99)
self.spinBox_misalignment_z_to.setObjectName(_fromUtf8("spinBox_misalignment_z_to"))
self.gridLayout.addWidget(self.spinBox_misalignment_z_to, 3, 1, 1, 1)
self.label_3 = QtGui.QLabel(self.groupBox_3)
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
self.label_3.setObjectName(_fromUtf8("label_3"))
self.gridLayout.addWidget(self.label_3, 3, 3, 1, 1)
self.spinBox_z_level_from = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_z_level_from.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_z_level_from.setLayoutDirection(QtCore.Qt.LeftToRight)
self.spinBox_z_level_from.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_z_level_from.setMinimum(-99)
self.spinBox_z_level_from.setObjectName(_fromUtf8("spinBox_z_level_from"))
self.gridLayout.addWidget(self.spinBox_z_level_from, 4, 0, 1, 1)
self.spinBox_z_level_to = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_z_level_to.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_z_level_to.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_z_level_to.setMinimum(-99)
self.spinBox_z_level_to.setObjectName(_fromUtf8("spinBox_z_level_to"))
self.gridLayout.addWidget(self.spinBox_z_level_to, 4, 1, 1, 1)
self.label_27 = QtGui.QLabel(self.groupBox_3)
self.label_27.setAlignment(QtCore.Qt.AlignCenter)
self.label_27.setObjectName(_fromUtf8("label_27"))
self.gridLayout.addWidget(self.label_27, 4, 3, 1, 1)
self.spinBox_misalignment_x_intervall = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_misalignment_x_intervall.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_misalignment_x_intervall.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_misalignment_x_intervall.setMinimum(-99)
self.spinBox_misalignment_x_intervall.setProperty(_fromUtf8("value"), 1)
self.spinBox_misalignment_x_intervall.setObjectName(_fromUtf8("spinBox_misalignment_x_intervall"))
self.gridLayout.addWidget(self.spinBox_misalignment_x_intervall, 1, 2, 1, 1)
self.spinBox_misalignment_y_intervall = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_misalignment_y_intervall.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_misalignment_y_intervall.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_misalignment_y_intervall.setMinimum(-99)
self.spinBox_misalignment_y_intervall.setProperty(_fromUtf8("value"), 1)
self.spinBox_misalignment_y_intervall.setObjectName(_fromUtf8("spinBox_misalignment_y_intervall"))
self.gridLayout.addWidget(self.spinBox_misalignment_y_intervall, 2, 2, 1, 1)
self.spinBox_misalignment_z_intervall = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_misalignment_z_intervall.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_misalignment_z_intervall.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_misalignment_z_intervall.setMinimum(-99)
self.spinBox_misalignment_z_intervall.setProperty(_fromUtf8("value"), 1)
self.spinBox_misalignment_z_intervall.setObjectName(_fromUtf8("spinBox_misalignment_z_intervall"))
self.gridLayout.addWidget(self.spinBox_misalignment_z_intervall, 3, 2, 1, 1)
self.spinBox_z_level_intervall = QtGui.QSpinBox(self.groupBox_3)
self.spinBox_z_level_intervall.setMinimumSize(QtCore.QSize(60, 0))
self.spinBox_z_level_intervall.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_z_level_intervall.setMinimum(-99)
self.spinBox_z_level_intervall.setProperty(_fromUtf8("value"), 1)
self.spinBox_z_level_intervall.setObjectName(_fromUtf8("spinBox_z_level_intervall"))
self.gridLayout.addWidget(self.spinBox_z_level_intervall, 4, 2, 1, 1)
self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
self.gridLayout_8.addWidget(self.groupBox_3, 0, 0, 1, 1)
self.groupBox = QtGui.QGroupBox(dialog)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth())
self.groupBox.setSizePolicy(sizePolicy)
self.groupBox.setMinimumSize(QtCore.QSize(352, 259))
self.groupBox.setMaximumSize(QtCore.QSize(352, 259))
self.groupBox.setObjectName(_fromUtf8("groupBox"))
self.gridLayout_7 = QtGui.QGridLayout(self.groupBox)
self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7"))
self.gridLayout_6 = QtGui.QGridLayout()
self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6"))
self.gridLayout_5 = QtGui.QGridLayout()
self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5"))
spacerItem1 = QtGui.QSpacerItem(13, 17, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.gridLayout_5.addItem(spacerItem1, 0, 0, 1, 1)
self.spinBox_young_modulus = QtGui.QDoubleSpinBox(self.groupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.spinBox_young_modulus.sizePolicy().hasHeightForWidth())
self.spinBox_young_modulus.setSizePolicy(sizePolicy)
self.spinBox_young_modulus.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_young_modulus.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_young_modulus.setMaximum(999999.99)
self.spinBox_young_modulus.setProperty(_fromUtf8("value"), 70000.0)
self.spinBox_young_modulus.setObjectName(_fromUtf8("spinBox_young_modulus"))
self.gridLayout_5.addWidget(self.spinBox_young_modulus, 0, 1, 1, 1)
self.label_6 = QtGui.QLabel(self.groupBox)
self.label_6.setObjectName(_fromUtf8("label_6"))
self.gridLayout_5.addWidget(self.label_6, 0, 2, 1, 1)
spacerItem2 = QtGui.QSpacerItem(13, 13, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.gridLayout_5.addItem(spacerItem2, 1, 0, 1, 1)
self.spinBox_poisson_ratio = QtGui.QDoubleSpinBox(self.groupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.spinBox_poisson_ratio.sizePolicy().hasHeightForWidth())
self.spinBox_poisson_ratio.setSizePolicy(sizePolicy)
self.spinBox_poisson_ratio.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_poisson_ratio.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_poisson_ratio.setSingleStep(0.1)
self.spinBox_poisson_ratio.setProperty(_fromUtf8("value"), 0.3)
self.spinBox_poisson_ratio.setObjectName(_fromUtf8("spinBox_poisson_ratio"))
self.gridLayout_5.addWidget(self.spinBox_poisson_ratio, 1, 1, 1, 1)
self.label_7 = QtGui.QLabel(self.groupBox)
self.label_7.setObjectName(_fromUtf8("label_7"))
self.gridLayout_5.addWidget(self.label_7, 1, 2, 1, 1)
spacerItem3 = QtGui.QSpacerItem(13, 17, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.gridLayout_5.addItem(spacerItem3, 2, 0, 1, 1)
self.spinBox_Plate_Thickness = QtGui.QDoubleSpinBox(self.groupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.spinBox_Plate_Thickness.sizePolicy().hasHeightForWidth())
self.spinBox_Plate_Thickness.setSizePolicy(sizePolicy)
self.spinBox_Plate_Thickness.setMinimumSize(QtCore.QSize(60, 20))
self.spinBox_Plate_Thickness.setLayoutDirection(QtCore.Qt.LeftToRight)
self.spinBox_Plate_Thickness.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_Plate_Thickness.setMaximum(500.0)
self.spinBox_Plate_Thickness.setProperty(_fromUtf8("value"), 40.0)
self.spinBox_Plate_Thickness.setObjectName(_fromUtf8("spinBox_Plate_Thickness"))
self.gridLayout_5.addWidget(self.spinBox_Plate_Thickness, 2, 1, 1, 1)
self.label_8 = QtGui.QLabel(self.groupBox)
self.label_8.setObjectName(_fromUtf8("label_8"))
self.gridLayout_5.addWidget(self.label_8, 2, 2, 1, 1)
self.gridLayout_6.addLayout(self.gridLayout_5, 0, 0, 1, 1)
self.gridLayout_4 = QtGui.QGridLayout()
self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
self.gridLayout_3 = QtGui.QGridLayout()
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
self.select_L_file = QtGui.QPushButton(self.groupBox)
self.select_L_file.setObjectName(_fromUtf8("select_L_file"))
self.gridLayout_3.addWidget(self.select_L_file, 0, 0, 1, 1)
spacerItem4 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.gridLayout_3.addItem(spacerItem4, 0, 1, 1, 2)
self.select_LT_file = QtGui.QPushButton(self.groupBox)
self.select_LT_file.setObjectName(_fromUtf8("select_LT_file"))
self.gridLayout_3.addWidget(self.select_LT_file, 0, 3, 1, 1)
spacerItem5 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.gridLayout_3.addItem(spacerItem5, 0, 4, 1, 2)
self.lc1 = QtGui.QDoubleSpinBox(self.groupBox)
self.lc1.setMinimumSize(QtCore.QSize(80, 0))
self.lc1.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lc1.setDecimals(7)
self.lc1.setMinimum(-99.999999)
self.lc1.setMaximum(99.999999)
self.lc1.setSingleStep(0.1)
self.lc1.setObjectName(_fromUtf8("lc1"))
self.gridLayout_3.addWidget(self.lc1, 1, 0, 1, 2)
self.label_9 = QtGui.QLabel(self.groupBox)
self.label_9.setObjectName(_fromUtf8("label_9"))
self.gridLayout_3.addWidget(self.label_9, 1, 2, 1, 1)
self.ltc1 = QtGui.QDoubleSpinBox(self.groupBox)
self.ltc1.setMinimumSize(QtCore.QSize(80, 0))
self.ltc1.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.ltc1.setDecimals(7)
self.ltc1.setMinimum(-99.999999)
self.ltc1.setMaximum(99.999999)
self.ltc1.setSingleStep(0.1)
self.ltc1.setObjectName(_fromUtf8("ltc1"))
self.gridLayout_3.addWidget(self.ltc1, 1, 3, 1, 2)
self.label_16 = QtGui.QLabel(self.groupBox)
self.label_16.setObjectName(_fromUtf8("label_16"))
self.gridLayout_3.addWidget(self.label_16, 1, 5, 1, 1)
self.lc2 = QtGui.QDoubleSpinBox(self.groupBox)
self.lc2.setMinimumSize(QtCore.QSize(80, 0))
self.lc2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lc2.setDecimals(7)
self.lc2.setMinimum(-99.999999)
self.lc2.setMaximum(99.999999)
self.lc2.setSingleStep(0.1)
self.lc2.setObjectName(_fromUtf8("lc2"))
self.gridLayout_3.addWidget(self.lc2, 2, 0, 1, 2)
self.label_12 = QtGui.QLabel(self.groupBox)
self.label_12.setObjectName(_fromUtf8("label_12"))
self.gridLayout_3.addWidget(self.label_12, 2, 2, 1, 1)
self.ltc2 = QtGui.QDoubleSpinBox(self.groupBox)
self.ltc2.setMinimumSize(QtCore.QSize(80, 0))
self.ltc2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.ltc2.setDecimals(7)
self.ltc2.setMinimum(-99.999999)
self.ltc2.setMaximum(99.999999)
self.ltc2.setSingleStep(0.1)
self.ltc2.setObjectName(_fromUtf8("ltc2"))
self.gridLayout_3.addWidget(self.ltc2, 2, 3, 1, 2)
self.label_13 = QtGui.QLabel(self.groupBox)
self.label_13.setObjectName(_fromUtf8("label_13"))
self.gridLayout_3.addWidget(self.label_13, 2, 5, 1, 1)
self.lc3 = QtGui.QDoubleSpinBox(self.groupBox)
self.lc3.setMinimumSize(QtCore.QSize(80, 0))
self.lc3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lc3.setDecimals(7)
self.lc3.setMinimum(-99.999999)
self.lc3.setMaximum(99.999999)
self.lc3.setSingleStep(0.1)
self.lc3.setObjectName(_fromUtf8("lc3"))
self.gridLayout_3.addWidget(self.lc3, 3, 0, 1, 2)
self.label_11 = QtGui.QLabel(self.groupBox)
self.label_11.setObjectName(_fromUtf8("label_11"))
self.gridLayout_3.addWidget(self.label_11, 3, 2, 1, 1)
self.ltc3 = QtGui.QDoubleSpinBox(self.groupBox)
self.ltc3.setMinimumSize(QtCore.QSize(80, 0))
self.ltc3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.ltc3.setDecimals(7)
self.ltc3.setMinimum(-99.999999)
self.ltc3.setMaximum(99.999999)
self.ltc3.setSingleStep(0.1)
self.ltc3.setObjectName(_fromUtf8("ltc3"))
self.gridLayout_3.addWidget(self.ltc3, 3, 3, 1, 2)
self.label_14 = QtGui.QLabel(self.groupBox)
self.label_14.setObjectName(_fromUtf8("label_14"))
self.gridLayout_3.addWidget(self.label_14, 3, 5, 1, 1)
self.lc4 = QtGui.QDoubleSpinBox(self.groupBox)
self.lc4.setMinimumSize(QtCore.QSize(80, 0))
self.lc4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lc4.setDecimals(7)
self.lc4.setMinimum(-99.999999)
self.lc4.setMaximum(99.999999)
self.lc4.setSingleStep(0.1)
self.lc4.setObjectName(_fromUtf8("lc4"))
self.gridLayout_3.addWidget(self.lc4, 4, 0, 1, 2)
self.label_10 = QtGui.QLabel(self.groupBox)
self.label_10.setObjectName(_fromUtf8("label_10"))
self.gridLayout_3.addWidget(self.label_10, 4, 2, 1, 1)
self.ltc4 = QtGui.QDoubleSpinBox(self.groupBox)
self.ltc4.setMinimumSize(QtCore.QSize(80, 0))
self.ltc4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.ltc4.setDecimals(7)
self.ltc4.setMinimum(-99.999999)
self.ltc4.setMaximum(99.999999)
self.ltc4.setSingleStep(0.1)
self.ltc4.setObjectName(_fromUtf8("ltc4"))
self.gridLayout_3.addWidget(self.ltc4, 4, 3, 1, 2)
self.lc5 = QtGui.QDoubleSpinBox(self.groupBox)
self.lc5.setMinimumSize(QtCore.QSize(80, 0))
self.lc5.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lc5.setDecimals(7)
self.lc5.setMinimum(-99.999999)
self.lc5.setMaximum(99.999999)
self.lc5.setSingleStep(0.1)
self.lc5.setObjectName(_fromUtf8("lc5"))
self.gridLayout_3.addWidget(self.lc5, 5, 0, 1, 2)
self.label_19 = QtGui.QLabel(self.groupBox)
self.label_19.setObjectName(_fromUtf8("label_19"))
self.gridLayout_3.addWidget(self.label_19, 5, 2, 1, 1)
self.ltc5 = QtGui.QDoubleSpinBox(self.groupBox)
self.ltc5.setMinimumSize(QtCore.QSize(80, 0))
self.ltc5.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.ltc5.setDecimals(7)
self.ltc5.setMinimum(-99.999999)
self.ltc5.setMaximum(99.999999)
self.ltc5.setSingleStep(0.1)
self.ltc5.setObjectName(_fromUtf8("ltc5"))
self.gridLayout_3.addWidget(self.ltc5, 5, 3, 1, 2)
self.label_17 = QtGui.QLabel(self.groupBox)
self.label_17.setObjectName(_fromUtf8("label_17"))
self.gridLayout_3.addWidget(self.label_17, 5, 5, 1, 1)
self.lc6 = QtGui.QDoubleSpinBox(self.groupBox)
self.lc6.setMinimumSize(QtCore.QSize(80, 0))
self.lc6.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lc6.setDecimals(7)
self.lc6.setMinimum(-99.999999)
self.lc6.setMaximum(99.999999)
self.lc6.setSingleStep(0.1)
self.lc6.setObjectName(_fromUtf8("lc6"))
self.gridLayout_3.addWidget(self.lc6, 6, 0, 1, 2)
self.label_20 = QtGui.QLabel(self.groupBox)
self.label_20.setObjectName(_fromUtf8("label_20"))
self.gridLayout_3.addWidget(self.label_20, 6, 2, 1, 1)
self.ltc6 = QtGui.QDoubleSpinBox(self.groupBox)
self.ltc6.setMinimumSize(QtCore.QSize(80, 0))
self.ltc6.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.ltc6.setDecimals(7)
self.ltc6.setMinimum(-99.999999)
self.ltc6.setMaximum(99.999999)
self.ltc6.setSingleStep(0.1)
self.ltc6.setObjectName(_fromUtf8("ltc6"))
self.gridLayout_3.addWidget(self.ltc6, 6, 3, 1, 2)
self.label_18 = QtGui.QLabel(self.groupBox)
self.label_18.setObjectName(_fromUtf8("label_18"))
self.gridLayout_3.addWidget(self.label_18, 6, 5, 1, 1)
self.label_15 = QtGui.QLabel(self.groupBox)
self.label_15.setObjectName(_fromUtf8("label_15"))
self.gridLayout_3.addWidget(self.label_15, 4, 5, 1, 1)
self.gridLayout_4.addLayout(self.gridLayout_3, 0, 0, 1, 1)
self.label_21 = QtGui.QLabel(self.groupBox)
self.label_21.setMinimumSize(QtCore.QSize(0, 152))
self.label_21.setWordWrap(True)
self.label_21.setObjectName(_fromUtf8("label_21"))
self.gridLayout_4.addWidget(self.label_21, 0, 1, 1, 1)
self.gridLayout_6.addLayout(self.gridLayout_4, 1, 0, 1, 1)
self.gridLayout_7.addLayout(self.gridLayout_6, 0, 0, 1, 1)
self.gridLayout_8.addWidget(self.groupBox, 0, 1, 2, 1)
self.verticalLayout = QtGui.QVBoxLayout()
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
spacerItem6 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem6)
self.button_select_output = QtGui.QPushButton(dialog)
self.button_select_output.setObjectName(_fromUtf8("button_select_output"))
self.verticalLayout.addWidget(self.button_select_output)
spacerItem7 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem7)
self.line_2 = QtGui.QFrame(dialog)
self.line_2.setFrameShape(QtGui.QFrame.HLine)
self.line_2.setFrameShadow(QtGui.QFrame.Sunken)
self.line_2.setObjectName(_fromUtf8("line_2"))
self.verticalLayout.addWidget(self.line_2)
spacerItem8 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem8)
self.button_select_file = QtGui.QPushButton(dialog)
self.button_select_file.setObjectName(_fromUtf8("button_select_file"))
self.verticalLayout.addWidget(self.button_select_file)
spacerItem9 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem9)
self.gridLayout_8.addLayout(self.verticalLayout, 1, 0, 1, 1)
self.JobTable = QtGui.QTableWidget(dialog)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.JobTable.sizePolicy().hasHeightForWidth())
self.JobTable.setSizePolicy(sizePolicy)
self.JobTable.setMinimumSize(QtCore.QSize(640, 120))
self.JobTable.setMaximumSize(QtCore.QSize(640, 16777215))
self.JobTable.setRowCount(0)
self.JobTable.setColumnCount(29)
self.JobTable.setObjectName(_fromUtf8("JobTable"))
self.JobTable.setColumnCount(29)
self.JobTable.setRowCount(0)
self.gridLayout_8.addWidget(self.JobTable, 2, 0, 1, 2)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.button_add_to_table = QtGui.QPushButton(dialog)
self.button_add_to_table.setEnabled(False)
self.button_add_to_table.setObjectName(_fromUtf8("button_add_to_table"))
self.horizontalLayout.addWidget(self.button_add_to_table)
spacerItem10 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem10)
self.button_start_calculation = QtGui.QPushButton(dialog)
self.button_start_calculation.setEnabled(False)
self.button_start_calculation.setObjectName(_fromUtf8("button_start_calculation"))
self.horizontalLayout.addWidget(self.button_start_calculation)
spacerItem11 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem11)
self.button_dialog = QtGui.QDialogButtonBox(dialog)
self.button_dialog.setOrientation(QtCore.Qt.Horizontal)
self.button_dialog.setStandardButtons(QtGui.QDialogButtonBox.Close|QtGui.QDialogButtonBox.Ok)
self.button_dialog.setObjectName(_fromUtf8("button_dialog"))
self.horizontalLayout.addWidget(self.button_dialog)
self.gridLayout_8.addLayout(self.horizontalLayout, 3, 0, 1, 2)
self.retranslateUi(dialog)
QtCore.QMetaObject.connectSlotsByName(dialog)
dialog.setTabOrder(self.button_select_file, self.spinBox_misalignment_x_from)
dialog.setTabOrder(self.spinBox_misalignment_x_from, self.spinBox_misalignment_y_from)
dialog.setTabOrder(self.spinBox_misalignment_y_from, self.spinBox_misalignment_z_from)
dialog.setTabOrder(self.spinBox_misalignment_z_from, self.spinBox_young_modulus)
dialog.setTabOrder(self.spinBox_young_modulus, self.spinBox_poisson_ratio)
dialog.setTabOrder(self.spinBox_poisson_ratio, self.spinBox_Plate_Thickness)
dialog.setTabOrder(self.spinBox_Plate_Thickness, self.lc1)
dialog.setTabOrder(self.lc1, self.lc2)
dialog.setTabOrder(self.lc2, self.lc3)
dialog.setTabOrder(self.lc3, self.lc4)
dialog.setTabOrder(self.lc4, self.lc5)
dialog.setTabOrder(self.lc5, self.lc6)
dialog.setTabOrder(self.lc6, self.ltc1)
dialog.setTabOrder(self.ltc1, self.ltc2)
dialog.setTabOrder(self.ltc2, self.ltc3)
dialog.setTabOrder(self.ltc3, self.ltc4)
dialog.setTabOrder(self.ltc4, self.ltc5)
dialog.setTabOrder(self.ltc5, self.ltc6)
dialog.setTabOrder(self.ltc6, self.button_add_to_table)
dialog.setTabOrder(self.button_add_to_table, self.button_start_calculation)
dialog.setTabOrder(self.button_start_calculation, self.JobTable)
def retranslateUi(self, dialog):
dialog.setWindowTitle(QtGui.QApplication.translate("dialog", "Machining Distortion Prediction", None, QtGui.QApplication.UnicodeUTF8))
self.groupBox_3.setTitle(QtGui.QApplication.translate("dialog", "Set User Defined Misalignment", None, QtGui.QApplication.UnicodeUTF8))
self.label_24.setText(QtGui.QApplication.translate("dialog", "From", None, QtGui.QApplication.UnicodeUTF8))
self.label_25.setText(QtGui.QApplication.translate("dialog", "To", None, QtGui.QApplication.UnicodeUTF8))
self.label_26.setText(QtGui.QApplication.translate("dialog", "Intervall", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("dialog", "Angle X-Axis", None, QtGui.QApplication.UnicodeUTF8))
self.label_2.setText(QtGui.QApplication.translate("dialog", "Angle Y-Axis", None, QtGui.QApplication.UnicodeUTF8))
self.label_3.setText(QtGui.QApplication.translate("dialog", "Angle Z-Axis", None, QtGui.QApplication.UnicodeUTF8))
self.label_27.setText(QtGui.QApplication.translate("dialog", "Z-Level", None, QtGui.QApplication.UnicodeUTF8))
self.groupBox.setTitle(QtGui.QApplication.translate("dialog", "Material Properties", None, QtGui.QApplication.UnicodeUTF8))
self.label_6.setText(QtGui.QApplication.translate("dialog", "Young Modulus", None, QtGui.QApplication.UnicodeUTF8))
self.label_7.setText(QtGui.QApplication.translate("dialog", "Poisson Ratio", None, QtGui.QApplication.UnicodeUTF8))
self.label_8.setText(QtGui.QApplication.translate("dialog", "Plate Thickness", None, QtGui.QApplication.UnicodeUTF8))
self.select_L_file.setText(QtGui.QApplication.translate("dialog", "Select L File", None, QtGui.QApplication.UnicodeUTF8))
self.select_LT_file.setText(QtGui.QApplication.translate("dialog", "Select LT File", None, QtGui.QApplication.UnicodeUTF8))
self.label_9.setText(QtGui.QApplication.translate("dialog", "LC1", None, QtGui.QApplication.UnicodeUTF8))
self.label_16.setText(QtGui.QApplication.translate("dialog", "LTC1", None, QtGui.QApplication.UnicodeUTF8))
self.label_12.setText(QtGui.QApplication.translate("dialog", "LC2", None, QtGui.QApplication.UnicodeUTF8))
self.label_13.setText(QtGui.QApplication.translate("dialog", "LTC2", None, QtGui.QApplication.UnicodeUTF8))
self.label_11.setText(QtGui.QApplication.translate("dialog", "LC3", None, QtGui.QApplication.UnicodeUTF8))
self.label_14.setText(QtGui.QApplication.translate("dialog", "LTC3", None, QtGui.QApplication.UnicodeUTF8))
self.label_10.setText(QtGui.QApplication.translate("dialog", "LC4", None, QtGui.QApplication.UnicodeUTF8))
self.label_19.setText(QtGui.QApplication.translate("dialog", "LC5", None, QtGui.QApplication.UnicodeUTF8))
self.label_17.setText(QtGui.QApplication.translate("dialog", "LTC5", None, QtGui.QApplication.UnicodeUTF8))
self.label_20.setText(QtGui.QApplication.translate("dialog", "LC6", None, QtGui.QApplication.UnicodeUTF8))
self.label_18.setText(QtGui.QApplication.translate("dialog", "LTC6", None, QtGui.QApplication.UnicodeUTF8))
self.label_15.setText(QtGui.QApplication.translate("dialog", "LTC4", None, QtGui.QApplication.UnicodeUTF8))
self.label_21.setText(QtGui.QApplication.translate("dialog", "Interpolation Coefficients", None, QtGui.QApplication.UnicodeUTF8))
self.button_select_output.setText(QtGui.QApplication.translate("dialog", "Select Overall Output Folder", None, QtGui.QApplication.UnicodeUTF8))
self.button_select_file.setText(QtGui.QApplication.translate("dialog", "Select Nastran Geometry File", None, QtGui.QApplication.UnicodeUTF8))
self.button_add_to_table.setText(QtGui.QApplication.translate("dialog", "Add Job", None, QtGui.QApplication.UnicodeUTF8))
self.button_start_calculation.setText(QtGui.QApplication.translate("dialog", "Start Calculation", None, QtGui.QApplication.UnicodeUTF8))

File diff suppressed because it is too large Load Diff

View File

@@ -1,69 +0,0 @@
def get_sigini_values(sigini_input):
input = open(sigini_input,"r")
lines = input.readlines()
lc = lines[1].split(",")
ltc = lines[2].split(",")
input.close()
return lc,ltc
def calculix_postprocess(frd_input) :
input = open(frd_input,"r")
nodes_x = []
nodes_y = []
nodes_z = []
disp_x = []
disp_y = []
disp_z = []
displaced_nodes_x = []
displaced_nodes_y = []
displaced_nodes_z = []
disp_found = False
nodes_found = True
while True:
line=input.readline()
if not line: break
#first lets extract the node and coordinate information from the results file
if nodes_found and (line[1:3] == "-1"):
nodes_x.append(float(line[13:25]))
nodes_y.append(float(line[25:37]))
nodes_z.append(float(line[37:49]))
#Check if we found displacement section
if line[5:9] == "DISP":
disp_found = True
#we found a displacement line in the frd file
if disp_found and (line[1:3] == "-1"):
disp_x.append(float(line[13:25]))
disp_y.append(float(line[25:37]))
disp_z.append(float(line[37:49]))
#Check for the end of a section
if line[1:3] == "-3":
#the section with the displacements and the nodes ended
disp_found = False
nodes_found = False
input.close()
#Now we are able to generate the new bounding box based on the data in nodes and displacement
for i in range(0,len(nodes_x)):
displaced_nodes_x.append(nodes_x[i] + disp_x[i])
displaced_nodes_y.append(nodes_y[i] + disp_y[i])
displaced_nodes_z.append(nodes_z[i] + disp_z[i])
#Now we can generate the required output
#Bounding Box Volume calculation
bbox_orig = (max(nodes_x)-min(nodes_x))*(max(nodes_y)-min(nodes_y))*(max(nodes_z)-min(nodes_z))
bbox_distorted = (max(displaced_nodes_x)-min(displaced_nodes_x))*(max(displaced_nodes_y)-min(displaced_nodes_y))*(max(displaced_nodes_z)-min(displaced_nodes_z))
relationship = bbox_orig/bbox_distorted*100
max_disp_x = max(disp_x)
min_disp_x = min(disp_x)
max_disp_y = max(disp_y)
min_disp_y = min(disp_y)
max_disp_z = max(disp_z)
min_disp_z = min(disp_z)
return bbox_orig,bbox_distorted,relationship,max_disp_x,min_disp_x,max_disp_y,min_disp_y,max_disp_z,min_disp_z

View File

@@ -1,470 +0,0 @@
import os,sys,string,math,shutil,glob,subprocess,tempfile
from time import sleep
from os.path import join
##GUI related stuff
from PyQt4 import QtCore, QtGui
from User_Interface_Mach_Dist import Ui_dialog
##------------------------------------------------
#from read_generalINFOS import read_generalINFOS
#from determine_ElementType import determine_ElementType
#from mesh_bdf2inp import mesh_bdf2inp
from ApplyingBC_IC import ApplyingBC_IC
from calculix_postprocess import calculix_postprocess
import FreeCAD,Fem,Part
homepath = os.path.expanduser("~")
class MyForm(QtGui.QDialog,Ui_dialog):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
self.setupUi(self)
os.chdir(homepath)
#Define some global variables
self.filename = QtCore.QString("")
self.dirname = QtCore.QString("")
self.params = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Machining_Distortion")
#Connect Signals and Slots
QtCore.QObject.connect(self.button_select_file, QtCore.SIGNAL("clicked()"), self.select_file)
QtCore.QObject.connect(self.button_select_output, QtCore.SIGNAL("clicked()"), self.select_output)
QtCore.QObject.connect(self.button_dialog, QtCore.SIGNAL("accepted()"), self.onAbbrechen)
QtCore.QObject.connect(self.button_dialog, QtCore.SIGNAL("rejected()"), self.onAbbrechen)
QtCore.QObject.connect(self.button_start_calculation, QtCore.SIGNAL("clicked()"), self.start_calculation)
QtCore.QObject.connect(self.button_add_to_table, QtCore.SIGNAL("clicked()"), self.add_to_table)
QtCore.QObject.connect(self.select_L_file, QtCore.SIGNAL("clicked()"), self.add_L_data)
QtCore.QObject.connect(self.select_LT_file, QtCore.SIGNAL("clicked()"), self.add_LT_data)
#Define the table headers as we are not able to use the QT Designer for that
self.JobTable.clear()
self.JobTable.setHorizontalHeaderLabels(
["Input File","Output Folder","Z-Offset From","Z-Offset To","Z-Intervall","X-Rot From","X-Rot To","X-Rot Intervall",
"Y-Rot From","Y-Rot To","Y-Rot Intervall","Z-Rot From","Z-Rot To","Z-Rot Intervall","Young Modulus","Poisson Ratio",
"LC1","LC2","LC3","LC4","LC5","LC6","LTC1","LTC2","LTC3","LTC4","LTC5","LTC6","Plate Thickness"])
def add_to_table(self):
self.JobTable.insertRow(0)
item = QtGui.QTableWidgetItem(self.filename)
self.JobTable.setItem(0,0,item)
item = QtGui.QTableWidgetItem(self.dirname)
self.JobTable.setItem(0,1,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_z_level_from.value())
self.JobTable.setItem(0,2,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_z_level_to.value())
self.JobTable.setItem(0,3,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_z_level_intervall.value())
self.JobTable.setItem(0,4,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_misalignment_x_from.value())
self.JobTable.setItem(0,5,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_misalignment_x_to.value())
self.JobTable.setItem(0,6,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_misalignment_x_intervall.value())
self.JobTable.setItem(0,7,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_misalignment_y_from.value())
self.JobTable.setItem(0,8,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_misalignment_y_to.value())
self.JobTable.setItem(0,9,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_misalignment_y_intervall.value())
self.JobTable.setItem(0,10,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_misalignment_z_from.value())
self.JobTable.setItem(0,11,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_misalignment_z_to.value())
self.JobTable.setItem(0,12,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_misalignment_z_intervall.value())
self.JobTable.setItem(0,13,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_young_modulus.value())
self.JobTable.setItem(0,14,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_poisson_ratio.value())
self.JobTable.setItem(0,15,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.lc1.value())
self.JobTable.setItem(0,16,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.lc2.value())
self.JobTable.setItem(0,17,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.lc3.value())
self.JobTable.setItem(0,18,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.lc4.value())
self.JobTable.setItem(0,19,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.lc5.value())
self.JobTable.setItem(0,20,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.lc6.value())
self.JobTable.setItem(0,21,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.ltc1.value())
self.JobTable.setItem(0,22,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.ltc2.value())
self.JobTable.setItem(0,23,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.ltc3.value())
self.JobTable.setItem(0,24,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.ltc4.value())
self.JobTable.setItem(0,25,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.ltc5.value())
self.JobTable.setItem(0,26,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.ltc6.value())
self.JobTable.setItem(0,27,item)
item = QtGui.QTableWidgetItem()
item.setData(QtCore.Qt.DisplayRole,self.spinBox_Plate_Thickness.value())
self.JobTable.setItem(0,28,item)
# This is how to get the data back test2 = self.JobTable.item(0,1).data(QtCore.Qt.DisplayRole).toInt()
self.button_add_to_table.setEnabled(False)
self.filename.clear()
self.button_start_calculation.setEnabled(True)
def add_L_data(self):
l_filename = QtGui.QFileDialog.getOpenFileName(None, 'Open file','','R-Script File for L Coefficients (*.txt)')
values = self.parse_R_output(l_filename)
self.lc1.setValue(values[0]),self.lc2.setValue(values[1]),self.lc3.setValue(values[2]),
self.lc4.setValue(values[3]),self.lc5.setValue(values[4]),self.lc6.setValue(values[5])
def add_LT_data(self):
lt_filename = QtGui.QFileDialog.getOpenFileName(None, 'Open file','','R-Script File for LT Coefficients (*.txt)')
values = self.parse_R_output(lt_filename)
self.ltc1.setValue(values[0]),self.ltc2.setValue(values[1]),self.ltc3.setValue(values[2]),
self.ltc4.setValue(values[3]),self.ltc5.setValue(values[4]),self.ltc6.setValue(values[5])
def parse_R_output(self,filename):
file = open(str(filename))
lines = file.readlines()
found = False
coeff = []
for line in lines:
if line[0:9] == "c0 to c5:":
found = True
coeff.append(float(line[15:]))
continue
if found and line[0:4] == "MSE:":
found = False
if found:
coeff.append(float(line[15:]))
file.close()
return coeff[0],coeff[1],coeff[2],coeff[3],coeff[4],coeff[5]
def select_file(self):
self.filename=QtGui.QFileDialog.getOpenFileName(None, 'Open file','','Nastran Files (*.bdf)')
self.button_add_to_table.setEnabled(not self.dirname.isEmpty() and not self.filename.isEmpty())
def select_output(self):
self.dirname=QtGui.QFileDialog.getExistingDirectory(None, 'Open working directory', '', QtGui.QFileDialog.ShowDirsOnly)
self.button_add_to_table.setEnabled(not self.dirname.isEmpty() and not self.filename.isEmpty())
def onAbbrechen(self):
self.close()
def start_calculation(self):
self.button_add_to_table.setEnabled(False)
self.button_select_file.setEnabled(False)
self.button_select_output.setEnabled(False)
self.button_start_calculation.setEnabled(False)
os.chdir(homepath)
##Get values from the GUI
if ( os.path.exists(str(self.dirname)) ):
os.chdir(homepath)
shutil.rmtree(str(self.dirname))
os.mkdir(str(self.dirname))
batch = open(str(self.dirname + "/" + "lcmt_CALCULIX_Calculation_batch.bat"),'wb')
batch.write("#!/bin/bash\n")
batch.write("export CCX_NPROC=4\n")
#Tell calculixs solver spooles how many cpus to use
#batch.write("export CCX_NPROC=" + str(self.params.GetInt("NumberCPUs")) + "\n")
#If we have a tcsh
#batch.write("setenv CCX_NPROC 4\n")
#Now do the calculation stuff for each row in the table
for job in range (0,self.JobTable.rowCount()):
#Extract the data from the table
current_file_name = self.JobTable.item(job,0).text()
z_offset_from = self.JobTable.item(job,2).data(QtCore.Qt.DisplayRole).toInt()[0]
z_offset_to = self.JobTable.item(job,3).data(QtCore.Qt.DisplayRole).toInt()[0]
z_offset_intervall = self.JobTable.item(job,4).data(QtCore.Qt.DisplayRole).toInt()[0]
x_rot_from = self.JobTable.item(job,5).data(QtCore.Qt.DisplayRole).toInt()[0]
x_rot_to = self.JobTable.item(job,6).data(QtCore.Qt.DisplayRole).toInt()[0]
x_rot_intervall = self.JobTable.item(job,7).data(QtCore.Qt.DisplayRole).toInt()[0]
y_rot_from = self.JobTable.item(job,8).data(QtCore.Qt.DisplayRole).toInt()[0]
y_rot_to = self.JobTable.item(job,9).data(QtCore.Qt.DisplayRole).toInt()[0]
y_rot_intervall = self.JobTable.item(job,10).data(QtCore.Qt.DisplayRole).toInt()[0]
z_rot_from = self.JobTable.item(job,11).data(QtCore.Qt.DisplayRole).toInt()[0]
z_rot_to = self.JobTable.item(job,12).data(QtCore.Qt.DisplayRole).toInt()[0]
z_rot_intervall = self.JobTable.item(job,13).data(QtCore.Qt.DisplayRole).toInt()[0]
young_modulus = self.JobTable.item(job,14).data(QtCore.Qt.DisplayRole).toDouble()[0]
poisson_ratio = self.JobTable.item(job,15).data(QtCore.Qt.DisplayRole).toDouble()[0]
lc1 = self.JobTable.item(job,16).data(QtCore.Qt.DisplayRole).toDouble()[0]
lc2 = self.JobTable.item(job,17).data(QtCore.Qt.DisplayRole).toDouble()[0]
lc3 = self.JobTable.item(job,18).data(QtCore.Qt.DisplayRole).toDouble()[0]
lc4 = self.JobTable.item(job,19).data(QtCore.Qt.DisplayRole).toDouble()[0]
lc5 = self.JobTable.item(job,20).data(QtCore.Qt.DisplayRole).toDouble()[0]
lc6 = self.JobTable.item(job,21).data(QtCore.Qt.DisplayRole).toDouble()[0]
ltc1 = self.JobTable.item(job,22).data(QtCore.Qt.DisplayRole).toDouble()[0]
ltc2 = self.JobTable.item(job,23).data(QtCore.Qt.DisplayRole).toDouble()[0]
ltc3 = self.JobTable.item(job,24).data(QtCore.Qt.DisplayRole).toDouble()[0]
ltc4 = self.JobTable.item(job,25).data(QtCore.Qt.DisplayRole).toDouble()[0]
ltc5 = self.JobTable.item(job,26).data(QtCore.Qt.DisplayRole).toDouble()[0]
ltc6 = self.JobTable.item(job,27).data(QtCore.Qt.DisplayRole).toDouble()[0]
plate_thickness = self.JobTable.item(job,28).data(QtCore.Qt.DisplayRole).toDouble()[0]
filename_without_suffix = self.JobTable.item(job,0).text().split("/").takeLast().split(".")[0]
print current_file_name
meshobject = Fem.read(str(current_file_name))
#Perform PCA
Fem.SMESH_PCA(meshobject)
#Do min routine
Fem.minBoundingBox(meshobject)
#Now get the Node Numbers for the Boundary Conditions
node_numbers = []
node_numbers = Fem.getBoundary_Conditions(meshobject)
#Now we have set up the initial geometry for the calculations. Lets generate an ABAQUS input file now for each z-level with exactly the same
#boundary conditions
#1. Lets translate the geometry to the initial desired z-level
#2. Generate a Folder for the current calculation z-level and output the ABAQUS Geometry and the boundary_conditions
#Lets first generate a subfolder with the current filename
os.mkdir(str(self.dirname + "/" + filename_without_suffix))
i = z_offset_from
while i <= z_offset_to:
j = x_rot_from
while j <= x_rot_to:
k = y_rot_from
while k <= y_rot_to:
l = z_rot_from
while l <= z_rot_to:
rotation_around_x = FreeCAD.Base.Placement(FreeCAD.Base.Vector(0,0,0),FreeCAD.Base.Vector(1,0,0),j)
rotation_around_y = FreeCAD.Base.Placement(FreeCAD.Base.Vector(0,0,0),FreeCAD.Base.Vector(0,1,0),k)
rotation_around_z = FreeCAD.Base.Placement(FreeCAD.Base.Vector(0,0,0),FreeCAD.Base.Vector(0,0,1),l)
translate = FreeCAD.Base.Placement(FreeCAD.Base.Vector(0,0,i),FreeCAD.Base.Vector(0,0,0),0.0)
translation = rotation_around_x.multiply(rotation_around_y).multiply(rotation_around_z).multiply(translate)
#Now lets check if the part is still in the billet due to the rotation. If not, we directly skip to the next rotation value
if(Fem.checkBB(meshobject,translation,plate_thickness)):
print "Too heavy rotations"
print str(plate_thickness)
l= l + z_rot_intervall
continue
print "it seems that nothing changed"
print str(plate_thickness)
#Use the placedment as optional argument for the write() method
#translated_mesh.setTransform(translation)
Case_Dir = str(self.dirname) + "/" + filename_without_suffix + "/" + filename_without_suffix +\
"_"+"x_rot"+ str(int(j))+ \
"_"+"y_rot"+ str(int(k))+ \
"_"+"z_rot"+ str(int(l))+ \
"_"+"z_l"+ str(int(i))
if ( os.path.exists(str(Case_Dir)) ):
os.chdir(str(self.dirname))
shutil.rmtree(str(Case_Dir))
os.mkdir(str(Case_Dir))
os.chdir(homepath)
#Lets generate a sigini Input Deck for the calculix user subroutine
sigini_input = open (str(Case_Dir + "/" + "sigini_input.txt"),'wb')
#Write plate thickness to the sigini_file
sigini_input.write(str(plate_thickness) + "\n")
#Now write the Interpolation coefficients, first the L and then the LC ones
sigini_input.write(\
str(lc1) + "," + \
str(lc2) + "," + \
str(lc3) + "," + \
str(lc4) + "," + \
str(lc5) + "," + \
str(lc6) + "\n")
sigini_input.write(\
str(ltc1) + "," + \
str(ltc2) + "," + \
str(ltc3) + "," + \
str(ltc4) + "," + \
str(ltc5) + "," + \
str(ltc6) + "\n")
sigini_input.close()
#Check if the
meshobject.writeABAQUS(str(Case_Dir + "/" + "geometry_fe_input.inp"), translation)
ApplyingBC_IC(Case_Dir, young_modulus,poisson_ratio,node_numbers[0],node_numbers[1],node_numbers[2])
#Now lets generate a LSF Job-File to be used by the Airbus Clusters
#lsf_input = open (str(Case_Dir + "/" + "job.lsf"),"wb")
#lsf_input.write("#!/bin/bash\n")
#lsf_input.write("export CCX_NPROC=" + str(self.params.GetInt("NumberCPUs")) + "\n")
#lsf_input.write("#BSUB -n "+ str(self.params.GetInt("NumberCPUs")) + "\n")
#lsf_input.write("#BSUB -W 10:00\n")
#lsf_input.write("#BSUB -o %J.out\n")
#lsf_input.write("#BSUB -e %J.err\n")
#lsf_input.write("#BSUB -J calculix\n")
#lsf_input.write("#BSUB -q loc_dev_par\n")
#lsf_input.write(str("datadir=\"" + homepath + "/" + self.dirname[str(self.dirname).rfind("/")+1:] + "/" + filename_without_suffix + "/" + filename_without_suffix +
#"_"+"x_rot"+ str(int(j))+
#"_"+"y_rot"+ str(int(k))+
#"_"+"z_rot"+ str(int(l))+
#"_"+"z_l"+ str(int(i)) + "\"\n"))
#lsf_input.write("cd $datadir\n")
#lsf_input.write("ccx -i geometry_fe_input\n")
#lsf_input.close()
batch.write("cd \"" + str(Case_Dir) + "\"\n")
batch.write("ccx -i geometry_fe_input\n")
l= l + z_rot_intervall
k = k + y_rot_intervall
j = j + x_rot_intervall
i = i+ z_offset_intervall
batch.write("cd \"" + homepath + "\"\n")
#batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"sigini_output.txt\" -exec rm -f {} \;\n")
#batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.out\" -exec rm -f {} \;\n")
#batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.err\" -exec rm -f {} \;\n")
#batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.dat\" -exec rm -f {} \;\n")
#batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.sta\" -exec rm -f {} \;\n")
#batch.write("tar cf \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + ".tar\" \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\"\n"))
#batch.write("rm -rf \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\"\n")
batch.close()
os.chdir(homepath)
fnull = open(os.devnull, 'w')
# #Generate the full tar name:
# tarname = homepath + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".tar"
# #Check if the tar file already exists. If yes, then we have to remove it
# if os.path.exists(tarname):
# try:
# os.remove(tarname)
# except Exception,e:
# print e
#
# #tar the whole directory structure now and save the zip file in the temp folder for further processing
# commandline = "tar cf \"" + tarname + "\" \"" + str(self.dirname) + "\" \n"
# print commandline
# result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
# #somehow we have to check for a false return code!
# if not result:
# shutil.rmtree(str(self.dirname))
#
# #Now send the zip file to the server for calculation
# commandline = "scp -r \"" + tarname + "\" " + self.params.GetString("Servername") + ":" + homepath
# print commandline
# result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
#
# #Now untar, change into the directory and start the batch file
# commandline = "ssh " + self.params.GetString("Servername") + " tar -xf \"" + tarname + "\""
# print commandline
# result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
#
# commandline = "ssh " + self.params.GetString("Servername") + " chmod +x -R \"" + homepath + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "\""
# print commandline
# result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
#
# #Now we copy the batch file one level ahead as otherwise we cannot delete the calculation folder
# commandline = "ssh " + self.params.GetString("Servername") + " mv \"" + homepath + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "/lcmt_CALCULIX_Calculation_batch.bat\" " + homepath
# print commandline
# result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
#
#Set proper rights on the batch file
commandline = "chmod +x \"" + str(self.dirname) + "/lcmt_CALCULIX_Calculation_batch.bat\""
print commandline
result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull)
#Start the Batch-File
commandline = "\"" + str(self.dirname) + "/lcmt_CALCULIX_Calculation_batch.bat\""
print commandline
result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull)
#
#Now send the zip file to the server for calculation
# commandline = FreeCAD.getHomePath() + "bin/pscp -r -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \
# "\"" + zipname + "\" " + self.params.GetString("Servername") + ":" + self.params.GetString("Linux Home Path")
# result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
# #Now unzip, change into the directory and start the batch file
# commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \
# self.params.GetString("Servername") + " unzip -o \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".zip\""
# result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
# commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \
# self.params.GetString("Servername") + " chmod +x -R \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "\""
# result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
# commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \
# self.params.GetString("Servername") + " chmod +x -R \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "\""
# result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
# #Now we copy the batch file one level ahead as otherwise we cannot delete the calculation folder
# commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \
# self.params.GetString("Servername") + " mv \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "/lcmt_CALCULIX_Calculation_batch.bat\" " + self.params.GetString("Linux Home Path")
# result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
# #Start the Batch-File
# commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \
# self.params.GetString("Servername") + " " + self.params.GetString("Linux Home Path") + "lcmt_CALCULIX_Calculation_batch.bat"
# result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
#commandline = "plink -batch -l UN -pw PW dynabox \'/home/rmjzettl/" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "lcmt_CALCULIX_Calculation_batch.bat\'"
#result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
#commandline = "pscp -r -l UN -pw PW dynabox:\"/home/rmjzettl/"+ str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".tar\" " + str(self.dirname)[0:3]
#result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
#commandline = "plink -batch -l UN -pw PW dynabox rm -f \"/home/rmjzettl/"+ str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".tar\""
#result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
#commandline = "plink -batch -l UN -pw PW dynabox rm -f \"/home/rmjzettl/"+ str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".zip\""
#result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
#commandline = "7z x \"" + str(self.dirname)[0:3] + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".tar\" -o\"" + str(self.dirname[0:str(self.dirname).rfind("/")]) + "\""
#result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
#commandline = "del /Q \"" + str(self.dirname)[0:3] + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".tar\""
#result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
#commandline = "del /Q \"" + str(self.dirname)[0:3] + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".zip\""
#result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull)
fnull.close()
#Reset the GUI
os.chdir(homepath)
#Reset the table to be fully empty
i = self.JobTable.rowCount()
while i > 0:
print i
self.JobTable.removeRow(i-1)
i = i-1
print "after"
self.JobTable.setHorizontalHeaderLabels(
["Input File","Output Folder","Z-Offset From","Z-Offset To","Z-Intervall","X-Rot From","X-Rot To","X-Rot Intervall",
"Y-Rot From","Y-Rot To","Y-Rot Intervall","Z-Rot From","Z-Rot To","Z-Rot Intervall","Young Modulus","Poisson Ratio",
"LC1","LC2","LC3","LC4","LC5","LC6","LTC1","LTC2","LTC3","LTC4","LTC5","LTC6","Plate Thickness"])
self.button_select_file.setEnabled(True)
self.button_select_output.setEnabled(True)
##Main function to be used for GUI setup and entering into the main loop
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyForm()
myapp.show()
sys.exit(app.exec_())

File diff suppressed because it is too large Load Diff

View File

@@ -1,94 +0,0 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'postprocess.ui'
#
# Created: Mon Aug 20 15:18:09 2012
# by: PyQt4 UI code generator 4.8.3
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_dialog(object):
def setupUi(self, dialog):
dialog.setObjectName(_fromUtf8("dialog"))
dialog.resize(425, 240)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(dialog.sizePolicy().hasHeightForWidth())
dialog.setSizePolicy(sizePolicy)
dialog.setMinimumSize(QtCore.QSize(0, 0))
self.gridLayout_2 = QtGui.QGridLayout(dialog)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.buttonBox = QtGui.QDialogButtonBox(dialog)
self.buttonBox.setOrientation(QtCore.Qt.Vertical)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
self.buttonBox.setObjectName(_fromUtf8("buttonBox"))
self.gridLayout_2.addWidget(self.buttonBox, 0, 3, 1, 1)
self.button_select_results_folder = QtGui.QPushButton(dialog)
self.button_select_results_folder.setObjectName(_fromUtf8("button_select_results_folder"))
self.gridLayout_2.addWidget(self.button_select_results_folder, 3, 0, 1, 1)
self.button_start_postprocessing = QtGui.QPushButton(dialog)
self.button_start_postprocessing.setEnabled(False)
self.button_start_postprocessing.setMinimumSize(QtCore.QSize(0, 23))
self.button_start_postprocessing.setObjectName(_fromUtf8("button_start_postprocessing"))
self.gridLayout_2.addWidget(self.button_start_postprocessing, 3, 1, 1, 1)
self.groupBox_2 = QtGui.QGroupBox(dialog)
self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
self.verticalLayout_2 = QtGui.QVBoxLayout(self.groupBox_2)
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.check_abs_disp_x = QtGui.QRadioButton(self.groupBox_2)
self.check_abs_disp_x.setObjectName(_fromUtf8("check_abs_disp_x"))
self.verticalLayout_2.addWidget(self.check_abs_disp_x)
spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem)
self.check_abs_disp_y = QtGui.QRadioButton(self.groupBox_2)
self.check_abs_disp_y.setObjectName(_fromUtf8("check_abs_disp_y"))
self.verticalLayout_2.addWidget(self.check_abs_disp_y)
spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem1)
self.check_abs_disp_z = QtGui.QRadioButton(self.groupBox_2)
self.check_abs_disp_z.setObjectName(_fromUtf8("check_abs_disp_z"))
self.verticalLayout_2.addWidget(self.check_abs_disp_z)
self.gridLayout_2.addWidget(self.groupBox_2, 0, 0, 1, 1)
self.groupBox_3 = QtGui.QGroupBox(dialog)
self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
self.verticalLayout_3 = QtGui.QVBoxLayout(self.groupBox_3)
self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
self.check_rot_x = QtGui.QRadioButton(self.groupBox_3)
self.check_rot_x.setObjectName(_fromUtf8("check_rot_x"))
self.verticalLayout_3.addWidget(self.check_rot_x)
spacerItem2 = QtGui.QSpacerItem(20, 33, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.verticalLayout_3.addItem(spacerItem2)
self.check_rot_y = QtGui.QRadioButton(self.groupBox_3)
self.check_rot_y.setObjectName(_fromUtf8("check_rot_y"))
self.verticalLayout_3.addWidget(self.check_rot_y)
spacerItem3 = QtGui.QSpacerItem(20, 34, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.verticalLayout_3.addItem(spacerItem3)
self.check_rot_z = QtGui.QRadioButton(self.groupBox_3)
self.check_rot_z.setObjectName(_fromUtf8("check_rot_z"))
self.verticalLayout_3.addWidget(self.check_rot_z)
self.gridLayout_2.addWidget(self.groupBox_3, 0, 1, 1, 1)
self.retranslateUi(dialog)
QtCore.QMetaObject.connectSlotsByName(dialog)
def retranslateUi(self, dialog):
dialog.setWindowTitle(QtGui.QApplication.translate("dialog", "Machining Distortion Prediction", None, QtGui.QApplication.UnicodeUTF8))
self.button_select_results_folder.setText(QtGui.QApplication.translate("dialog", "Select Results Folder", None, QtGui.QApplication.UnicodeUTF8))
self.button_start_postprocessing.setText(QtGui.QApplication.translate("dialog", "Start Postprocessing", None, QtGui.QApplication.UnicodeUTF8))
self.groupBox_2.setTitle(QtGui.QApplication.translate("dialog", "Select Z-Axis", None, QtGui.QApplication.UnicodeUTF8))
self.check_abs_disp_x.setText(QtGui.QApplication.translate("dialog", "Absolute Displacement X", None, QtGui.QApplication.UnicodeUTF8))
self.check_abs_disp_y.setText(QtGui.QApplication.translate("dialog", "Absolute Displacement Y", None, QtGui.QApplication.UnicodeUTF8))
self.check_abs_disp_z.setText(QtGui.QApplication.translate("dialog", "Absolute Displacement Z", None, QtGui.QApplication.UnicodeUTF8))
self.groupBox_3.setTitle(QtGui.QApplication.translate("dialog", "Select Y-Axis", None, QtGui.QApplication.UnicodeUTF8))
self.check_rot_x.setText(QtGui.QApplication.translate("dialog", "Rotation around X-Axis", None, QtGui.QApplication.UnicodeUTF8))
self.check_rot_y.setText(QtGui.QApplication.translate("dialog", "Rotation around Y-Axis", None, QtGui.QApplication.UnicodeUTF8))
self.check_rot_z.setText(QtGui.QApplication.translate("dialog", "Rotation around Z-Axis", None, QtGui.QApplication.UnicodeUTF8))

View File

@@ -1,178 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>dialog</class>
<widget class="QDialog" name="dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>425</width>
<height>167</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="windowTitle">
<string>Machining Distortion Prediction</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="3">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QPushButton" name="button_select_results_folder">
<property name="text">
<string>Select Results Folder</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="button_start_postprocessing">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>Start Postprocessing</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Select Z-Axis</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QRadioButton" name="check_abs_disp_x">
<property name="text">
<string>Absolute Displacement X</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<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>
<widget class="QRadioButton" name="check_abs_disp_y">
<property name="text">
<string>Absolute Displacement Y</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3">
<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>
<widget class="QRadioButton" name="check_abs_disp_z">
<property name="text">
<string>Absolute Displacement Z</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="1">
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Select Y-Axis</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QRadioButton" name="check_rot_x">
<property name="text">
<string>Rotation around X-Axis</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>33</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QRadioButton" name="check_rot_y">
<property name="text">
<string>Rotation around Y-Axis</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>34</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QRadioButton" name="check_rot_z">
<property name="text">
<string>Rotation around Z-Axis</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -1,187 +0,0 @@
import os,sys,string,math,shutil,glob,subprocess
from time import sleep
from os.path import join
##GUI related stuff
from PyQt4 import QtCore, QtGui
from postprocess import Ui_dialog
##------------------------------------------------
from calculix_postprocess import calculix_postprocess
from calculix_postprocess import get_sigini_values
import FreeCAD,Fem,Part
class MyForm(QtGui.QDialog,Ui_dialog):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
self.setupUi(self)
#Define some global variables
self.dirname = QtCore.QString("")
#Connect Signals and Slots
QtCore.QObject.connect(self.button_select_results_folder, QtCore.SIGNAL("clicked()"), self.select_output)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), self.onAbbrechen)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), self.onAbbrechen)
QtCore.QObject.connect(self.button_start_postprocessing, QtCore.SIGNAL("clicked()"), self.start_PostProcessing)
def select_output(self):
self.dirname=QtGui.QFileDialog.getExistingDirectory(None, 'Open working directory', '', QtGui.QFileDialog.ShowDirsOnly)
self.button_start_postprocessing.setEnabled(True)
def onAbbrechen(self):
self.close()
def start_PostProcessing(self):
outputfile = open(str(self.dirname + "/postprocessing_input.txt"),"wb")
sort_tuple = (1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1)
output_list = []
lc_coeff = []
ltc_coeff = []
sigini = True
for root, dirs, files in os.walk(str(self.dirname)):
if 'final_fe_input.frd' in files:
bbox_orig,\
bbox_distorted,\
relationship,\
max_disp_x,\
min_disp_x,\
max_disp_y,\
min_disp_y,\
max_disp_z,\
min_disp_z = calculix_postprocess(os.path.join(root,'final_fe_input.frd'))
if sigini:
sigini = False
lc_coeff,ltc_coeff = get_sigini_values(os.path.join(root,'sigini_input.txt'))
#Get the current Offset-Level and rotation values from the folder-name
current_z_level = int(root[(root.rfind("_z_l")+4):])
x_rot = int(root[(root.rfind("x_rot")+5):(root.rfind("_y_rot"))])
y_rot = int(root[(root.rfind("y_rot")+5):(root.rfind("_z_rot"))])
z_rot = int(root[(root.rfind("z_rot")+5):(root.rfind("_z_l"))])
#Get also the coefficients
#now generate an output tuple and add it to the output-list
output_list.append((current_z_level,x_rot,y_rot,z_rot,relationship,max_disp_x,min_disp_x,max_disp_y,min_disp_y,max_disp_z,min_disp_z))
sorted_list = sorted(output_list, key=lambda sort_tuple: sort_tuple[0])
for item in sorted_list:
if abs(item[5]) > abs(item[6]):
abs_disp_x = abs(item[5])
else:
abs_disp_x = abs(item[6])
if abs(item[7]) > abs(item[8]):
abs_disp_y = abs(item[7])
else:
abs_disp_y = abs(item[8])
if abs(item[9]) > abs(item[10]):
abs_disp_z = abs(item[9])
else:
abs_disp_z = abs(item[10])
outputfile.write(
str(item[0]) + " " +
str(item[1]) + " " +
str(item[2]) + " " +
str(item[3]) + " " +
str(item[4]) + " " +
str(item[5]) + " " +
str(item[6]) + " " +
str(item[7]) + " " +
str(item[8]) + " " +
str(item[9]) + " " +
str(item[10]) + " " +
str(abs_disp_x) + " " +
str(abs_disp_y) + " " +
str(abs_disp_z) + "\n")
outputfile.close()
#Now create a batch file for GnuPlot and start the generation of the postprocess image generation
self.start_gnu_plot(sorted_list,lc_coeff,ltc_coeff)
def start_gnu_plot(self,list,lc_coeff,ltc_coeff):
filename = "graph"
title = "Absolut Displacement in "
x_axis_label =""
y_axis_label=""
z_axis_label=""
#define all the different variations that could occur and assign proper variable names
if self.check_abs_disp_x.isChecked():
filename = filename + "_max_disp_x"
title = title + "X vs. "
z_axis_label = "Abs Displacement in X-Direction"
abs_disp_column = 12
if self.check_abs_disp_y.isChecked():
filename = filename + "_max_disp_y"
title = title + "Y vs. "
z_axis_label = "Abs Displacement in Y-Direction"
abs_disp_column = 13
if self.check_abs_disp_z.isChecked():
filename = filename + "_max_disp_z"
title = title + "Z vs. "
z_axis_label = "Abs Displacement in Z-Direction"
abs_disp_column = 14
#The Z-Level Offset is fix and therefore the corresponding variables are predefined:
filename = filename + "_offset_z"
title = title + "Z-Level Offset "
x_axis_label = "Z-Offset"
offset_column = 1
if self.check_rot_x.isChecked():
filename = filename + "_rotation_x"
title = title + "and Rotation around X-Axis"
y_axis_label = "Rotation around X-Axis"
rot_column = 2
if self.check_rot_y.isChecked():
filename = filename + "_rotation_y"
title = title + "and Rotation around Y-Axis"
y_axis_label = "Rotation around Y-Axis"
rot_column = 3
if self.check_rot_z.isChecked():
filename = filename + "_rotation_z"
title = title + "and Rotation around Z-Axis"
y_axis_label = "Rotation around Z-Axis"
rot_column = 4
gnu_plot_input_file = open(str(self.dirname + "/gnu_plot_input.txt"),"wb")
gnu_plot_input_file.write(
"set term png\n" +
"set output \"" + filename + ".png\"\n"+
"set surface\n" +
"set grid\n"+
"set hidden3d\n"+
"set dgrid3d " + str(len(list)-1) + "," + str(len(list)-1) + ",100\n" +
"set view 80,05,1.3,1.0\n"+
"set title \"" + title + "\" offset 0,-2\n"+
"show title\n"+
"set label \"Fly to Buy Ratio = " + str(
"set label \"L Coefficients used for the calculation:" + lc_coeff[0] + "," + lc_coeff[1] + "," + lc_coeff[2] + "," + lc_coeff[3] + "," + lc_coeff[4] + "," + lc_coeff[5][:-1] + "\" at screen 0.1, screen 0.95 left font \"Arial,8\"\n"+
"set label \"LT Coefficients used for the calculation:" + ltc_coeff[0] + "," + ltc_coeff[1] + "," + ltc_coeff[2] + "," + ltc_coeff[3] + "," + ltc_coeff[4] + "," + ltc_coeff[5][:-1] + "\" at screen 0.1, screen 0.93 left font \"Arial,8\"\n"+
"set label \"" + x_axis_label + "\\nin [mm]\" at screen 0.5, screen 0.1 center rotate by 0\n"+
"set label \"" + y_axis_label +"\\nin [" + str(chr(248)) +"]\" at screen 0.91, screen 0.2 center rotate by 50\n"+
"set label \"" + z_axis_label + "\\nin [mm]\" at screen 0.03, screen 0.5 center rotate by 90\n"+
"set xtics in nomirror offset character 0,-0.5\n"+
"splot \"postprocessing_input.txt\" u " + str(offset_column) + ":" + str(rot_column) + ":" + str(abs_disp_column) + " with pm3d title \"\"\n" +
"exit" ))
gnu_plot_input_file.close()
os.chdir(str(self.dirname))
fnull = open(os.devnull, 'w')
commandline = FreeCAD.getHomePath() + "gnuplot gnu_plot_input.txt"
result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull)
fnull.close()
self.button_start_postprocessing.setEnabled(False)
#Reset all radio buttons
self.check_rot_x.setChecked(False)
self.check_rot_y.setChecked(False)
self.check_rot_z.setChecked(False)
self.check_abs_disp_x.setChecked(False)
self.check_abs_disp_y.setChecked(False)
self.check_abs_disp_z.setChecked(False)