FEM: frd, vtk and Z88 result import, do not create an analysis object on import of lonley results

This commit is contained in:
Bernd Hahnebach
2017-08-02 05:53:53 +01:00
parent 3eb44c6be2
commit cdc526b50f
3 changed files with 18 additions and 26 deletions

View File

@@ -68,11 +68,7 @@ def importFrd(filename, analysis=None, result_name_prefix=None):
m = readResult(filename)
result_mesh_object = None
if len(m['Nodes']) > 0:
if analysis is None:
analysis_name = os.path.splitext(os.path.basename(filename))[0]
analysis_object = ObjectsFem.makeAnalysis('Analysis')
analysis_object.Label = analysis_name
else:
if analysis:
analysis_object = analysis
mesh = importToolsFem.make_femmesh(m)
@@ -104,11 +100,13 @@ def importFrd(filename, analysis=None, result_name_prefix=None):
results = ObjectsFem.makeResultMechanical(results_name)
results.Mesh = result_mesh_object
results = importToolsFem.fill_femresult_mechanical(results, result_set, span)
analysis_object.Member = analysis_object.Member + [results]
if analysis:
analysis_object.Member = analysis_object.Member + [results]
if(FreeCAD.GuiUp):
import FemGui
FemGui.setActiveAnalysis(analysis_object)
if FreeCAD.GuiUp:
if analysis:
import FemGui
FemGui.setActiveAnalysis(analysis_object)
FreeCAD.ActiveDocument.recompute()
else:

View File

@@ -77,17 +77,12 @@ 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]
analysis_object = ObjectsFem.makeAnalysis('Analysis')
analysis_object.Label = analysis_name
else:
if analysis:
analysis_object = analysis
# if properties can be added in FemVTKTools importCfdResult(), this file can be used for CFD workbench
results_name = result_name_prefix + 'results'
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
# workaround for the DisplacementLengths (They should have been calculated by Fem.readResult)
@@ -95,8 +90,8 @@ def importVTK(filename, analysis=None, result_name_prefix=None):
import importToolsFem
result_obj.DisplacementLengths = importToolsFem.calculate_disp_abs(result_obj.DisplacementVectors)
analysis_object.Member = analysis_object.Member + [result_obj]
# FIXME move the ResultMesh in the analysis
if analysis:
analysis_object.Member = analysis_object.Member + [result_obj]
''' seams not used at the moment
filenamebase = '.'.join(filename.split('.')[:-1]) # pattern: filebase_timestamp.vtk

View File

@@ -70,11 +70,7 @@ def import_z88_disp(filename, analysis=None, result_name_prefix=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]
analysis_object = ObjectsFem.makeAnalysis('Analysis')
analysis_object.Label = analysis_name
else:
if analysis:
analysis_object = analysis # see if statement few lines later, if not analysis -> no FemMesh object is created !
for result_set in m['Results']:
@@ -85,11 +81,14 @@ def import_z88_disp(filename, analysis=None, result_name_prefix=None):
results.Mesh = m
break
results = importToolsFem.fill_femresult_mechanical(results, result_set, 0)
analysis_object.Member = analysis_object.Member + [results]
if analysis:
analysis_object.Member = analysis_object.Member + [results]
if(FreeCAD.GuiUp):
import FemGui
FemGui.setActiveAnalysis(analysis_object)
if FreeCAD.GuiUp:
if analysis:
import FemGui
FemGui.setActiveAnalysis(analysis_object)
FreeCAD.ActiveDocument.recompute()
else:
FreeCAD.Console.PrintError('Problem on frd file import. No nodes found in frd file.\n')