From 347ee59f90b83ea4526bc3da5d71c69b1c348cef Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Fri, 15 Mar 2019 21:06:12 +0100 Subject: [PATCH] FEM: inout, read all strain values --- src/Mod/Fem/feminout/importCcxFrdResults.py | 11 ++++++----- src/Mod/Fem/feminout/importToolsFem.py | 7 +++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Mod/Fem/feminout/importCcxFrdResults.py b/src/Mod/Fem/feminout/importCcxFrdResults.py index d4b8dc4ac3..f800e591d3 100644 --- a/src/Mod/Fem/feminout/importCcxFrdResults.py +++ b/src/Mod/Fem/feminout/importCcxFrdResults.py @@ -436,10 +436,10 @@ def read_frd_result(frd_input): strain_1 = float(line[13:25]) strain_2 = float(line[25:37]) strain_3 = float(line[37:49]) - # strain_4 = float(line[49:61]) # Not used in vector - # strain_5 = float(line[61:73]) - # strain_6 = float(line[73:85]) - mode_strain[elem] = FreeCAD.Vector(strain_1, strain_2, strain_3) + strain_4 = float(line[49:61]) + strain_5 = float(line[61:73]) + strain_6 = float(line[73:85]) + mode_strain[elem] = (strain_1, strain_2, strain_3, strain_4, strain_5, strain_6) # Check if we found an equivalent plastic strain section if line[5:7] == "PE": @@ -512,7 +512,8 @@ def read_frd_result(frd_input): node_element_section = False if mode_strain_found: - mode_results['strainv'] = mode_strain + mode_results['strain'] = mode_strain + mode_strain = {} mode_strain_found = False node_element_section = False diff --git a/src/Mod/Fem/feminout/importToolsFem.py b/src/Mod/Fem/feminout/importToolsFem.py index 85506636f6..2bc812f95a 100644 --- a/src/Mod/Fem/feminout/importToolsFem.py +++ b/src/Mod/Fem/feminout/importToolsFem.py @@ -255,8 +255,11 @@ def fill_femresult_mechanical(res_obj, result_set): .format(res_obj.NodeNumbers, len(res_obj.StressValues))) # fill res_obj.StrainVectors if they exist - if 'strainv' in result_set: - strainv = result_set['strainv'] + if 'strain' in result_set: + strain = result_set['strain'] + strainv = {} + for i, values_E in enumerate(strain.values()): # values_E .. straintuple .. (Exx, Eyy, Ezz, Exy, Eyz, Ezx) + strainv[i] = (FreeCAD.Vector(values_E[0], values_E[1], values_E[2])) res_obj.StrainVectors = list(map((lambda x: x * scale), strainv.values())) # calculate von Mises, principal and max Shear and fill them in res_obj