FEM: result object refactor, fix frd, vtk, z88 result file import
This commit is contained in:
parent
c13ca92792
commit
b55a7688cc
|
@ -529,7 +529,7 @@ App::DocumentObject* FemVTKTools::readResult(const char* filename, App::Document
|
|||
else
|
||||
{
|
||||
Base::Console().Log("FemResultObject pointer is NULL, trying to get the active object\n");
|
||||
if(obj->getTypeId() == Base::Type::fromName("Fem::FemResultObject"))
|
||||
if(obj->getTypeId() == Base::Type::fromName("Fem::FemResultObjectPython"))
|
||||
result = obj;
|
||||
else
|
||||
{
|
||||
|
|
|
@ -443,7 +443,9 @@ 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'
|
||||
results = FreeCAD.ActiveDocument.addObject('Fem::FemResultObject', results_name)
|
||||
import FemResult
|
||||
results = FemResult.makeFemResult(results_name)
|
||||
#results = FreeCAD.ActiveDocument.addObject('Fem::FemResultObject', results_name)
|
||||
for m in analysis_object.Member:
|
||||
if m.isDerivedFrom("Fem::FemMeshObject"):
|
||||
results.Mesh = m
|
||||
|
|
|
@ -67,7 +67,9 @@ 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'
|
||||
result_obj = FreeCAD.ActiveDocument.addObject('Fem::FemResultObject', results_name)
|
||||
from FemResult import makeFemResult
|
||||
result_obj = makeFemResult(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
|
||||
analysis_object.Member = analysis_object.Member + [result_obj]
|
||||
# FIXME move the ResultMesh in the analysis
|
||||
|
|
|
@ -71,7 +71,9 @@ def import_z88_disp(filename, analysis=None, result_name_prefix=None):
|
|||
|
||||
for result_set in m['Results']:
|
||||
results_name = result_name_prefix + 'results'
|
||||
results = FreeCAD.ActiveDocument.addObject('Fem::FemResultObject', results_name)
|
||||
import FemResult
|
||||
results = FemResult.makeFemResult(results_name)
|
||||
#results = FreeCAD.ActiveDocument.addObject('Fem::FemResultObject', results_name)
|
||||
for m in analysis_object.Member:
|
||||
if m.isDerivedFrom("Fem::FemMeshObject"):
|
||||
results.Mesh = m
|
||||
|
@ -93,21 +95,25 @@ def import_z88_disp(filename, analysis=None, result_name_prefix=None):
|
|||
sum_list = map(sum, zip(*displacement))
|
||||
x_avg, y_avg, z_avg = [i / no_of_values for i in sum_list]
|
||||
|
||||
s_max = max(results.StressValues)
|
||||
s_min = min(results.StressValues)
|
||||
s_avg = sum(results.StressValues) / no_of_values
|
||||
p1_min = min(results.PrincipalMax)
|
||||
p1_avg = sum(results.PrincipalMax) / no_of_values
|
||||
p1_max = max(results.PrincipalMax)
|
||||
p2_min = min(results.PrincipalMed)
|
||||
p2_avg = sum(results.PrincipalMed) / no_of_values
|
||||
p2_max = max(results.PrincipalMed)
|
||||
p3_min = min(results.PrincipalMin)
|
||||
p3_avg = sum(results.PrincipalMin) / no_of_values
|
||||
p3_max = max(results.PrincipalMin)
|
||||
ms_min = min(results.MaxShear)
|
||||
ms_avg = sum(results.MaxShear) / no_of_values
|
||||
ms_max = max(results.MaxShear)
|
||||
# set stats of not imported values to 0
|
||||
s_max = s_min = s_avg = 0
|
||||
p1_min = p1_avg = p1_max = p2_min = p2_avg = p2_max = p3_min = p3_avg = p3_max = 0
|
||||
ms_min = ms_avg = ms_max = 0
|
||||
# s_max = max(results.StressValues)
|
||||
# s_min = min(results.StressValues)
|
||||
# s_avg = sum(results.StressValues) / no_of_values
|
||||
# p1_min = min(results.PrincipalMax)
|
||||
# p1_avg = sum(results.PrincipalMax) / no_of_values
|
||||
# p1_max = max(results.PrincipalMax)
|
||||
# p2_min = min(results.PrincipalMed)
|
||||
# p2_avg = sum(results.PrincipalMed) / no_of_values
|
||||
# p2_max = max(results.PrincipalMed)
|
||||
# p3_min = min(results.PrincipalMin)
|
||||
# p3_avg = sum(results.PrincipalMin) / no_of_values
|
||||
# p3_max = max(results.PrincipalMin)
|
||||
# ms_min = min(results.MaxShear)
|
||||
# ms_avg = sum(results.MaxShear) / no_of_values
|
||||
# ms_max = max(results.MaxShear)
|
||||
|
||||
disp_abs = []
|
||||
for d in displacement:
|
||||
|
|
Loading…
Reference in New Issue
Block a user