FEM: Add EigenmodeFrequency property to result object

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
This commit is contained in:
Przemo Firszt 2015-10-31 11:45:13 +00:00
parent 9531c0b088
commit a85c68aa65
3 changed files with 14 additions and 0 deletions

View File

@ -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()

View File

@ -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 {

View File

@ -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: