diff --git a/src/Mod/Fem/App/FemResultObject.cpp b/src/Mod/Fem/App/FemResultObject.cpp index 218d1a51c..59432a353 100644 --- a/src/Mod/Fem/App/FemResultObject.cpp +++ b/src/Mod/Fem/App/FemResultObject.cpp @@ -44,6 +44,7 @@ FemResultObject::FemResultObject() ADD_PROPERTY_TYPE(StressValues,(0), "Fem",Prop_None,"List of Von Misses strass values"); ADD_PROPERTY_TYPE(Mesh,(0), "General",Prop_None,"Link to the corrresponding mesh"); ADD_PROPERTY_TYPE(Eigenmode,(0), "Fem",Prop_None,"Number of the eigenmode"); + ADD_PROPERTY_TYPE(EigenmodeFrequency,(0), "Fem",Prop_None,"Frequency of the eigenmode"); } FemResultObject::~FemResultObject() diff --git a/src/Mod/Fem/App/FemResultObject.h b/src/Mod/Fem/App/FemResultObject.h index a6acdf397..66b860487 100644 --- a/src/Mod/Fem/App/FemResultObject.h +++ b/src/Mod/Fem/App/FemResultObject.h @@ -55,6 +55,8 @@ public: App::PropertyFloatList StressValues; /// Eigenmode number App::PropertyInteger Eigenmode; + /// Eigenmode frequency + App::PropertyFloat EigenmodeFrequency; /// returns the type name of the ViewProvider virtual const char* getViewProviderName(void) const { diff --git a/src/Mod/Fem/FemTools.py b/src/Mod/Fem/FemTools.py index 4887eb0df..15d2e6131 100644 --- a/src/Mod/Fem/FemTools.py +++ b/src/Mod/Fem/FemTools.py @@ -422,6 +422,17 @@ class FemTools(QtCore.QRunnable, QtCore.QObject): else: raise Exception('FEM: No results found at {}!'.format(frd_result_file)) + import ccxDatReader + dat_result_file = os.path.splitext(self.inp_file_name)[0] + '.dat' + if os.path.isfile(dat_result_file): + mode_frequencies = ccxDatReader.import_dat(dat_result_file, self.analysis) + else: + raise Exception('FEM: No .dat results found at {}!'.format(dat_result_file)) + for m in self.analysis.Member: + if m.isDerivedFrom("Fem::FemResultObject") and m.Eigenmode > 0: + m.EigenmodeFrequency = mode_frequencies[m.Eigenmode - 1]['frequency'] + m.setEditorMode("EigenmodeFrequency", 1) + def use_results(self, results_name=None): for m in self.analysis.Member: if m.isDerivedFrom("Fem::FemResultObject") and m.Name == results_name: