From d50506fb4d3bcb6ac94ebf9cb99b64f2cf0b922f Mon Sep 17 00:00:00 2001 From: marioalexis Date: Tue, 18 Jun 2024 14:13:41 -0300 Subject: [PATCH] Fem: Use own base class for Python objects - fixes #15408 --- src/Mod/Fem/femobjects/base_femelement.py | 4 ++-- src/Mod/Fem/femobjects/base_femmeshelement.py | 4 ++-- src/Mod/Fem/femobjects/element_fluid1D.py | 9 ++------- src/Mod/Fem/femobjects/element_geometry1D.py | 8 ++------ src/Mod/Fem/femobjects/element_geometry2D.py | 12 ++---------- src/Mod/Fem/femobjects/element_rotation1D.py | 9 ++------- src/Mod/Fem/femobjects/mesh_boundarylayer.py | 12 ++---------- src/Mod/Fem/femobjects/mesh_group.py | 12 ++---------- src/Mod/Fem/femobjects/mesh_region.py | 12 ++---------- src/Mod/Fem/femviewprovider/view_base_femelement.py | 4 ++-- src/Mod/Fem/femviewprovider/view_base_femmaterial.py | 4 ++-- .../Fem/femviewprovider/view_base_femmeshelement.py | 4 ++-- src/Mod/Fem/femviewprovider/view_element_fluid1D.py | 8 +++----- .../Fem/femviewprovider/view_element_geometry1D.py | 8 +++----- .../Fem/femviewprovider/view_element_geometry2D.py | 8 +++----- src/Mod/Fem/femviewprovider/view_material_common.py | 8 +++----- .../Fem/femviewprovider/view_material_reinforced.py | 8 +++----- .../Fem/femviewprovider/view_mesh_boundarylayer.py | 8 +++----- src/Mod/Fem/femviewprovider/view_mesh_group.py | 8 +++----- src/Mod/Fem/femviewprovider/view_mesh_region.py | 8 +++----- 20 files changed, 48 insertions(+), 110 deletions(-) diff --git a/src/Mod/Fem/femobjects/base_femelement.py b/src/Mod/Fem/femobjects/base_femelement.py index bec2b0cc82..0bc959b9d5 100644 --- a/src/Mod/Fem/femobjects/base_femelement.py +++ b/src/Mod/Fem/femobjects/base_femelement.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -# /*************************************************************************** +# *************************************************************************** # * Copyright (c) 2024 Mario Passaglia * # * * # * This file is part of FreeCAD. * @@ -19,7 +19,7 @@ # * License along with FreeCAD. If not, see * # * . * # * * -# ************************************************************************** +# *************************************************************************** __title__ = "FreeCAD FEM base element object" __author__ = "Mario Passaglia" diff --git a/src/Mod/Fem/femobjects/base_femmeshelement.py b/src/Mod/Fem/femobjects/base_femmeshelement.py index e7c5dfa56c..6f63797bd4 100644 --- a/src/Mod/Fem/femobjects/base_femmeshelement.py +++ b/src/Mod/Fem/femobjects/base_femmeshelement.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -# /*************************************************************************** +# *************************************************************************** # * Copyright (c) 2024 Mario Passaglia * # * * # * This file is part of FreeCAD. * @@ -19,7 +19,7 @@ # * License along with FreeCAD. If not, see * # * . * # * * -# ************************************************************************** +# *************************************************************************** __title__ = "FreeCAD FEM base element object" __author__ = "Mario Passaglia" diff --git a/src/Mod/Fem/femobjects/element_fluid1D.py b/src/Mod/Fem/femobjects/element_fluid1D.py index bd3672fa70..5a96e34959 100644 --- a/src/Mod/Fem/femobjects/element_fluid1D.py +++ b/src/Mod/Fem/femobjects/element_fluid1D.py @@ -31,10 +31,10 @@ __url__ = "https://www.freecad.org" # \ingroup FEM # \brief element fluid 1D object -from . import base_fempythonobject +from . import base_femelement -class ElementFluid1D(base_fempythonobject.BaseFemPythonObject): +class ElementFluid1D(base_femelement.BaseFemElement): """ The element_fluid1D object """ @@ -63,11 +63,6 @@ class ElementFluid1D(base_fempythonobject.BaseFemPythonObject): def __init__(self, obj): super().__init__(obj) - obj.addProperty( - "App::PropertyLinkSubList", "References", "FluidSection", "List of fluid section shapes" - ) - obj.setPropertyStatus("References", "LockDynamic") - obj.addProperty( "App::PropertyEnumeration", "SectionType", "FluidSection", "select fluid section type" ) diff --git a/src/Mod/Fem/femobjects/element_geometry1D.py b/src/Mod/Fem/femobjects/element_geometry1D.py index 0dbce423b7..6ab731e37d 100644 --- a/src/Mod/Fem/femobjects/element_geometry1D.py +++ b/src/Mod/Fem/femobjects/element_geometry1D.py @@ -29,10 +29,10 @@ __url__ = "https://www.freecad.org" # \ingroup FEM # \brief element geometry 1D object -from . import base_fempythonobject +from . import base_femelement -class ElementGeometry1D(base_fempythonobject.BaseFemPythonObject): +class ElementGeometry1D(base_femelement.BaseFemElement): """ The ElementGeometry1D object """ @@ -88,9 +88,5 @@ class ElementGeometry1D(base_fempythonobject.BaseFemPythonObject): ) obj.setPropertyStatus("SectionType", "LockDynamic") - obj.addProperty( - "App::PropertyLinkSubList", "References", "BeamSection", "List of beam section shapes" - ) - obj.setPropertyStatus("References", "LockDynamic") obj.SectionType = ElementGeometry1D.known_beam_types obj.SectionType = "Rectangular" diff --git a/src/Mod/Fem/femobjects/element_geometry2D.py b/src/Mod/Fem/femobjects/element_geometry2D.py index ad520197cb..6d20466c71 100644 --- a/src/Mod/Fem/femobjects/element_geometry2D.py +++ b/src/Mod/Fem/femobjects/element_geometry2D.py @@ -29,10 +29,10 @@ __url__ = "https://www.freecad.org" # \ingroup FEM # \brief element geometry 2D object -from . import base_fempythonobject +from . import base_femelement -class ElementGeometry2D(base_fempythonobject.BaseFemPythonObject): +class ElementGeometry2D(base_femelement.BaseFemElement): """ The ElementGeometry2D object """ @@ -49,11 +49,3 @@ class ElementGeometry2D(base_fempythonobject.BaseFemPythonObject): "set thickness of the shell elements", ) obj.setPropertyStatus("Thickness", "LockDynamic") - - obj.addProperty( - "App::PropertyLinkSubList", - "References", - "ShellThickness", - "List of shell thickness shapes", - ) - obj.setPropertyStatus("References", "LockDynamic") diff --git a/src/Mod/Fem/femobjects/element_rotation1D.py b/src/Mod/Fem/femobjects/element_rotation1D.py index ddfefa84da..a6cf30d127 100644 --- a/src/Mod/Fem/femobjects/element_rotation1D.py +++ b/src/Mod/Fem/femobjects/element_rotation1D.py @@ -29,10 +29,10 @@ __url__ = "https://www.freecad.org" # \ingroup FEM # \brief element rotation 1D object -from . import base_fempythonobject +from . import base_femelement -class ElementRotation1D(base_fempythonobject.BaseFemPythonObject): +class ElementRotation1D(base_femelement.BaseFemElement): """ The ElementRotation1D object """ @@ -46,8 +46,3 @@ class ElementRotation1D(base_fempythonobject.BaseFemPythonObject): "App::PropertyAngle", "Rotation", "BeamRotation", "Set the rotation of beam elements" ) obj.setPropertyStatus("Rotation", "LockDynamic") - - obj.addProperty( - "App::PropertyLinkSubList", "References", "BeamRotation", "List of beam rotation shapes" - ) - obj.setPropertyStatus("References", "LockDynamic") diff --git a/src/Mod/Fem/femobjects/mesh_boundarylayer.py b/src/Mod/Fem/femobjects/mesh_boundarylayer.py index 0945227d8f..cd7bcdd1b7 100644 --- a/src/Mod/Fem/femobjects/mesh_boundarylayer.py +++ b/src/Mod/Fem/femobjects/mesh_boundarylayer.py @@ -29,10 +29,10 @@ __url__ = "https://www.freecad.org" # \ingroup FEM # \brief mesh boundary layer object -from . import base_fempythonobject +from . import base_femmeshelement -class MeshBoundaryLayer(base_fempythonobject.BaseFemPythonObject): +class MeshBoundaryLayer(base_femmeshelement.BaseFemMeshElement): """ The MeshBoundaryLayer object """ @@ -68,11 +68,3 @@ class MeshBoundaryLayer(base_fempythonobject.BaseFemPythonObject): ) obj.setPropertyStatus("GrowthRate", "LockDynamic") obj.GrowthRate = 1.5 - - obj.addProperty( - "App::PropertyLinkSubList", - "References", - "MeshBoundaryLayerShapes", - "List of FEM mesh region shapes", - ) - obj.setPropertyStatus("References", "LockDynamic") diff --git a/src/Mod/Fem/femobjects/mesh_group.py b/src/Mod/Fem/femobjects/mesh_group.py index 9f4f8502f2..dd49c8c7be 100644 --- a/src/Mod/Fem/femobjects/mesh_group.py +++ b/src/Mod/Fem/femobjects/mesh_group.py @@ -29,10 +29,10 @@ __url__ = "https://www.freecad.org" # \ingroup FEM # \brief mesh group object -from . import base_fempythonobject +from . import base_femmeshelement -class MeshGroup(base_fempythonobject.BaseFemPythonObject): +class MeshGroup(base_femmeshelement.BaseFemMeshElement): """ The MeshGroup object """ @@ -49,11 +49,3 @@ class MeshGroup(base_fempythonobject.BaseFemPythonObject): "The identifier used for export (True: Label, False: Name)", ) obj.setPropertyStatus("UseLabel", "LockDynamic") - - obj.addProperty( - "App::PropertyLinkSubList", - "References", - "MeshGroupShapes", - "List of FEM mesh group shapes", - ) - obj.setPropertyStatus("References", "LockDynamic") diff --git a/src/Mod/Fem/femobjects/mesh_region.py b/src/Mod/Fem/femobjects/mesh_region.py index f7673999eb..340df18f99 100644 --- a/src/Mod/Fem/femobjects/mesh_region.py +++ b/src/Mod/Fem/femobjects/mesh_region.py @@ -29,10 +29,10 @@ __url__ = "https://www.freecad.org" # \ingroup FEM # \brief mesh region object -from . import base_fempythonobject +from . import base_femmeshelement -class MeshRegion(base_fempythonobject.BaseFemPythonObject): +class MeshRegion(base_femmeshelement.BaseFemMeshElement): """ The FemMeshRegion object """ @@ -49,11 +49,3 @@ class MeshRegion(base_fempythonobject.BaseFemPythonObject): "set characteristic length of FEM elements for this refinement", ) obj.setPropertyStatus("CharacteristicLength", "LockDynamic") - - obj.addProperty( - "App::PropertyLinkSubList", - "References", - "MeshRegionShapes", - "List of FEM mesh refinement shapes", - ) - obj.setPropertyStatus("References", "LockDynamic") diff --git a/src/Mod/Fem/femviewprovider/view_base_femelement.py b/src/Mod/Fem/femviewprovider/view_base_femelement.py index fc50180227..0dc33f9a99 100644 --- a/src/Mod/Fem/femviewprovider/view_base_femelement.py +++ b/src/Mod/Fem/femviewprovider/view_base_femelement.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -# /*************************************************************************** +# *************************************************************************** # * Copyright (c) 2024 Mario Passaglia * # * * # * This file is part of FreeCAD. * @@ -19,7 +19,7 @@ # * License along with FreeCAD. If not, see * # * . * # * * -# ************************************************************************** +# *************************************************************************** __title__ = "FreeCAD FEM base element ViewProvider" __author__ = "Mario Passaglia" diff --git a/src/Mod/Fem/femviewprovider/view_base_femmaterial.py b/src/Mod/Fem/femviewprovider/view_base_femmaterial.py index 6dc9409e81..2fb3c75a8d 100644 --- a/src/Mod/Fem/femviewprovider/view_base_femmaterial.py +++ b/src/Mod/Fem/femviewprovider/view_base_femmaterial.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -# /*************************************************************************** +# *************************************************************************** # * Copyright (c) 2024 Mario Passaglia * # * * # * This file is part of FreeCAD. * @@ -19,7 +19,7 @@ # * License along with FreeCAD. If not, see * # * . * # * * -# ************************************************************************** +# *************************************************************************** __title__ = "FreeCAD FEM base materlia ViewProvider" __author__ = "Mario Passaglia" diff --git a/src/Mod/Fem/femviewprovider/view_base_femmeshelement.py b/src/Mod/Fem/femviewprovider/view_base_femmeshelement.py index 9afa9f93fd..efe6cf2ff0 100644 --- a/src/Mod/Fem/femviewprovider/view_base_femmeshelement.py +++ b/src/Mod/Fem/femviewprovider/view_base_femmeshelement.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -# /*************************************************************************** +# *************************************************************************** # * Copyright (c) 2024 Mario Passaglia * # * * # * This file is part of FreeCAD. * @@ -19,7 +19,7 @@ # * License along with FreeCAD. If not, see * # * . * # * * -# ************************************************************************** +# *************************************************************************** __title__ = "FreeCAD FEM base mesh element ViewProvider" __author__ = "Mario Passaglia" diff --git a/src/Mod/Fem/femviewprovider/view_element_fluid1D.py b/src/Mod/Fem/femviewprovider/view_element_fluid1D.py index c46221ff39..974798507f 100644 --- a/src/Mod/Fem/femviewprovider/view_element_fluid1D.py +++ b/src/Mod/Fem/femviewprovider/view_element_fluid1D.py @@ -32,15 +32,13 @@ __url__ = "https://www.freecad.org" # \brief view provider for element fluid 1D object from femtaskpanels import task_element_fluid1D -from . import view_base_femconstraint +from . import view_base_femelement -class VPElementFluid1D(view_base_femconstraint.VPBaseFemConstraint): +class VPElementFluid1D(view_base_femelement.VPBaseFemElement): """ A View Provider for the ElementFluid1D object """ def setEdit(self, vobj, mode=0): - view_base_femconstraint.VPBaseFemConstraint.setEdit( - self, vobj, mode, task_element_fluid1D._TaskPanel - ) + super().setEdit(vobj, mode, task_element_fluid1D._TaskPanel) diff --git a/src/Mod/Fem/femviewprovider/view_element_geometry1D.py b/src/Mod/Fem/femviewprovider/view_element_geometry1D.py index 49388e99a3..2a4992babf 100644 --- a/src/Mod/Fem/femviewprovider/view_element_geometry1D.py +++ b/src/Mod/Fem/femviewprovider/view_element_geometry1D.py @@ -30,15 +30,13 @@ __url__ = "https://www.freecad.org" # \brief view provider for element geometry 1D object from femtaskpanels import task_element_geometry1D -from . import view_base_femconstraint +from . import view_base_femelement -class VPElementGeometry1D(view_base_femconstraint.VPBaseFemConstraint): +class VPElementGeometry1D(view_base_femelement.VPBaseFemElement): """ A View Provider for the ElementGeometry1D object """ def setEdit(self, vobj, mode=0): - view_base_femconstraint.VPBaseFemConstraint.setEdit( - self, vobj, mode, task_element_geometry1D._TaskPanel - ) + super().setEdit(vobj, mode, task_element_geometry1D._TaskPanel) diff --git a/src/Mod/Fem/femviewprovider/view_element_geometry2D.py b/src/Mod/Fem/femviewprovider/view_element_geometry2D.py index 28deaef29a..1146d176c0 100644 --- a/src/Mod/Fem/femviewprovider/view_element_geometry2D.py +++ b/src/Mod/Fem/femviewprovider/view_element_geometry2D.py @@ -30,15 +30,13 @@ __url__ = "https://www.freecad.org" # \brief view provider for element geometry 2D object from femtaskpanels import task_element_geometry2D -from . import view_base_femconstraint +from . import view_base_femelement -class VPElementGeometry2D(view_base_femconstraint.VPBaseFemConstraint): +class VPElementGeometry2D(view_base_femelement.VPBaseFemElement): """ A View Provider for the ElementGeometry2D object """ def setEdit(self, vobj, mode=0): - view_base_femconstraint.VPBaseFemConstraint.setEdit( - self, vobj, mode, task_element_geometry2D._TaskPanel - ) + super().setEdit(vobj, mode, task_element_geometry2D._TaskPanel) diff --git a/src/Mod/Fem/femviewprovider/view_material_common.py b/src/Mod/Fem/femviewprovider/view_material_common.py index 1b6a0a066c..da7c20351d 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,6 +55,4 @@ class VPMaterialCommon(view_base_femconstraint.VPBaseFemConstraint): return "" def setEdit(self, vobj, mode=0): - view_base_femconstraint.VPBaseFemConstraint.setEdit( - self, vobj, mode, task_material_common._TaskPanel - ) + super().setEdit(vobj, mode, task_material_common._TaskPanel) diff --git a/src/Mod/Fem/femviewprovider/view_material_reinforced.py b/src/Mod/Fem/femviewprovider/view_material_reinforced.py index 3fa4c2ff5b..51ad62ed9e 100644 --- a/src/Mod/Fem/femviewprovider/view_material_reinforced.py +++ b/src/Mod/Fem/femviewprovider/view_material_reinforced.py @@ -30,15 +30,13 @@ __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, vobj, mode, task_material_reinforced._TaskPanel - ) + super().setEdit(vobj, mode, task_material_reinforced._TaskPanel) diff --git a/src/Mod/Fem/femviewprovider/view_mesh_boundarylayer.py b/src/Mod/Fem/femviewprovider/view_mesh_boundarylayer.py index 02fcc88e98..e4ffca99ae 100644 --- a/src/Mod/Fem/femviewprovider/view_mesh_boundarylayer.py +++ b/src/Mod/Fem/femviewprovider/view_mesh_boundarylayer.py @@ -30,15 +30,13 @@ __url__ = "https://www.freecad.org" # \brief view provider for mesh boundary object from femtaskpanels import task_mesh_boundarylayer -from . import view_base_femconstraint +from . import view_base_femmeshelement -class VPMeshBoundaryLayer(view_base_femconstraint.VPBaseFemConstraint): +class VPMeshBoundaryLayer(view_base_femmeshelement.VPBaseFemMeshElement): """ A View Provider for the MeshBoundaryLayer object """ def setEdit(self, vobj, mode=0): - view_base_femconstraint.VPBaseFemConstraint.setEdit( - self, vobj, mode, task_mesh_boundarylayer._TaskPanel - ) + super().setEdit(vobj, mode, task_mesh_boundarylayer._TaskPanel) diff --git a/src/Mod/Fem/femviewprovider/view_mesh_group.py b/src/Mod/Fem/femviewprovider/view_mesh_group.py index a638fc1ff1..5cbcdef91e 100644 --- a/src/Mod/Fem/femviewprovider/view_mesh_group.py +++ b/src/Mod/Fem/femviewprovider/view_mesh_group.py @@ -30,15 +30,13 @@ __url__ = "https://www.freecad.org" # \brief view provider for mesh group object from femtaskpanels import task_mesh_group -from . import view_base_femconstraint +from . import view_base_femmeshelement -class VPMeshGroup(view_base_femconstraint.VPBaseFemConstraint): +class VPMeshGroup(view_base_femmeshelement.VPBaseFemMeshElement): """ A View Provider for the MeshGroup object """ def setEdit(self, vobj, mode=0): - view_base_femconstraint.VPBaseFemConstraint.setEdit( - self, vobj, mode, task_mesh_group._TaskPanel - ) + super().setEdit(vobj, mode, task_mesh_group._TaskPanel) diff --git a/src/Mod/Fem/femviewprovider/view_mesh_region.py b/src/Mod/Fem/femviewprovider/view_mesh_region.py index 3b90b2a5c0..ad49ce34f5 100644 --- a/src/Mod/Fem/femviewprovider/view_mesh_region.py +++ b/src/Mod/Fem/femviewprovider/view_mesh_region.py @@ -30,15 +30,13 @@ __url__ = "https://www.freecad.org" # \brief view provider for mesh region object from femtaskpanels import task_mesh_region -from . import view_base_femconstraint +from . import view_base_femmeshelement -class VPMeshRegion(view_base_femconstraint.VPBaseFemConstraint): +class VPMeshRegion(view_base_femmeshelement.VPBaseFemMeshElement): """ A View Provider for the FemMeshRegion object """ def setEdit(self, vobj, mode=0): - view_base_femconstraint.VPBaseFemConstraint.setEdit( - self, vobj, mode, task_mesh_region._TaskPanel - ) + super().setEdit(vobj, mode, task_mesh_region._TaskPanel)