[FEM] fix enable editing for all solvers

- currently for Z88 nothing happens when clicking the Edit button in the solver task dialog. The reason is that opening *.txt files was never implemented
- also do this for Elmer
- for Z88 we need to open several file for a proper editing because the solver info is distributed over these files
This commit is contained in:
Uwe
2022-08-04 04:19:55 +02:00
parent 34e45fbcac
commit d53714bc84
3 changed files with 43 additions and 3 deletions

View File

@@ -125,11 +125,14 @@ private:
}
}
if (ext == QLatin1String("inp")) {
if ( (ext == QLatin1String("inp"))
|| (ext == QLatin1String("sif"))
|| (ext == QLatin1String("txt")) ) {
Gui::TextEditor* editor = new Gui::TextEditor();
editor->setWindowIcon(Gui::BitmapFactory().pixmap(":/icons/fem-solver-inp-editor.svg"));
Gui::EditorView* edit = new Gui::EditorView(editor, Gui::getMainWindow());
editor->setSyntaxHighlighter(new FemGui::AbaqusHighlighter(editor));
if (ext == QLatin1String("inp"))
editor->setSyntaxHighlighter(new FemGui::AbaqusHighlighter(editor));
edit->setDisplayName(Gui::EditorView::FileName);
edit->open(fileName);
edit->resize(400, 300);

View File

@@ -28,6 +28,11 @@ __url__ = "https://www.freecadweb.org"
## \addtogroup FEM
# @{
import glob
import os
import FreeCAD
from . import tasks
from .equations import elasticity
from .equations import electrostatic
@@ -39,6 +44,9 @@ from .. import run
from .. import solverbase
from femtools import femutils
if FreeCAD.GuiUp:
import FemGui
def create(doc, name="ElmerSolver"):
return femutils.createObject(
@@ -109,6 +117,15 @@ class Proxy(solverbase.Proxy):
def isSupported(self, eqId):
return eqId in self._EQUATIONS
def editSupported(self):
return True
def edit(self, directory):
pattern = os.path.join(directory, "case.sif")
FreeCAD.Console.PrintMessage("{}\n".format(pattern))
f = glob.glob(pattern)[0]
FemGui.open(f)
class ViewProxy(solverbase.ViewProxy):
"""Proxy for FemSolverElmers View Provider."""

View File

@@ -78,7 +78,27 @@ class Proxy(solverbase.Proxy):
return True
def edit(self, directory):
pattern = os.path.join(directory, "*.txt")
pattern = os.path.join(directory, "z88i1.txt")
FreeCAD.Console.PrintMessage("{}\n".format(pattern))
f = glob.glob(pattern)[0]
FemGui.open(f)
pattern = os.path.join(directory, "z88i2.txt")
FreeCAD.Console.PrintMessage("{}\n".format(pattern))
f = glob.glob(pattern)[0]
FemGui.open(f)
pattern = os.path.join(directory, "z88i5.txt")
FreeCAD.Console.PrintMessage("{}\n".format(pattern))
f = glob.glob(pattern)[0]
FemGui.open(f)
pattern = os.path.join(directory, "z88man.txt")
FreeCAD.Console.PrintMessage("{}\n".format(pattern))
f = glob.glob(pattern)[0]
FemGui.open(f)
pattern = os.path.join(directory, "z88mat.txt")
FreeCAD.Console.PrintMessage("{}\n".format(pattern))
f = glob.glob(pattern)[0]
FemGui.open(f)
pattern = os.path.join(directory, "z88elp.txt")
FreeCAD.Console.PrintMessage("{}\n".format(pattern))
f = glob.glob(pattern)[0]
FemGui.open(f)