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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -20,11 +20,11 @@
# * *
# ***************************************************************************
__title__ = "_CommandMechanicalMaterial"
__title__ = "_CommandMaterial"
__author__ = "Juergen Riegel, Bernd Hahnebach"
__url__ = "http://www.freecadweb.org"
## @package CommandMechanicalMaterial
## @package CommandMaterial
# \ingroup FEM
import FreeCAD
@ -34,25 +34,25 @@ import FemGui
from PySide import QtCore
class _CommandMechanicalMaterial(FemCommands):
"the Fem_MechanicalMaterial command definition"
class _CommandMaterial(FemCommands):
"the Fem_Material command definition"
def __init__(self):
super(_CommandMechanicalMaterial, self).__init__()
super(_CommandMaterial, self).__init__()
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",
'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'
def Activated(self):
femDoc = FemGui.getActiveAnalysis().Document
if FreeCAD.ActiveDocument is not femDoc:
FreeCADGui.setActiveDocument(femDoc)
FreeCAD.ActiveDocument.openTransaction("Create MechanicalMaterial")
FreeCADGui.addModule("MechanicalMaterial")
FreeCADGui.doCommand("MechanicalMaterial.makeMechanicalMaterial('MechanicalMaterial')")
FreeCAD.ActiveDocument.openTransaction("Create Material")
FreeCADGui.addModule("FemMaterial")
FreeCADGui.doCommand("FemMaterial.makeFemMaterial('FemMaterial')")
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.addCommand('Fem_MechanicalMaterial', _CommandMechanicalMaterial())
FreeCADGui.addCommand('Fem_Material', _CommandMaterial())

View File

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

View File

@ -20,11 +20,11 @@
# * *
# ***************************************************************************
__title__ = "_TaskPanelMechanicalMaterial"
__title__ = "_TaskPanelFemMaterial"
__author__ = "Juergen Riegel, Bernd Hahnebach"
__url__ = "http://www.freecadweb.org"
## @package TaskPanelMechanicalMaterial
## @package TaskPanelFemMaterial
# \ingroup FEM
import FreeCAD
@ -34,8 +34,8 @@ from PySide import QtCore
import Units
class _TaskPanelMechanicalMaterial:
'''The editmode TaskPanel for MechanicalMaterial objects'''
class _TaskPanelFemMaterial:
'''The editmode TaskPanel for FemMaterial objects'''
def __init__(self, obj):
FreeCADGui.Selection.clearSelection()
self.sel_server = None
@ -50,7 +50,7 @@ class _TaskPanelMechanicalMaterial:
self.get_references()
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.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)

View File

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