FEM: shell thickness and elment geometry 2D object, make name fit in FEM name system

This commit is contained in:
Bernd Hahnebach 2017-03-06 10:10:09 +01:00 committed by Yorik van Havre
parent 977fd8995e
commit 34ad6af337
12 changed files with 49 additions and 49 deletions

View File

@ -97,7 +97,7 @@ SET(FemObjectsScripts_SRCS
PyObjects/_FemMeshGroup.py
PyObjects/_FemMeshRegion.py
PyObjects/_FemResultMechanical.py
PyObjects/_FemShellThickness.py
PyObjects/_FemElementGeometry2D.py
PyObjects/_FemSolverCalculix.py
PyObjects/_FemSolverZ88.py
PyObjects/_FemMaterial.py
@ -122,7 +122,7 @@ SET(FemGuiScripts_SRCS
PyGui/_CommandFemMeshRegion.py
PyGui/_CommandFemResultShow.py
PyGui/_CommandFemResultsPurge.py
PyGui/_CommandFemShellThickness.py
PyGui/_CommandFemElementGeometry2D.py
PyGui/_CommandFemSolverCalculix.py
PyGui/_CommandFemSolverControl.py
PyGui/_CommandFemSolverRun.py
@ -134,7 +134,7 @@ SET(FemGuiScripts_SRCS
PyGui/_TaskPanelFemMeshGroup.py
PyGui/_TaskPanelFemMeshRegion.py
PyGui/_TaskPanelFemResultShow.py
PyGui/_TaskPanelFemShellThickness.py
PyGui/_TaskPanelFemElementGeometry2D.py
PyGui/_TaskPanelFemSolverCalculix.py
PyGui/_ViewProviderFemElementGeometry1D.py
PyGui/_ViewProviderFemConstraintSelfWeight.py
@ -145,7 +145,7 @@ SET(FemGuiScripts_SRCS
PyGui/_ViewProviderFemMeshGroup.py
PyGui/_ViewProviderFemMeshRegion.py
PyGui/_ViewProviderFemResultMechanical.py
PyGui/_ViewProviderFemShellThickness.py
PyGui/_ViewProviderFemElementGeometry2D.py
PyGui/_ViewProviderFemSolverCalculix.py
PyGui/_ViewProviderFemSolverZ88.py
PyGui/TaskPanelFemElementGeometry1D.ui
@ -155,7 +155,7 @@ SET(FemGuiScripts_SRCS
PyGui/TaskPanelFemMeshGroup.ui
PyGui/TaskPanelFemMeshRegion.ui
PyGui/TaskPanelFemResultShow.ui
PyGui/TaskPanelFemShellThickness.ui
PyGui/TaskPanelFemElementGeometry2D.ui
PyGui/TaskPanelFemSolverCalculix.ui
)

View File

@ -55,7 +55,7 @@ INSTALL(
PyObjects/_FemMeshGroup.py
PyObjects/_FemMeshRegion.py
PyObjects/_FemResultMechanical.py
PyObjects/_FemShellThickness.py
PyObjects/_FemElementGeometry2D.py
PyObjects/_FemSolverCalculix.py
PyObjects/_FemSolverZ88.py
PyObjects/_FemMaterial.py
@ -83,7 +83,7 @@ INSTALL(
PyGui/_CommandFemMeshRegion.py
PyGui/_CommandFemResultShow.py
PyGui/_CommandFemResultsPurge.py
PyGui/_CommandFemShellThickness.py
PyGui/_CommandFemElementGeometry2D.py
PyGui/_CommandFemSolverCalculix.py
PyGui/_CommandFemSolverControl.py
PyGui/_CommandFemSolverRun.py
@ -95,7 +95,7 @@ INSTALL(
PyGui/_TaskPanelFemMeshGroup.py
PyGui/_TaskPanelFemMeshRegion.py
PyGui/_TaskPanelFemResultShow.py
PyGui/_TaskPanelFemShellThickness.py
PyGui/_TaskPanelFemElementGeometry2D.py
PyGui/_TaskPanelFemSolverCalculix.py
PyGui/_ViewProviderFemElementGeometry1D.py
PyGui/_ViewProviderFemConstraintSelfWeight.py
@ -106,7 +106,7 @@ INSTALL(
PyGui/_ViewProviderFemMeshGroup.py
PyGui/_ViewProviderFemMeshRegion.py
PyGui/_ViewProviderFemResultMechanical.py
PyGui/_ViewProviderFemShellThickness.py
PyGui/_ViewProviderFemElementGeometry2D.py
PyGui/_ViewProviderFemSolverCalculix.py
PyGui/_ViewProviderFemSolverZ88.py
PyGui/TaskPanelFemElementGeometry1D.ui
@ -116,7 +116,7 @@ INSTALL(
PyGui/TaskPanelFemMeshGroup.ui
PyGui/TaskPanelFemMeshRegion.ui
PyGui/TaskPanelFemResultShow.ui
PyGui/TaskPanelFemShellThickness.ui
PyGui/TaskPanelFemElementGeometry2D.ui
PyGui/TaskPanelFemSolverCalculix.ui
DESTINATION
Mod/Fem/PyGui

View File

@ -408,7 +408,7 @@ def get_elset_short_name(obj, i):
return 'Beam' + str(i)
elif hasattr(obj, "Proxy") and obj.Proxy.Type == 'FemFluidSection':
return 'Fluid' + str(i)
elif hasattr(obj, "Proxy") and obj.Proxy.Type == 'FemShellThickness':
elif hasattr(obj, "Proxy") and obj.Proxy.Type == 'FemElementGeometry2D':
return 'Shell' + str(i)
else:
print('Error: ', obj.Name, ' --> ', obj.Proxy.Type)
@ -1030,7 +1030,7 @@ def get_analysis_group_elements(aAnalysis, aPart):
else:
FreeCAD.Console.PrintError('Problem: more than one object with empty references.\n')
print('We gone try to get the empty material references anyway.\n')
# ShellThickness, ElementGeometry1D and FluidSection could have empty references, but on solid meshes only materials should have empty references
# FemElementGeometry2D, ElementGeometry1D and FluidSection could have empty references, but on solid meshes only materials should have empty references
for er in empty_references:
print(er.Name)
group_elements = get_anlysis_empty_references_group_elements(group_elements, aAnalysis, aPart.Shape)

View File

@ -198,7 +198,7 @@ class FemTools(QtCore.QRunnable, QtCore.QObject):
self.fluid_sections = []
## @var shell_thicknesses
# set of shell thicknesses from the analysis. Updated with update_objects
# Individual shell thicknesses are Proxy.Type "FemShellThickness"
# Individual shell thicknesses are Proxy.Type "FemElementGeometry2D"
self.shell_thicknesses = []
## @var displacement_constraints
# set of displacements for the analysis. Updated with update_objects
@ -310,7 +310,7 @@ class FemTools(QtCore.QRunnable, QtCore.QObject):
fluid_section_dict = {}
fluid_section_dict['Object'] = m
self.fluid_sections.append(fluid_section_dict)
elif hasattr(m, "Proxy") and m.Proxy.Type == "FemShellThickness":
elif hasattr(m, "Proxy") and m.Proxy.Type == "FemElementGeometry2D":
shell_thickness_dict = {}
shell_thickness_dict['Object'] = m
self.shell_thicknesses.append(shell_thickness_dict)

View File

@ -78,7 +78,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
<< "FEM_MaterialFluid"
<< "FEM_MaterialMechanicalNonlinear"
<< "FEM_ElementGeometry1D"
<< "FEM_ShellThickness"
<< "FEM_ElementGeometry2D"
<< "FEM_FluidSection"
<< "Separator"
<< "FEM_ConstraintFixed"
@ -153,7 +153,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const
<< "FEM_MaterialFluid"
<< "FEM_MaterialMechanicalNonlinear"
<< "FEM_ElementGeometry1D"
<< "FEM_ShellThickness"
<< "FEM_ElementGeometry2D"
<< "FEM_FluidSection"
<< "Separator"
<< "FEM_ConstraintFixed"

View File

@ -64,7 +64,7 @@ class FemWorkbench (Workbench):
import PyGui._CommandFemSolverRun
import PyGui._CommandFemSolverZ88
import PyGui._CommandFemShellThickness
import PyGui._CommandFemElementGeometry2D
import PyGui._CommandFemElementGeometry1D
import PyGui._CommandFemFluidSection

View File

@ -294,15 +294,15 @@ def makeFemFluidSection(name="FluidSection"):
return obj
def makeShellThickness(thickness=20.0, name="ShellThickness"):
'''makeShellThickness([thickness], [name]): creates an shellthickness object to define a plate thickness'''
def makeElementGeometry2D(thickness=20.0, name="ElementGeometry2D"):
'''makeElementGeometry2D([thickness], [name]): creates an 2D geometry element object to define a plate thickness'''
obj = FreeCAD.ActiveDocument.addObject("Fem::FeaturePython", name)
import PyObjects._FemShellThickness
PyObjects._FemShellThickness._FemShellThickness(obj)
import PyObjects._FemElementGeometry2D
PyObjects._FemElementGeometry2D._FemElementGeometry2D(obj)
obj.Thickness = thickness
if FreeCAD.GuiUp:
import PyGui._ViewProviderFemShellThickness
PyGui._ViewProviderFemShellThickness._ViewProviderFemShellThickness(obj.ViewObject)
import PyGui._ViewProviderFemElementGeometry2D
PyGui._ViewProviderFemElementGeometry2D._ViewProviderFemElementGeometry2D(obj.ViewObject)
return obj

View File

@ -20,11 +20,11 @@
# * *
# ***************************************************************************
__title__ = "_CommandShellThickness"
__title__ = "_CommandFemElementGeometry2D"
__author__ = "Bernd Hahnebach"
__url__ = "http://www.freecadweb.org"
## @package CommandFemShellThickness
## @package CommandFemElementGeometry2D
# \ingroup FEM
import FreeCAD
@ -33,20 +33,20 @@ import FreeCADGui
from PySide import QtCore
class _CommandFemShellThickness(FemCommands):
"The FEM_ShellThickness command definition"
class _CommandFemElementGeometry2D(FemCommands):
"The FEM_ElementGeometry2D command definition"
def __init__(self):
super(_CommandFemShellThickness, self).__init__()
super(_CommandFemElementGeometry2D, self).__init__()
self.resources = {'Pixmap': 'fem-shell-thickness',
'MenuText': QtCore.QT_TRANSLATE_NOOP("FEM_ShellThickness", "Shell plate thickness"),
'MenuText': QtCore.QT_TRANSLATE_NOOP("FEM_ElementGeometry2D", "Shell plate thickness"),
'Accel': "C, S",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("FEM_ShellThickness", "Creates a FEM shell plate thickness")}
'ToolTip': QtCore.QT_TRANSLATE_NOOP("FEM_ElementGeometry2D", "Creates a FEM shell plate thickness")}
self.is_active = 'with_analysis'
def Activated(self):
FreeCAD.ActiveDocument.openTransaction("Create FemShellThickness")
FreeCAD.ActiveDocument.openTransaction("Create FemElementGeometry2D")
FreeCADGui.addModule("ObjectsFem")
FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeShellThickness()]")
FreeCADGui.doCommand("FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeElementGeometry2D()]")
FreeCADGui.addCommand('FEM_ShellThickness', _CommandFemShellThickness())
FreeCADGui.addCommand('FEM_ElementGeometry2D', _CommandFemElementGeometry2D())

View File

@ -20,11 +20,11 @@
# * *
# ***************************************************************************
__title__ = "_TaskPanelFemShellThickness"
__title__ = "_TaskPanelFemElementGeometry2D"
__author__ = "Bernd Hahnebach"
__url__ = "http://www.freecadweb.org"
## @package TaskPanelFemShellThickness
## @package FemElementGeometry2D
# \ingroup FEM
import FreeCAD
@ -33,14 +33,14 @@ from PySide import QtGui
from PySide import QtCore
class _TaskPanelFemShellThickness:
'''The TaskPanel for editing References property of FemShellThickness objects'''
class _TaskPanelFemElementGeometry2D:
'''The TaskPanel for editing References property of FemElementGeometry2D objects'''
def __init__(self, obj):
FreeCADGui.Selection.clearSelection()
self.sel_server = None
self.obj = obj
self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/PyGui/TaskPanelFemShellThickness.ui")
self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/PyGui/TaskPanelFemElementGeometry2D.ui")
QtCore.QObject.connect(self.form.if_thickness, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.thickness_changed)
QtCore.QObject.connect(self.form.pushButton_Reference, QtCore.SIGNAL("clicked()"), self.add_references)
self.form.list_References.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)

View File

@ -20,11 +20,11 @@
# * *
# ***************************************************************************
__title__ = "_ViewProviderFemShellThickness"
__title__ = "_ViewProviderFemElementGeometry2D"
__author__ = "Bernd Hahnebach"
__url__ = "http://www.freecadweb.org"
## @package ViewProviderFemShellThickness
## @package ViewProviderFemElementGeometry2D
# \ingroup FEM
import FreeCAD
@ -32,8 +32,8 @@ import FreeCADGui
from pivy import coin
class _ViewProviderFemShellThickness:
"A View Provider for the FemShellThickness object"
class _ViewProviderFemElementGeometry2D:
"A View Provider for the FemElementGeometry2D object"
def __init__(self, vobj):
vobj.Proxy = self
@ -59,8 +59,8 @@ class _ViewProviderFemShellThickness:
return
def setEdit(self, vobj, mode=0):
import PyGui._TaskPanelFemShellThickness
taskd = PyGui._TaskPanelFemShellThickness._TaskPanelFemShellThickness(self.Object)
import PyGui._TaskPanelFemElementGeometry2D
taskd = PyGui._TaskPanelFemElementGeometry2D._TaskPanelFemElementGeometry2D(self.Object)
taskd.obj = vobj.Object
FreeCADGui.Control.showDialog(taskd)
return True

View File

@ -20,21 +20,21 @@
# * *
# ***************************************************************************
__title__ = "_FemShellThickness"
__title__ = "_FemElementGeometry2D"
__author__ = "Bernd Hahnebach"
__url__ = "http://www.freecadweb.org"
## @package FemShellThickness
## @package FemElementGeometry2D
# \ingroup FEM
class _FemShellThickness:
"The FemShellThickness object"
class _FemElementGeometry2D:
"The FemElementGeometry2D object"
def __init__(self, obj):
obj.addProperty("App::PropertyLength", "Thickness", "ShellThickness", "set thickness of the shell elements")
obj.addProperty("App::PropertyLinkSubList", "References", "ShellThickness", "List of shell thickness shapes")
obj.Proxy = self
self.Type = "FemShellThickness"
self.Type = "FemElementGeometry2D"
def execute(self, obj):
return