From 6e0e7580fd4933710ea2f4e806d98f6a7657d6f5 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Sat, 16 May 2020 07:39:06 +0200 Subject: [PATCH] FEM: add modules to migrate old FEM app and gui objects --- src/Mod/Fem/CMakeLists.txt | 2 + src/Mod/Fem/Init.py | 8 + src/Mod/Fem/InitGui.py | 8 + src/Mod/Fem/femtools/migrate_app.py | 316 ++++++++++++++++++++++++++++ src/Mod/Fem/femtools/migrate_gui.py | 315 +++++++++++++++++++++++++++ 5 files changed, 649 insertions(+) create mode 100644 src/Mod/Fem/femtools/migrate_app.py create mode 100644 src/Mod/Fem/femtools/migrate_gui.py diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index 304ee9d7e3..74e164081a 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -229,6 +229,8 @@ SET(FemTools_SRCS femtools/femutils.py femtools/geomtools.py femtools/membertools.py + femtools/migrate_app.py + femtools/migrate_gui.py femtools/tokrules.py ) diff --git a/src/Mod/Fem/Init.py b/src/Mod/Fem/Init.py index eb61ae03b7..7362199c93 100644 --- a/src/Mod/Fem/Init.py +++ b/src/Mod/Fem/Init.py @@ -40,8 +40,16 @@ __author__ = "Juergen Riegel, Bernd Hahnebach" __url__ = "http://www.freecadweb.org" # imports to get flake8 quired +import sys import FreeCAD +# needed imports +from femtools.migrate_app import FemMigrateApp + + +# migrate old FEM App objects +sys.meta_path.append(FemMigrateApp()) + # add FEM unit tests FreeCAD.__unit_test__ += ["TestFem"] diff --git a/src/Mod/Fem/InitGui.py b/src/Mod/Fem/InitGui.py index 80e02cd595..51dd1f9aa0 100644 --- a/src/Mod/Fem/InitGui.py +++ b/src/Mod/Fem/InitGui.py @@ -38,10 +38,18 @@ __author__ = "Juergen Riegel, Bernd Hahnebach" __url__ = "http://www.freecadweb.org" # imports to get flake8 quired +import sys import FreeCAD import FreeCADGui from FreeCADGui import Workbench +# needed imports +from femtools.migrate_gui import FemMigrateGui + + +# migrate old FEM Gui objects +sys.meta_path.append(FemMigrateGui()) + class FemWorkbench(Workbench): "Fem workbench object" diff --git a/src/Mod/Fem/femtools/migrate_app.py b/src/Mod/Fem/femtools/migrate_app.py new file mode 100644 index 0000000000..a38dc4fd93 --- /dev/null +++ b/src/Mod/Fem/femtools/migrate_app.py @@ -0,0 +1,316 @@ +# *************************************************************************** +# * Copyright (c) 2020 Bernd Hahnebach * +# * * +# * This file is part of the FreeCAD CAx development system. * +# * * +# * This program is free software; you can redistribute it and/or modify * +# * it under the terms of the GNU Lesser General Public License (LGPL) * +# * as published by the Free Software Foundation; either version 2 of * +# * the License, or (at your option) any later version. * +# * for detail see the LICENCE text file. * +# * * +# * This program is distributed in the hope that it will be useful, * +# * but WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# * GNU Library General Public License for more details. * +# * * +# * You should have received a copy of the GNU Library General Public * +# * License along with this program; if not, write to the Free Software * +# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# * USA * +# * * +# *************************************************************************** +""" Class and methods to migrate old FEM App objects + +TODO more information +""" + +__title__ = "migrate app" +__author__ = "Bernd Hahnebach" +__url__ = "http://www.freecadweb.org" + + +class FemMigrateApp(object): + + def find_module(self, fullname, path): + if fullname == "PyObjects": + return self + + if fullname == "PyObjects._FemConstraintBodyHeatSource": + return self + if fullname == "PyObjects._FemConstraintElectrostaticPotential": + return self + if fullname == "PyObjects._FemConstraintFlowVelocity": + return self + if fullname == "PyObjects._FemConstraintInitialFlowVelocity": + return self + if fullname == "PyObjects._FemConstraintSelfWeight": + return self + if fullname == "PyObjects._FemElementFluid1D": + return self + if fullname == "PyObjects._FemElementGeometry1D": + return self + if fullname == "PyObjects._FemElementGeometry2D": + return self + if fullname == "PyObjects._FemElementRotation1D": + return self + if fullname == "PyObjects._FemMaterial": + return self + if fullname == "PyObjects._FemMaterialMechanicalNonlinear": + return self + if fullname == "PyObjects._FemMeshBoundaryLayer": + return self + if fullname == "PyObjects._FemMeshGmsh": + return self + if fullname == "PyObjects._FemMeshGroup": + return self + if fullname == "PyObjects._FemMeshRegion": + return self + if fullname == "PyObjects._FemMeshResult": + return self + if fullname == "PyObjects._FemResultMechanical": + return self + if fullname == "PyObjects._FemSolverCalculix": + return self + + if fullname == "PyObjects._FemBeamSection": + return self + if fullname == "PyObjects._FemFluidSection": + return self + if fullname == "PyObjects._FemShellThickness": + return self + + if fullname == "_FemBeamSection": + return self + if fullname == "_FemConstraintSelfWeight": + return self + if fullname == "_FemMaterial": + return self + if fullname == "_FemMaterialMechanicalNonlinear": + return self + if fullname == "_FemMeshGmsh": + return self + if fullname == "_FemMeshGroup": + return self + if fullname == "_FemMeshRegion": + return self + if fullname == "_FemResultMechanical": + return self + if fullname == "_FemShellThickness": + return self + if fullname == "_FemSolverCalculix": + return self + if fullname == "_FemSolverZ88": + return self + + if fullname == "_FemMechanicalResult": + return self + if fullname == "FemResult": + return self + if fullname == "_MechanicalMaterial": + return self + + if fullname == "FemBeamSection": + return self + if fullname == "FemShellThickness": + return self + if fullname == "MechanicalMaterial": + return self + return None + + def create_module(self, spec): + return None + + def exec_module(self, module): + return self.load_module(module) + + def load_module(self, module): + if module.__name__ == "PyObjects": + module.__path__ = "PyObjects" + + if module.__name__ == "PyObjects._FemConstraintBodyHeatSource": + import femobjects._FemConstraintBodyHeatSource + module._FemConstraintBodyHeatSource = femobjects._FemConstraintBodyHeatSource.Proxy + if module.__name__ == "PyObjects._FemConstraintElectrostaticPotential": + import femobjects._FemConstraintElectrostaticPotential + module._FemConstraintElectrostaticPotential = femobjects._FemConstraintElectrostaticPotential.Proxy + if module.__name__ == "PyObjects._FemConstraintFlowVelocity": + import femobjects._FemConstraintFlowVelocity + module._FemConstraintFlowVelocity = femobjects._FemConstraintFlowVelocity.Proxy + if module.__name__ == "PyObjects._FemConstraintInitialFlowVelocity": + import femobjects._FemConstraintInitialFlowVelocity + module._FemConstraintInitialFlowVelocity = femobjects._FemConstraintInitialFlowVelocity.Proxy + if module.__name__ == "PyObjects._FemConstraintSelfWeight": + import femobjects._FemConstraintSelfWeight + module._FemConstraintSelfWeight = femobjects._FemConstraintSelfWeight._FemConstraintSelfWeight + if module.__name__ == "PyObjects._FemElementFluid1D": + import femobjects._FemElementFluid1D + module._FemElementFluid1D = femobjects._FemElementFluid1D._FemElementFluid1D + if module.__name__ == "PyObjects._FemElementGeometry1D": + import femobjects._FemElementGeometry1D + module._FemElementGeometry1D = femobjects._FemElementGeometry1D._FemElementGeometry1D + if module.__name__ == "PyObjects._FemElementGeometry2D": + import femobjects._FemElementGeometry2D + module._FemElementGeometry2D = femobjects._FemElementGeometry2D._FemElementGeometry2D + if module.__name__ == "PyObjects._FemElementRotation1D": + import femobjects._FemElementRotation1D + module._FemElementRotation1D = femobjects._FemElementRotation1D._FemElementRotation1D + if module.__name__ == "PyObjects._FemMaterial": + import femobjects._FemMaterial + module._FemMaterial = femobjects._FemMaterial._FemMaterial + if module.__name__ == "PyObjects._FemMaterialMechanicalNonlinear": + import femobjects._FemMaterialMechanicalNonlinear + module._FemMaterialMechanicalNonlinear = femobjects._FemMaterialMechanicalNonlinear._FemMaterialMechanicalNonlinear + if module.__name__ == "PyObjects._FemMeshBoundaryLayer": + import femobjects._FemMeshBoundaryLayer + module._FemMeshBoundaryLayer = femobjects._FemMeshBoundaryLayer._FemMeshBoundaryLayer + if module.__name__ == "PyObjects._FemMeshGmsh": + import femobjects._FemMeshGmsh + module._FemMeshGmsh = femobjects._FemMeshGmsh._FemMeshGmsh + if module.__name__ == "PyObjects._FemMeshGroup": + import femobjects._FemMeshGroup + module._FemMeshGroup = femobjects._FemMeshGroup._FemMeshGroup + if module.__name__ == "PyObjects._FemMeshRegion": + import femobjects._FemMeshRegion + module._FemMeshRegion = femobjects._FemMeshRegion._FemMeshRegion + if module.__name__ == "PyObjects._FemMeshResult": + import femobjects._FemMeshResult + module._FemMeshResult = femobjects._FemMeshResult._FemMeshResult + if module.__name__ == "PyObjects._FemResultMechanical": + import femobjects._FemResultMechanical + module._FemResultMechanical = femobjects._FemResultMechanical._FemResultMechanical + if module.__name__ == "PyObjects._FemSolverCalculix": + import femobjects._FemSolverCalculix + module._FemSolverCalculix = femobjects._FemSolverCalculix._FemSolverCalculix + + if module.__name__ == "PyObjects._FemBeamSection": + import femobjects._FemElementGeometry1D + module._FemBeamSection = femobjects._FemElementGeometry1D._FemElementGeometry1D + if module.__name__ == "PyObjects._FemFluidSection": + import femobjects._FemElementFluid1D + module._FemFluidSection = femobjects._FemElementFluid1D._FemElementFluid1D + if module.__name__ == "PyObjects._FemShellThickness": + import femobjects._FemElementGeometry2D + module._FemShellThickness = femobjects._FemElementGeometry2D._FemElementGeometry2D + + if module.__name__ == "_FemBeamSection": + import femobjects._FemElementGeometry1D + module._FemBeamSection = femobjects._FemElementGeometry1D._FemElementGeometry1D + if module.__name__ == "_FemConstraintSelfWeight": + import femobjects._FemConstraintSelfWeight + module._FemConstraintSelfWeight = femobjects._FemConstraintSelfWeight._FemConstraintSelfWeight + if module.__name__ == "_FemMaterial": + import femobjects._FemMaterial + module._FemMaterial = femobjects._FemMaterial._FemMaterial + if module.__name__ == "_FemMaterialMechanicalNonlinear": + import femobjects._FemMaterialMechanicalNonlinear + module._FemMaterialMechanicalNonlinear = femobjects._FemMaterialMechanicalNonlinear._FemMaterialMechanicalNonlinear + if module.__name__ == "_FemMeshGmsh": + import femobjects._FemMeshGmsh + module._FemMeshGmsh = femobjects._FemMeshGmsh._FemMeshGmsh + if module.__name__ == "_FemMeshGroup": + import femobjects._FemMeshGroup + module._FemMeshGroup = femobjects._FemMeshGroup._FemMeshGroup + if module.__name__ == "_FemMeshRegion": + import femobjects._FemMeshRegion + module._FemMeshRegion = femobjects._FemMeshRegion._FemMeshRegion + if module.__name__ == "_FemResultMechanical": + import femobjects._FemResultMechanical + module._FemResultMechanical = femobjects._FemResultMechanical._FemResultMechanical + if module.__name__ == "_FemShellThickness": + import femobjects._FemElementGeometry2D + module._FemShellThickness = femobjects._FemElementGeometry2D._FemElementGeometry2D + if module.__name__ == "_FemSolverCalculix": + import femobjects._FemSolverCalculix + module._FemSolverCalculix = femobjects._FemSolverCalculix._FemSolverCalculix + if module.__name__ == "_FemSolverZ88": + import femsolver.z88.solver + module._FemSolverZ88 = femsolver.z88.solver.Proxy + + if module.__name__ == "_FemMechanicalResult": + import femobjects._FemResultMechanical + module._FemMechanicalResult = femobjects._FemResultMechanical._FemResultMechanical + if module.__name__ == "FemResult": + import femobjects._FemResultMechanical + module.FemResult = femobjects._FemResultMechanical._FemResultMechanical + if module.__name__ == "_MechanicalMaterial": + import femobjects._FemMaterial + module._MechanicalMaterial = femobjects._FemMaterial._FemMaterial + + if module.__name__ == "FemBeamSection": + import femobjects._FemElementGeometry1D + module._FemBeamSection = femobjects._FemElementGeometry1D._FemElementGeometry1D + if module.__name__ == "FemShellThickness": + import femobjects._FemElementGeometry2D + module._FemShellThickness = femobjects._FemElementGeometry2D._FemElementGeometry2D + if module.__name__ == "MechanicalMaterial": + import femobjects._FemMaterial + module._MechanicalMaterial = femobjects._FemMaterial._FemMaterial + + return None + + +""" +possible entries in the old files: +(the class name in the old file does not matter, we ever only had one class per module) + +third big moving +from PyObjects to femobjects, following the parent commit +https://github.com/berndhahnebach/FreeCAD_bhb/tree/07ae0e56c4/src/Mod/Fem/PyObjects +module="PyObjects._FemConstraintBodyHeatSource" +module="PyObjects._FemConstraintElectrostaticPotential" +module="PyObjects._FemConstraintFlowVelocity" +module="PyObjects._FemConstraintInitialFlowVelocity" +module="PyObjects._FemConstraintSelfWeight" +module="PyObjects._FemElementFluid1D" +module="PyObjects._FemElementGeometry1D" +module="PyObjects._FemElementGeometry2D" +module="PyObjects._FemElementRotation1D" +module="PyObjects._FemMaterial" +module="PyObjects._FemMaterialMechanicalNonlinear" +module="PyObjects._FemMeshBoundaryLayer" +module="PyObjects._FemMeshGmsh" +module="PyObjects._FemMeshGroup" +module="PyObjects._FemMeshRegion" +module="PyObjects._FemMeshResult" +module="PyObjects._FemResultMechanical" +module="PyObjects._FemSolverCalculix" + +renamed between the second and third big moveings +module="PyObjects._FemBeamSection" +module="PyObjects._FemFluidSection" +module="PyObjects._FemShellThickness" + +second big moveing +into PyObjects, following the parent commit +https://github.com/berndhahnebach/FreeCAD_bhb/tree/7f884e8bff/src/Mod/Fem +module="_FemBeamSection" +module="_FemConstraintSelfWeight" +module="_FemMaterial" +module="_FemMaterialMechanicalNonlinear." +module="_FemMeshGmsh" +module="_FemMeshGroup" +module="_FemMeshRegion" +module="_FemResultMechanical" +module="_FemShellThickness" +module="_FemSolverCalculix" +module="_FemSolverZ88" + +renamed between the first and second big moveings +module="_FemMechanicalResult" +module="FemResult" +module="_MechanicalMaterial" + +first big moving +split modules from one module into make, obj class, vp class, command +new obj class module names had a _ +following the parent commit of the first split commit +https://github.com/berndhahnebach/FreeCAD_bhb/tree/c3328d6b4e/src/Mod/Fem +in this modules there where object class and viewprovider class together +module="FemBeamSection" +module="FemShellThickness" +module="MechanicalAnalysis" # TODO +module="MechanicalMaterial" + + +""" diff --git a/src/Mod/Fem/femtools/migrate_gui.py b/src/Mod/Fem/femtools/migrate_gui.py new file mode 100644 index 0000000000..9036ec9cb3 --- /dev/null +++ b/src/Mod/Fem/femtools/migrate_gui.py @@ -0,0 +1,315 @@ +# *************************************************************************** +# * Copyright (c) 2020 Bernd Hahnebach * +# * * +# * This file is part of the FreeCAD CAx development system. * +# * * +# * This program is free software; you can redistribute it and/or modify * +# * it under the terms of the GNU Lesser General Public License (LGPL) * +# * as published by the Free Software Foundation; either version 2 of * +# * the License, or (at your option) any later version. * +# * for detail see the LICENCE text file. * +# * * +# * This program is distributed in the hope that it will be useful, * +# * but WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# * GNU Library General Public License for more details. * +# * * +# * You should have received a copy of the GNU Library General Public * +# * License along with this program; if not, write to the Free Software * +# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# * USA * +# * * +# *************************************************************************** +""" Class and methods to migrate old FEM Gui objects + +TODO more information +""" + +__title__ = "migrate gui" +__author__ = "Bernd Hahnebach" +__url__ = "http://www.freecadweb.org" + + +class FemMigrateGui(object): + + def find_module(self, fullname, path): + if fullname == "PyGui": + return self + + if fullname == "PyGui._ViewProviderFemConstraintBodyHeatSource": + return self + if fullname == "PyGui._ViewProviderFemConstraintElectrostaticPotential": + return self + if fullname == "PyGui._ViewProviderFemConstraintFlowVelocity": + return self + if fullname == "PyGui._ViewProviderFemConstraintSelfWeight": + return self + if fullname == "PyGui._ViewProviderFemElementFluid1D": + return self + if fullname == "PyGui._ViewProviderFemElementGeometry1D": + return self + if fullname == "PyGui._ViewProviderFemElementGeometry2D": + return self + if fullname == "PyGui._ViewProviderFemElementRotation1D": + return self + if fullname == "PyGui._ViewProviderFemMaterial": + return self + if fullname == "PyGui._ViewProviderFemMaterialMechanicalNonlinear": + return self + if fullname == "PyGui._ViewProviderFemMeshBoundaryLayer": + return self + if fullname == "PyGui._ViewProviderFemMeshGmsh": + return self + if fullname == "PyGui._ViewProviderFemMeshGroup": + return self + if fullname == "PyGui._ViewProviderFemMeshRegion": + return self + if fullname == "PyGui._ViewProviderFemMeshResult": + return self + if fullname == "PyGui._ViewProviderFemResultMechanical": + return self + if fullname == "PyGui._ViewProviderFemSolverCalculix": + return self + + if fullname == "PyGui._ViewProviderFemBeamSection": + return self + if fullname == "PyGui._ViewProviderFemFluidSection": + return self + if fullname == "PyGui._ViewProviderFemShellThickness": + return self + + if fullname == "_ViewProviderFemBeamSection": + return self + if fullname == "_FemConstraintSelfWeight": + return self + if fullname == "_ViewProviderFemMaterial": + return self + if fullname == "_ViewProviderFemMaterialMechanicalNonlinear": + return self + if fullname == "_ViewProviderFemMeshGmsh": + return self + if fullname == "_ViewProviderFemMeshGroup": + return self + if fullname == "_ViewProviderFemMeshRegion": + return self + if fullname == "_ViewProviderFemResultMechanical": + return self + if fullname == "_ViewProviderFemShellThickness": + return self + if fullname == "_ViewProviderFemSolverCalculix": + return self + if fullname == "_ViewProviderFemSolverZ88": + return self + + if fullname == "_ViewProviderFemMechanicalResult": + return self + if fullname == "ViewProviderFemResult": + return self + if fullname == "_ViewProviderMechanicalMaterial": + return self + + if fullname == "FemBeamSection": + return self + if fullname == "FemShellThickness": + return self + if fullname == "MechanicalMaterial": + return self + + return None + + def create_module(self, spec): + return None + + def exec_module(self, module): + return self.load_module(module) + + def load_module(self, module): + if module.__name__ == "PyGui": + module.__path__ = "PyGui" + + if module.__name__ == "PyGui._ViewProviderFemConstraintBodyHeatSource": + import femguiobjects._ViewProviderFemConstraintBodyHeatSource + module._ViewProviderFemConstraintBodyHeatSource = femguiobjects._ViewProviderFemConstraintBodyHeatSource.ViewProxy + if module.__name__ == "PyGui._ViewProviderFemConstraintElectrostaticPotential": + import femguiobjects._ViewProviderFemConstraintElectrostaticPotential + module._ViewProviderFemConstraintElectrostaticPotential = femguiobjects._ViewProviderFemConstraintElectrostaticPotential.ViewProxy + if module.__name__ == "PyGui._ViewProviderFemConstraintFlowVelocity": + import femguiobjects._ViewProviderFemConstraintFlowVelocity + module._ViewProviderFemConstraintFlowVelocity = femguiobjects._ViewProviderFemConstraintFlowVelocity.ViewProxy + if module.__name__ == "PyGui._ViewProviderFemConstraintInitialFlowVelocity": + import femguiobjects._ViewProviderFemConstraintInitialFlowVelocity + module._ViewProviderFemConstraintInitialFlowVelocity = femguiobjects._ViewProviderFemConstraintInitialFlowVelocity.ViewProxy + if module.__name__ == "PyGui._ViewProviderFemConstraintSelfWeight": + import femguiobjects._ViewProviderFemConstraintSelfWeight + module._ViewProviderFemConstraintSelfWeight = femguiobjects._ViewProviderFemConstraintSelfWeight._ViewProviderFemConstraintSelfWeight + if module.__name__ == "PyGui._ViewProviderFemElementFluid1D": + import femguiobjects._ViewProviderFemElementFluid1D + module._ViewProviderFemElementFluid1D = femguiobjects._ViewProviderFemElementFluid1D._ViewProviderFemElementFluid1D + if module.__name__ == "PyGui._ViewProviderFemElementGeometry1D": + import femguiobjects._ViewProviderFemElementGeometry1D + module._ViewProviderFemElementGeometry1D = femguiobjects._ViewProviderFemElementGeometry1D._ViewProviderFemElementGeometry1D + if module.__name__ == "PyGui._ViewProviderFemElementGeometry2D": + import femguiobjects._ViewProviderFemElementGeometry2D + module._ViewProviderFemElementGeometry2D = femguiobjects._ViewProviderFemElementGeometry2D._ViewProviderFemElementGeometry2D + if module.__name__ == "PyGui._ViewProviderFemElementRotation1D": + import femguiobjects._ViewProviderFemElementRotation1D + module._ViewProviderFemElementRotation1D = femguiobjects._ViewProviderFemElementRotation1D._ViewProviderFemElementRotation1D + if module.__name__ == "PyGui._ViewProviderFemMaterial": + import femguiobjects._ViewProviderFemMaterial + module._ViewProviderFemMaterial = femguiobjects._ViewProviderFemMaterial._ViewProviderFemMaterial + if module.__name__ == "PyGui._ViewProviderFemMaterialMechanicalNonlinear": + import femguiobjects._ViewProviderFemMaterialMechanicalNonlinear + module._ViewProviderFemMaterialMechanicalNonlinear = femguiobjects._ViewProviderFemMaterialMechanicalNonlinear._ViewProviderFemMaterialMechanicalNonlinear + if module.__name__ == "PyGui._ViewProviderFemMeshBoundaryLayer": + import femguiobjects._ViewProviderFemMeshBoundaryLayer + module._ViewProviderFemMeshBoundaryLayer = femguiobjects._ViewProviderFemMeshBoundaryLayer._ViewProviderFemMeshBoundaryLayer + if module.__name__ == "PyGui._ViewProviderFemMeshGmsh": + import femguiobjects._ViewProviderFemMeshGmsh + module._ViewProviderFemMeshGmsh = femguiobjects._ViewProviderFemMeshGmsh._ViewProviderFemMeshGmsh + if module.__name__ == "PyGui._ViewProviderFemMeshGroup": + import femguiobjects._ViewProviderFemMeshGroup + module._ViewProviderFemMeshGroup = femguiobjects._ViewProviderFemMeshGroup._ViewProviderFemMeshGroup + if module.__name__ == "PyGui._ViewProviderFemMeshRegion": + import femguiobjects._ViewProviderFemMeshRegion + module._ViewProviderFemMeshRegion = femguiobjects._ViewProviderFemMeshRegion._ViewProviderFemMeshRegion + if module.__name__ == "PyGui._ViewProviderFemMeshResult": + import femguiobjects._ViewProviderFemMeshResult + module._ViewProviderFemMeshResult = femguiobjects._ViewProviderFemMeshResult._ViewProviderFemMeshResult + if module.__name__ == "PyGui._ViewProviderFemResultMechanical": + import femguiobjects._ViewProviderFemResultMechanical + module._ViewProviderFemResultMechanical = femguiobjects._ViewProviderFemResultMechanical._ViewProviderFemResultMechanical + if module.__name__ == "PyGui._ViewProviderFemSolverCalculix": + import femguiobjects._ViewProviderFemSolverCalculix + module._ViewProviderFemSolverCalculix = femguiobjects._ViewProviderFemSolverCalculix._ViewProviderFemSolverCalculix + + if module.__name__ == "PyGui._ViewProviderFemBeamSection": + import femguiobjects._ViewProviderFemElementGeometry1D + module._ViewProviderFemBeamSection = femguiobjects._ViewProviderFemElementGeometry1D._ViewProviderFemElementGeometry1D + if module.__name__ == "PyGui._ViewProviderFemFluidSection": + import femguiobjects._ViewProviderFemElementFluid1D + module._ViewProviderFemFluidSection = femguiobjects._ViewProviderFemElementFluid1D._ViewProviderFemElementFluid1D + if module.__name__ == "PyGui._ViewProviderFemShellThickness": + import femguiobjects._ViewProviderFemElementGeometry2D + module._ViewProviderFemShellThickness = femguiobjects._ViewProviderFemElementGeometry2D._ViewProviderFemElementGeometry2D + + if module.__name__ == "_ViewProviderFemBeamSection": + import femguiobjects._ViewProviderFemElementGeometry1D + module._ViewProviderFemBeamSection = femguiobjects._ViewProviderFemElementGeometry1D._ViewProviderFemElementGeometry1D + if module.__name__ == "_ViewProviderFemConstraintSelfWeight": + import femguiobjects._ViewProviderFemConstraintSelfWeight + module._ViewProviderFemConstraintSelfWeight = femguiobjects._ViewProviderFemConstraintSelfWeight._ViewProviderFemConstraintSelfWeight + if module.__name__ == "_ViewProviderFemMaterial": + import femguiobjects._ViewProviderFemMaterial + module._ViewProviderFemMaterial = femguiobjects._ViewProviderFemMaterial._ViewProviderFemMaterial + if module.__name__ == "_ViewProviderFemMaterialMechanicalNonlinear": + import femguiobjects._ViewProviderFemMaterialMechanicalNonlinear + module._ViewProviderFemMaterialMechanicalNonlinear = femguiobjects._ViewProviderFemMaterialMechanicalNonlinear._ViewProviderFemMaterialMechanicalNonlinear + if module.__name__ == "_ViewProviderFemMeshGmsh": + import femguiobjects._ViewProviderFemMeshGmsh + module._ViewProviderFemMeshGmsh = femguiobjects._ViewProviderFemMeshGmsh._ViewProviderFemMeshGmsh + if module.__name__ == "_ViewProviderFemMeshGroup": + import femguiobjects._ViewProviderFemMeshGroup + module._ViewProviderFemMeshGroup = femguiobjects._ViewProviderFemMeshGroup._ViewProviderFemMeshGroup + if module.__name__ == "_ViewProviderFemMeshRegion": + import femguiobjects._ViewProviderFemMeshRegion + module._ViewProviderFemMeshRegion = femguiobjects._ViewProviderFemMeshRegion._ViewProviderFemMeshRegion + if module.__name__ == "_ViewProviderFemResultMechanical": + import femguiobjects._ViewProviderFemResultMechanical + module._ViewProviderFemResultMechanical = femguiobjects._ViewProviderFemResultMechanical._ViewProviderFemResultMechanical + if module.__name__ == "_ViewProviderFemShellThickness": + import femguiobjects._ViewProviderFemElementGeometry2D + module._ViewProviderFemShellThickness = femguiobjects._ViewProviderFemElementGeometry2D._ViewProviderFemElementGeometry2D + if module.__name__ == "_ViewProviderFemSolverCalculix": + import femguiobjects._ViewProviderFemSolverCalculix + module._ViewProviderFemSolverCalculix = femguiobjects._ViewProviderFemSolverCalculix._ViewProviderFemSolverCalculix + if module.__name__ == "_ViewProviderFemSolverZ88": + import femsolver.z88.solver + module._ViewProviderFemSolverZ88 = femsolver.z88.solver.ViewProxy + + if module.__name__ == "_ViewProviderFemMechanicalResult": + import femguiobjects._ViewProviderFemResultMechanical + module._ViewProviderFemMechanicalResult = femguiobjects._ViewProviderFemResultMechanical._ViewProviderFemResultMechanical + if module.__name__ == "ViewProviderFemResult": + import femguiobjects._ViewProviderFemResultMechanical + module.ViewProviderFemResult = femguiobjects._ViewProviderFemResultMechanical._ViewProviderFemResultMechanical + if module.__name__ == "_ViewProviderMechanicalMaterial": + import femguiobjects._ViewProviderFemMaterial + module._ViewProviderMechanicalMaterial = femguiobjects._ViewProviderFemMaterial._ViewProviderFemMaterial + + if module.__name__ == "FemBeamSection": + import femguiobjects._ViewProviderFemElementGeometry1D + module._ViewProviderFemBeamSection = femguiobjects._ViewProviderFemElementGeometry1D._ViewProviderFemElementGeometry1D + if module.__name__ == "FemShellThickness": + import femguiobjects._ViewProviderFemElementGeometry2D + module._ViewProviderFemShellThickness = femguiobjects._ViewProviderFemElementGeometry2D._ViewProviderFemElementGeometry2D + if module.__name__ == "MechanicalMaterial": + import femguiobjects._ViewProviderFemMaterial + module._ViewProviderMechanicalMaterial = femguiobjects._ViewProviderFemMaterial._ViewProviderFemMaterial + + return None + + +""" +possible entries in the old files: +(the class name in the old file does not matter, we ever only had one class per module) + +third big moving +from PyGui to femguiobjects, following the parent commit +https://github.com/berndhahnebach/FreeCAD_bhb/tree/07ae0e56c4/src/Mod/Fem/PyGui +module="PyGui._ViewProviderFemConstraintBodyHeatSource" +module="PyGui._ViewProviderFemConstraintElectrostaticPotential" +module="PyGui._ViewProviderFemConstraintFlowVelocity" +module="PyGui._ViewProviderFemConstraintInitialFlowVelocity" +module="PyGui._ViewProviderFemConstraintSelfWeight" +module="PyGui._ViewProviderFemElementFluid1D" +module="PyGui._ViewProviderFemElementGeometry1D" +module="PyGui._ViewProviderFemElementGeometry2D" +module="PyGui._ViewProviderFemElementRotation1D" +module="PyGui._ViewProviderFemMaterial" +module="PyGui._ViewProviderFemMaterialMechanicalNonlinear" +module="PyGui._ViewProviderFemMeshBoundaryLayer" +module="PyGui._ViewProviderFemMeshGmsh" +module="PyGui._ViewProviderFemMeshGroup" +module="PyGui._ViewProviderFemMeshRegion" +module="PyGui._ViewProviderFemMeshResult" +module="PyGui._ViewProviderFemResultMechanical" +module="PyGui._ViewProviderFemSolverCalculix" + +renamed between the second and third big moveings +module="PyGui._ViewProviderFemBeamSection" +module="PyGui._ViewProviderFemFluidSection" +module="PyGui._ViewProviderFemShellThickness" + +second big moveing +into PyObjects, following the parent commit +https://github.com/berndhahnebach/FreeCAD_bhb/tree/7f884e8bff/src/Mod/Fem +module="_ViewProviderFemBeamSection" +module="_ViewProviderFemConstraintSelfWeight" +module="_ViewProviderFemMaterial" +module="_ViewProviderFemMaterialMechanicalNonlinear" +module="_ViewProviderFemMeshGmsh" +module="_ViewProviderFemMeshGroup" +module="_ViewProviderFemMeshRegion" +module="_ViewProviderFemResultMechanical" +module="_ViewProviderFemShellThickness" +module="_ViewProviderFemSolverCalculix" +module="_ViewProviderFemSolverZ88" + +renamed between the first and second big moveings +module="_ViewProviderFemMechanicalResult" +module="ViewProviderFemResult" +module="_ViewProviderMechanicalMaterial" + +first big moving +split modules from one module into make, obj class, vp class, command +new obj class module names had a _ +following the parent commit of the first split commit +https://github.com/berndhahnebach/FreeCAD_bhb/tree/c3328d6b4e/src/Mod/Fem +in this modules there where object class and viewprovider class together +module="FemBeamSection" +module="FemShellThickness" +module="MechanicalAnalysis" # TODO +module="MechanicalMaterial" + + +"""