FEM: calculix dat result text object, move into analysis

This commit is contained in:
Bernd Hahnebach
2021-06-16 14:25:23 +02:00
parent 05d9feb511
commit 5f8b7d2f85
2 changed files with 18 additions and 10 deletions

View File

@@ -44,6 +44,7 @@
#include <Mod/Fem/App/FemSetObject.h>
#include <Mod/Fem/App/FemConstraint.h>
#include <App/MaterialObject.h>
#include <App/TextDocument.h>
#include "TaskDlgAnalysis.h"
@@ -205,6 +206,8 @@ bool ViewProviderFemAnalysis::canDragObject(App::DocumentObject* obj) const
return true;
else if (obj->getTypeId().isDerivedFrom(App::MaterialObject::getClassTypeId()))
return true;
else if (obj->getTypeId().isDerivedFrom(App::TextDocument::getClassTypeId()))
return true;
#ifdef FC_USE_VTK
else if (obj->getTypeId().isDerivedFrom(Fem::FemPostObject::getClassTypeId()))
return true;

View File

@@ -806,21 +806,17 @@ class FemToolsCcx(QtCore.QRunnable, QtCore.QObject):
"""
import feminout.importCcxDatResults as importCcxDatResults
dat_result_file = os.path.splitext(self.inp_file_name)[0] + ".dat"
mode_frequencies = None
dat_content = None
if os.path.isfile(dat_result_file):
mode_frequencies = importCcxDatResults.import_dat(dat_result_file, self.analysis)
obj = FreeCAD.ActiveDocument.addObject("App::TextDocument", "ccx dat file")
# TODO this object should be inside analysis or under result object
# self.result_object.addObject(obj)
file = open(dat_result_file, "r")
obj.Text = file.read()
file.close()
obj.setPropertyStatus("Text", "ReadOnly") # set property editor readonly
if FreeCAD.GuiUp:
obj.ViewObject.ReadOnly = True # set editor view readonly
dat_file = open(dat_result_file, "r")
dat_content = dat_file.read()
dat_file.close()
else:
raise Exception("FEM: No .dat results found at {}!".format(dat_result_file))
raise Exception("FEM: Result file *.dat not found at {}!".format(dat_result_file))
if mode_frequencies:
# print(mode_frequencies)
@@ -830,6 +826,15 @@ class FemToolsCcx(QtCore.QRunnable, QtCore.QObject):
if m.Eigenmode == mf["eigenmode"]:
m.EigenmodeFrequency = mf["frequency"]
if dat_content:
# print(dat_content)
dat_text_obj = self.analysis.Document.addObject("App::TextDocument", "ccx_dat_file")
dat_text_obj.Text = dat_content
dat_text_obj.setPropertyStatus("Text", "ReadOnly") # set property editor readonly
if FreeCAD.GuiUp:
dat_text_obj.ViewObject.ReadOnly = True # set editor view readonly
self.analysis.addObject(dat_text_obj)
class CcxTools(FemToolsCcx):