FEM: result mechanical object, use same name sheme as for all other FEM objects

This commit is contained in:
Bernd Hahnebach 2017-02-21 07:06:23 +01:00 committed by wmayer
parent eb14ba516e
commit 0c0cf1e49c
9 changed files with 24 additions and 27 deletions

View File

@ -84,10 +84,10 @@ SET(FemScripts_SRCS
_FemBeamSection.py
_FemConstraintSelfWeight.py
_FemMaterialMechanicalNonlinear.py
_FemMechanicalResult.py
_FemMeshGmsh.py
_FemMeshGroup.py
_FemMeshRegion.py
_FemResultMechanical.py
_FemShellThickness.py
_FemSolverCalculix.py
_FemSolverZ88.py
@ -103,10 +103,10 @@ SET(FemScripts_SRCS
_ViewProviderFemBeamSection.py
_ViewProviderFemConstraintSelfWeight.py
_ViewProviderFemMaterialMechanicalNonlinear.py
_ViewProviderFemMechanicalResult.py
_ViewProviderFemMeshGmsh.py
_ViewProviderFemMeshGroup.py
_ViewProviderFemMeshRegion.py
_ViewProviderFemResultMechanical.py
_ViewProviderFemShellThickness.py
_ViewProviderFemSolverCalculix.py
_ViewProviderFemSolverZ88.py

View File

@ -37,8 +37,8 @@ INSTALL(
_CommandRunSolver.py
_CommandControlSolver.py
_FemMechanicalResult.py
_ViewProviderFemMechanicalResult.py
_FemResultMechanical.py
_ViewProviderFemResultMechanical.py
_CommandShowResult.py
_TaskPanelShowResult.py
TaskPanelShowResult.ui

View File

@ -135,14 +135,14 @@ def makeMaterialMechanicalNonlinear(base_material, name="MechanicalMaterialNonli
########## results ##########
def makeMechanicalResult(name="MechanicalResult"):
'''makeMechanicalResult(name): creates an mechanical object result to hold FEM results'''
def makeResultMechanical(name="MechanicalResult"):
'''makeResultMechanical(name): creates an mechanical result object to hold FEM results'''
obj = FreeCAD.ActiveDocument.addObject('Fem::FemResultObjectPython', name)
import _FemMechanicalResult
_FemMechanicalResult._FemMechanicalResult(obj)
import _FemResultMechanical
_FemResultMechanical._FemResultMechanical(obj)
if FreeCAD.GuiUp:
from _ViewProviderFemMechanicalResult import _ViewProviderFemMechanicalResult
_ViewProviderFemMechanicalResult(obj.ViewObject)
from _ViewProviderFemResultMechanical import _ViewProviderFemResultMechanical
_ViewProviderFemResultMechanical(obj.ViewObject)
return obj

View File

@ -49,8 +49,8 @@ class _CommandShowResult(FemCommands):
if sel[0].isDerivedFrom("Fem::FemResultObject"):
self.result_object = sel[0]
import _ViewProviderFemMechanicalResult
if _ViewProviderFemMechanicalResult.is_result_obj_valid(self.result_object):
import _ViewProviderFemResultMechanical
if _ViewProviderFemResultMechanical.is_result_obj_valid(self.result_object):
self.result_object.ViewObject.startEditing()

View File

@ -24,16 +24,16 @@ __title__ = "DocumentOject Class to hold mechanical FEM results"
__author__ = "Qingfeng Xia, Bernd Hahnebach"
__url__ = "http://www.freecadweb.org"
## @package FemMechanicalResult
## @package FemResultMechanical
# \ingroup FEM
# \brief FreeCAD DocumentObject class to hold mechanical results in FEM workbench
class _FemMechanicalResult():
"""The Fem::_FemMechanicalResult's Proxy python type, add result specific properties
class _FemResultMechanical():
"""The Fem::_FemResultMechanical's Proxy python type, add result specific properties
"""
def __init__(self, obj):
self.Type = "FemMechanicalResult"
self.Type = "FemResultMechanical"
self.Object = obj # keep a ref to the DocObj for nonGui usage
obj.Proxy = self # link between App::DocumentObject to this object

View File

@ -24,7 +24,7 @@ __title__ = "ViewProvider for FEM mechanical ResultObjectPython"
__author__ = "Qingfeng Xia, Bernd Hahnebach"
__url__ = "http://www.freecadweb.org"
## @package _ViewProviderFemMechanicalResult
## @package _ViewProviderFemResultMechanical
# \ingroup FEM
# \brief FreeCAD ViewProvider for mechanical ResultObjectPython in FEM workbench
@ -33,7 +33,7 @@ import FreeCADGui
import FemGui
class _ViewProviderFemMechanicalResult:
class _ViewProviderFemResultMechanical:
"""A View Provider for the FemResultObject Python dervied FemResult class
"""

View File

@ -63,6 +63,7 @@ def insert(filename, docname):
########## module specific methods ##########
def importFrd(filename, analysis=None, result_name_prefix=None):
import ObjectsFem
if result_name_prefix is None:
result_name_prefix = ''
m = readResult(filename)
@ -70,7 +71,6 @@ def importFrd(filename, analysis=None, result_name_prefix=None):
if(len(m['Nodes']) > 0):
if analysis is None:
analysis_name = os.path.splitext(os.path.basename(filename))[0]
import ObjectsFem
analysis_object = ObjectsFem.makeAnalysis('Analysis')
analysis_object.Label = analysis_name
else:
@ -108,8 +108,7 @@ def importFrd(filename, analysis=None, result_name_prefix=None):
results_name = result_name_prefix + 'time_' + str(step_time) + '_results'
else:
results_name = result_name_prefix + 'results'
import ObjectsFem
results = ObjectsFem.makeMechanicalResult(results_name)
results = ObjectsFem.makeResultMechanical(results_name)
for m in analysis_object.Member:
if m.isDerivedFrom("Fem::FemMeshObject"):
results.Mesh = m

View File

@ -74,11 +74,11 @@ def export(objectslist, filename):
########## module specific methods ##########
def importVTK(filename, analysis=None, result_name_prefix=None):
import ObjectsFem
if result_name_prefix is None:
result_name_prefix = ''
if analysis is None:
analysis_name = os.path.splitext(os.path.basename(filename))[0]
import ObjectsFem
analysis_object = ObjectsFem.makeAnalysis('Analysis')
analysis_object.Label = analysis_name
else:
@ -86,8 +86,7 @@ def importVTK(filename, analysis=None, result_name_prefix=None):
# if properties can be added in FemVTKTools importCfdResult(), this file can be used for CFD workbench
results_name = result_name_prefix + 'results'
import ObjectsFem
result_obj = ObjectsFem.makeMechanicalResult(results_name)
result_obj = ObjectsFem.makeResultMechanical(results_name)
# result_obj = FreeCAD.ActiveDocument.addObject('Fem::FemResultObject', results_name)
Fem.readResult(filename, result_obj.Name) # readResult always creates a new femmesh named ResultMesh

View File

@ -65,13 +65,13 @@ def insert(filename, docname):
def import_z88_disp(filename, analysis=None, result_name_prefix=None):
'''insert a FreeCAD FEM Result object in the ActiveDocument
'''
import ObjectsFem
if result_name_prefix is None:
result_name_prefix = ''
m = read_z88_disp(filename)
if(len(m['Nodes']) > 0):
if analysis is None:
analysis_name = os.path.splitext(os.path.basename(filename))[0]
import ObjectsFem
analysis_object = ObjectsFem.makeAnalysis('Analysis')
analysis_object.Label = analysis_name
else:
@ -79,8 +79,7 @@ def import_z88_disp(filename, analysis=None, result_name_prefix=None):
for result_set in m['Results']:
results_name = result_name_prefix + 'results'
import ObjectsFem
results = ObjectsFem.makeMechanicalResult(results_name)
results = ObjectsFem.makeResultMechanical(results_name)
#results = FreeCAD.ActiveDocument.addObject('Fem::FemResultObject', results_name)
for m in analysis_object.Member:
if m.isDerivedFrom("Fem::FemMeshObject"):