FEM: shell thickness and elment geometry 2D object, make name fit in FEM name system
This commit is contained in:
parent
977fd8995e
commit
34ad6af337
|
@ -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
|
||||
)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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())
|
|
@ -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)
|
|
@ -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
|
|
@ -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
|
Loading…
Reference in New Issue
Block a user