FEM: move modules MechanicalMaterial to a more general FemMaterial

This commit is contained in:
Bernd Hahnebach 2017-01-02 13:44:14 +01:00 committed by Yorik van Havre
parent 1d2857eb76
commit 739fe3ae39
12 changed files with 54 additions and 55 deletions

View File

@ -68,7 +68,7 @@ SET(FemScripts_SRCS
_CommandConstraintSelfWeight.py _CommandConstraintSelfWeight.py
_CommandFEMMesh2Mesh.py _CommandFEMMesh2Mesh.py
_CommandMaterialMechanicalNonlinear.py _CommandMaterialMechanicalNonlinear.py
_CommandMechanicalMaterial.py _CommandMaterial.py
_CommandMeshGmshFromShape.py _CommandMeshGmshFromShape.py
_CommandMeshNetgenFromShape.py _CommandMeshNetgenFromShape.py
_CommandMeshRegion.py _CommandMeshRegion.py
@ -87,13 +87,13 @@ SET(FemScripts_SRCS
_FemShellThickness.py _FemShellThickness.py
_FemSolverCalculix.py _FemSolverCalculix.py
_FemSolverZ88.py _FemSolverZ88.py
_MechanicalMaterial.py _FemMaterial.py
_TaskPanelFemBeamSection.py _TaskPanelFemBeamSection.py
_TaskPanelFemMeshGmsh.py _TaskPanelFemMeshGmsh.py
_TaskPanelFemMeshRegion.py _TaskPanelFemMeshRegion.py
_TaskPanelFemShellThickness.py _TaskPanelFemShellThickness.py
_TaskPanelFemSolverCalculix.py _TaskPanelFemSolverCalculix.py
_TaskPanelMechanicalMaterial.py _TaskPanelFemMaterial.py
_TaskPanelShowResult.py _TaskPanelShowResult.py
_ViewProviderFemBeamSection.py _ViewProviderFemBeamSection.py
_ViewProviderFemConstraintSelfWeight.py _ViewProviderFemConstraintSelfWeight.py
@ -103,7 +103,7 @@ SET(FemScripts_SRCS
_ViewProviderFemShellThickness.py _ViewProviderFemShellThickness.py
_ViewProviderFemSolverCalculix.py _ViewProviderFemSolverCalculix.py
_ViewProviderFemSolverZ88.py _ViewProviderFemSolverZ88.py
_ViewProviderMechanicalMaterial.py _ViewProviderFemMaterial.py
ccxDatReader.py ccxDatReader.py
ccxFrdReader.py ccxFrdReader.py
convert2TetGen.py convert2TetGen.py
@ -130,7 +130,7 @@ SET(FemScripts_SRCS
FemTools.py FemTools.py
FemToolsCcx.py FemToolsCcx.py
FemToolsZ88.py FemToolsZ88.py
MechanicalMaterial.py FemMaterial.py
FemSelectionObserver.py FemSelectionObserver.py
TestFem.py TestFem.py
z88DispReader.py z88DispReader.py
@ -139,7 +139,7 @@ SET(FemScripts_SRCS
TaskPanelFemMeshRegion.ui TaskPanelFemMeshRegion.ui
TaskPanelFemShellThickness.ui TaskPanelFemShellThickness.ui
TaskPanelFemSolverCalculix.ui TaskPanelFemSolverCalculix.ui
TaskPanelMechanicalMaterial.ui TaskPanelFemMaterial.ui
TaskPanelShowResult.ui TaskPanelShowResult.ui
) )
#SOURCE_GROUP("Scripts" FILES ${FemScripts_SRCS}) #SOURCE_GROUP("Scripts" FILES ${FemScripts_SRCS})

View File

@ -81,12 +81,12 @@ INSTALL(
_ViewProviderFemConstraintSelfWeight.py _ViewProviderFemConstraintSelfWeight.py
_CommandConstraintSelfWeight.py _CommandConstraintSelfWeight.py
MechanicalMaterial.py FemMaterial.py
_MechanicalMaterial.py _FemMaterial.py
_ViewProviderMechanicalMaterial.py _ViewProviderFemMaterial.py
_CommandMechanicalMaterial.py _CommandMaterial.py
_TaskPanelMechanicalMaterial.py _TaskPanelFemMaterial.py
TaskPanelMechanicalMaterial.ui TaskPanelFemMaterial.ui
FemMaterialMechanicalNonlinear.py FemMaterialMechanicalNonlinear.py
_FemMaterialMechanicalNonlinear.py _FemMaterialMechanicalNonlinear.py

View File

@ -20,7 +20,7 @@
# * * # * *
# *************************************************************************** # ***************************************************************************
__title__ = "MechanicalMaterial" __title__ = "FemMaterial"
__author__ = "Juergen Riegel, Bernd Hahnebach" __author__ = "Juergen Riegel, Bernd Hahnebach"
__url__ = "http://www.freecadweb.org" __url__ = "http://www.freecadweb.org"
@ -28,17 +28,17 @@ __url__ = "http://www.freecadweb.org"
# @{ # @{
import FreeCAD import FreeCAD
import _MechanicalMaterial import _FemMaterial
def makeMechanicalMaterial(name): def makeFemMaterial(name):
'''makeMaterial(name): makes an Material '''makeFemMaterial(name): makes an FEM Material
name there fore is a material name or an file name for a FCMat file''' '''
obj = FreeCAD.ActiveDocument.addObject("App::MaterialObjectPython", name) obj = FreeCAD.ActiveDocument.addObject("App::MaterialObjectPython", name)
_MechanicalMaterial._MechanicalMaterial(obj) _FemMaterial._FemMaterial(obj)
if FreeCAD.GuiUp: if FreeCAD.GuiUp:
import _ViewProviderMechanicalMaterial import _ViewProviderFemMaterial
_ViewProviderMechanicalMaterial._ViewProviderMechanicalMaterial(obj.ViewObject) _ViewProviderFemMaterial._ViewProviderFemMaterial(obj.ViewObject)
# FreeCAD.ActiveDocument.recompute() # FreeCAD.ActiveDocument.recompute()
return obj return obj

View File

@ -402,7 +402,7 @@ def get_femelement_sets_from_group_data(femmesh, fem_objects):
def get_elset_short_name(obj, i): def get_elset_short_name(obj, i):
if hasattr(obj, "Proxy") and obj.Proxy.Type == 'MechanicalMaterial': if hasattr(obj, "Proxy") and obj.Proxy.Type == 'FemMaterial':
return 'Mat' + str(i) return 'Mat' + str(i)
elif hasattr(obj, "Proxy") and obj.Proxy.Type == 'FemBeamSection': elif hasattr(obj, "Proxy") and obj.Proxy.Type == 'FemBeamSection':
return 'Beam' + str(i) return 'Beam' + str(i)

View File

@ -344,7 +344,6 @@ fc_target_copy_resource(FemGui
${CMAKE_SOURCE_DIR}/src/Mod/Fem ${CMAKE_SOURCE_DIR}/src/Mod/Fem
${CMAKE_BINARY_DIR}/Mod/Fem ${CMAKE_BINARY_DIR}/Mod/Fem
InitGui.py InitGui.py
TaskPanelMechanicalMaterial.ui
) )
SET(FemGuiIcon_SVG SET(FemGuiIcon_SVG

View File

@ -73,7 +73,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
<< "Fem_MeshRegion" << "Fem_MeshRegion"
//<< "Fem_CreateNodesSet" //<< "Fem_CreateNodesSet"
<< "Separator" << "Separator"
<< "Fem_MechanicalMaterial" << "Fem_Material"
<< "Fem_MaterialMechanicalNonlinear" << "Fem_MaterialMechanicalNonlinear"
<< "Fem_BeamSection" << "Fem_BeamSection"
<< "Fem_ShellThickness" << "Fem_ShellThickness"
@ -145,7 +145,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const
<< "Fem_MeshRegion" << "Fem_MeshRegion"
<< "Fem_CreateNodesSet" << "Fem_CreateNodesSet"
<< "Separator" << "Separator"
<< "Fem_MechanicalMaterial" << "Fem_Material"
<< "Fem_MaterialMechanicalNonlinear" << "Fem_MaterialMechanicalNonlinear"
<< "Fem_BeamSection" << "Fem_BeamSection"
<< "Fem_ShellThickness" << "Fem_ShellThickness"

View File

@ -58,7 +58,7 @@ class FemWorkbench (Workbench):
import _CommandAnalysis import _CommandAnalysis
import _CommandShellThickness import _CommandShellThickness
import _CommandBeamSection import _CommandBeamSection
import _CommandMechanicalMaterial import _CommandMaterial
import _CommandMaterialMechanicalNonlinear import _CommandMaterialMechanicalNonlinear
import _CommandSolverCalculix import _CommandSolverCalculix
import _CommandSolverZ88 import _CommandSolverZ88

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>ThermalMechanicalMaterial</class> <class>FemMaterial</class>
<widget class="QWidget" name="ThermalMechanicalMaterial"> <widget class="QWidget" name="FemMaterial">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Mechanical material</string> <string>FEM material</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>

View File

@ -20,11 +20,11 @@
# * * # * *
# *************************************************************************** # ***************************************************************************
__title__ = "_CommandMechanicalMaterial" __title__ = "_CommandMaterial"
__author__ = "Juergen Riegel, Bernd Hahnebach" __author__ = "Juergen Riegel, Bernd Hahnebach"
__url__ = "http://www.freecadweb.org" __url__ = "http://www.freecadweb.org"
## @package CommandMechanicalMaterial ## @package CommandMaterial
# \ingroup FEM # \ingroup FEM
import FreeCAD import FreeCAD
@ -34,25 +34,25 @@ import FemGui
from PySide import QtCore from PySide import QtCore
class _CommandMechanicalMaterial(FemCommands): class _CommandMaterial(FemCommands):
"the Fem_MechanicalMaterial command definition" "the Fem_Material command definition"
def __init__(self): def __init__(self):
super(_CommandMechanicalMaterial, self).__init__() super(_CommandMaterial, self).__init__()
self.resources = {'Pixmap': 'fem-material', self.resources = {'Pixmap': 'fem-material',
'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_MechanicalMaterial", "Mechanical material"), 'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_Material", "FEM material"),
'Accel': "M, M", 'Accel': "M, M",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_MechanicalMaterial", "Creates a mechanical material")} 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_Material", "Creates a FEM material")}
self.is_active = 'with_analysis' self.is_active = 'with_analysis'
def Activated(self): def Activated(self):
femDoc = FemGui.getActiveAnalysis().Document femDoc = FemGui.getActiveAnalysis().Document
if FreeCAD.ActiveDocument is not femDoc: if FreeCAD.ActiveDocument is not femDoc:
FreeCADGui.setActiveDocument(femDoc) FreeCADGui.setActiveDocument(femDoc)
FreeCAD.ActiveDocument.openTransaction("Create MechanicalMaterial") FreeCAD.ActiveDocument.openTransaction("Create Material")
FreeCADGui.addModule("MechanicalMaterial") FreeCADGui.addModule("FemMaterial")
FreeCADGui.doCommand("MechanicalMaterial.makeMechanicalMaterial('MechanicalMaterial')") FreeCADGui.doCommand("FemMaterial.makeFemMaterial('FemMaterial')")
FreeCADGui.doCommand("App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member = App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member + [App.ActiveDocument.ActiveObject]") FreeCADGui.doCommand("App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member = App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member + [App.ActiveDocument.ActiveObject]")
FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name)") FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name)")
FreeCADGui.addCommand('Fem_MechanicalMaterial', _CommandMechanicalMaterial()) FreeCADGui.addCommand('Fem_Material', _CommandMaterial())

View File

@ -20,20 +20,20 @@
# * * # * *
# *************************************************************************** # ***************************************************************************
__title__ = "_MechanicalMaterial" __title__ = "FemMaterial"
__author__ = "Juergen Riegel, Bernd Hahnebach" __author__ = "Juergen Riegel, Bernd Hahnebach"
__url__ = "http://www.freecadweb.org" __url__ = "http://www.freecadweb.org"
## @package MechanicalMaterial ## @package FemMaterial
# \ingroup FEM # \ingroup FEM
class _MechanicalMaterial: class _FemMaterial:
"The Material object" "The FEM Material object"
def __init__(self, obj): def __init__(self, obj):
obj.addProperty("App::PropertyLinkSubList", "References", "Material", "List of material shapes") obj.addProperty("App::PropertyLinkSubList", "References", "Material", "List of material shapes")
obj.Proxy = self obj.Proxy = self
self.Type = "MechanicalMaterial" self.Type = "FemMaterial"
def execute(self, obj): def execute(self, obj):
return return

View File

@ -20,11 +20,11 @@
# * * # * *
# *************************************************************************** # ***************************************************************************
__title__ = "_TaskPanelMechanicalMaterial" __title__ = "_TaskPanelFemMaterial"
__author__ = "Juergen Riegel, Bernd Hahnebach" __author__ = "Juergen Riegel, Bernd Hahnebach"
__url__ = "http://www.freecadweb.org" __url__ = "http://www.freecadweb.org"
## @package TaskPanelMechanicalMaterial ## @package TaskPanelFemMaterial
# \ingroup FEM # \ingroup FEM
import FreeCAD import FreeCAD
@ -34,8 +34,8 @@ from PySide import QtCore
import Units import Units
class _TaskPanelMechanicalMaterial: class _TaskPanelFemMaterial:
'''The editmode TaskPanel for MechanicalMaterial objects''' '''The editmode TaskPanel for FemMaterial objects'''
def __init__(self, obj): def __init__(self, obj):
FreeCADGui.Selection.clearSelection() FreeCADGui.Selection.clearSelection()
self.sel_server = None self.sel_server = None
@ -50,7 +50,7 @@ class _TaskPanelMechanicalMaterial:
self.get_references() self.get_references()
self.references_shape_type = None self.references_shape_type = None
self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/TaskPanelMechanicalMaterial.ui") self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/TaskPanelFemMaterial.ui")
QtCore.QObject.connect(self.form.pushButton_MatWeb, QtCore.SIGNAL("clicked()"), self.goMatWeb) QtCore.QObject.connect(self.form.pushButton_MatWeb, QtCore.SIGNAL("clicked()"), self.goMatWeb)
QtCore.QObject.connect(self.form.cb_materials, QtCore.SIGNAL("activated(int)"), self.choose_material) QtCore.QObject.connect(self.form.cb_materials, QtCore.SIGNAL("activated(int)"), self.choose_material)
QtCore.QObject.connect(self.form.input_fd_young_modulus, QtCore.SIGNAL("valueChanged(double)"), self.ym_changed) QtCore.QObject.connect(self.form.input_fd_young_modulus, QtCore.SIGNAL("valueChanged(double)"), self.ym_changed)

View File

@ -20,19 +20,19 @@
# * * # * *
# *************************************************************************** # ***************************************************************************
__title__ = "_ViewProviderMechanicalMaterial" __title__ = "_ViewProviderFemMaterial"
__author__ = "Juergen Riegel, Bernd Hahnebach" __author__ = "Juergen Riegel, Bernd Hahnebach"
__url__ = "http://www.freecadweb.org" __url__ = "http://www.freecadweb.org"
## @package ViewProviderMechanicalMaterial ## @package _ViewProviderFemMaterial
# \ingroup FEM # \ingroup FEM
import FreeCAD import FreeCAD
import FreeCADGui import FreeCADGui
class _ViewProviderMechanicalMaterial: class _ViewProviderFemMaterial:
"A View Provider for the MechanicalMaterial object" "A View Provider for the FemMaterial object"
def __init__(self, vobj): def __init__(self, vobj):
vobj.Proxy = self vobj.Proxy = self
@ -51,8 +51,8 @@ class _ViewProviderMechanicalMaterial:
return return
def setEdit(self, vobj, mode): def setEdit(self, vobj, mode):
import _TaskPanelMechanicalMaterial import _TaskPanelFemMaterial
taskd = _TaskPanelMechanicalMaterial._TaskPanelMechanicalMaterial(self.Object) taskd = _TaskPanelFemMaterial._TaskPanelFemMaterial(self.Object)
taskd.obj = vobj.Object taskd.obj = vobj.Object
FreeCADGui.Control.showDialog(taskd) FreeCADGui.Control.showDialog(taskd)
return True return True