diff --git a/src/Mod/Fem/Gui/ViewProviderAnalysis.cpp b/src/Mod/Fem/Gui/ViewProviderAnalysis.cpp index dfd774160a..0c70f56c1e 100644 --- a/src/Mod/Fem/Gui/ViewProviderAnalysis.cpp +++ b/src/Mod/Fem/Gui/ViewProviderAnalysis.cpp @@ -44,6 +44,7 @@ #include #include #include +#include #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; diff --git a/src/Mod/Fem/femtools/ccxtools.py b/src/Mod/Fem/femtools/ccxtools.py index 84dfea1b9c..6917e2931d 100644 --- a/src/Mod/Fem/femtools/ccxtools.py +++ b/src/Mod/Fem/femtools/ccxtools.py @@ -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):