From 3a08324f922a33b764a8f8ac90bb4c3af529f40e Mon Sep 17 00:00:00 2001 From: marioalexis Date: Tue, 18 Jun 2024 14:13:41 -0300 Subject: [PATCH] Fem: Create own base class for Python Material objects --- src/Mod/Fem/CMakeLists.txt | 1 + .../femviewprovider/view_base_femmaterial.py | 39 +++++++++++++++++++ .../femviewprovider/view_material_common.py | 7 ++-- .../view_material_mechanicalnonlinear.py | 4 +- .../view_material_reinforced.py | 7 ++-- 5 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 src/Mod/Fem/femviewprovider/view_base_femmaterial.py diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index b1b057b186..73f99929ad 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -609,6 +609,7 @@ SET(FemGuiViewProvider_SRCS femviewprovider/__init__.py femviewprovider/view_base_femconstraint.py femviewprovider/view_base_femelement.py + femviewprovider/view_base_femmaterial.py femviewprovider/view_base_femmeshelement.py femviewprovider/view_base_femobject.py femviewprovider/view_constant_vacuumpermittivity.py diff --git a/src/Mod/Fem/femviewprovider/view_base_femmaterial.py b/src/Mod/Fem/femviewprovider/view_base_femmaterial.py new file mode 100644 index 0000000000..1115478351 --- /dev/null +++ b/src/Mod/Fem/femviewprovider/view_base_femmaterial.py @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +#/*************************************************************************** +# * Copyright (c) 2024 Mario Passaglia * +# * * +# * This file is part of FreeCAD. * +# * * +# * FreeCAD is free software: you can redistribute it and/or modify it * +# * under the terms of the GNU Lesser General Public License as * +# * published by the Free Software Foundation, either version 2.1 of the * +# * License, or (at your option) any later version. * +# * * +# * FreeCAD 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 * +# * Lesser General Public License for more details. * +# * * +# * You should have received a copy of the GNU Lesser General Public * +# * License along with FreeCAD. If not, see * +# * . * +# * * +# ************************************************************************** + +__title__ = "FreeCAD FEM base materlia ViewProvider" +__author__ = "Mario Passaglia" +__url__ = "https://www.freecad.org" + +## @package view_base_femmeshelement +# \ingroup FEM +# \brief view provider for Python base material object + +from femviewprovider import view_base_femobject + + +class VPBaseFemMaterial(view_base_femobject.VPBaseFemObject): + """Proxy View Provider for Python base material.""" + + def isShow(self): + return self.ViewObject.Visibility diff --git a/src/Mod/Fem/femviewprovider/view_material_common.py b/src/Mod/Fem/femviewprovider/view_material_common.py index a8335a6586..f04f86a629 100644 --- a/src/Mod/Fem/femviewprovider/view_material_common.py +++ b/src/Mod/Fem/femviewprovider/view_material_common.py @@ -34,10 +34,10 @@ __url__ = "https://www.freecad.org" import FreeCAD from femtaskpanels import task_material_common -from . import view_base_femconstraint +from . import view_base_femmaterial -class VPMaterialCommon(view_base_femconstraint.VPBaseFemConstraint): +class VPMaterialCommon(view_base_femmaterial.VPBaseFemMaterial): """ A View Provider for the MaterialCommon object """ @@ -55,8 +55,7 @@ class VPMaterialCommon(view_base_femconstraint.VPBaseFemConstraint): return "" def setEdit(self, vobj, mode=0): - view_base_femconstraint.VPBaseFemConstraint.setEdit( - self, + super().setEdit( vobj, mode, task_material_common._TaskPanel diff --git a/src/Mod/Fem/femviewprovider/view_material_mechanicalnonlinear.py b/src/Mod/Fem/femviewprovider/view_material_mechanicalnonlinear.py index 7c4541f91c..22581727d5 100644 --- a/src/Mod/Fem/femviewprovider/view_material_mechanicalnonlinear.py +++ b/src/Mod/Fem/femviewprovider/view_material_mechanicalnonlinear.py @@ -29,10 +29,10 @@ __url__ = "https://www.freecad.org" # \ingroup FEM # \brief view provider for material mechanical nonlinear object -from . import view_base_femconstraint +from . import view_base_femmaterial -class VPMaterialMechanicalNonlinear(view_base_femconstraint.VPBaseFemConstraint): +class VPMaterialMechanicalNonlinear(view_base_femmaterial.VPBaseFemMaterial): """ A View Provider for the MaterialMechanicalNonlinear object """ diff --git a/src/Mod/Fem/femviewprovider/view_material_reinforced.py b/src/Mod/Fem/femviewprovider/view_material_reinforced.py index 855e40bb44..de3e5a6334 100644 --- a/src/Mod/Fem/femviewprovider/view_material_reinforced.py +++ b/src/Mod/Fem/femviewprovider/view_material_reinforced.py @@ -30,17 +30,16 @@ __url__ = "https://www.freecad.org" # \brief view provider for reinforced material object from femtaskpanels import task_material_reinforced -from . import view_base_femconstraint +from . import view_base_femmaterial -class VPMaterialReinforced(view_base_femconstraint.VPBaseFemConstraint): +class VPMaterialReinforced(view_base_femmaterial.VPBaseFemMaterial): """ A View Provider for the MaterialReinforced object """ def setEdit(self, vobj, mode=0): - view_base_femconstraint.VPBaseFemConstraint.setEdit( - self, + super().setEdit( vobj, mode, task_material_reinforced._TaskPanel