From cf61dfab38c0f38c5257fcccc262ccdbd9c6ab80 Mon Sep 17 00:00:00 2001 From: marioalexis Date: Tue, 2 Sep 2025 17:49:15 -0300 Subject: [PATCH] Fem: Update old ElementGeometry*D with new properties --- src/Mod/Fem/femobjects/element_geometry1D.py | 2 + src/Mod/Fem/femobjects/element_geometry2D.py | 39 +++++++++++++------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/Mod/Fem/femobjects/element_geometry1D.py b/src/Mod/Fem/femobjects/element_geometry1D.py index 4cfe7812d3..aebfbd6e05 100644 --- a/src/Mod/Fem/femobjects/element_geometry1D.py +++ b/src/Mod/Fem/femobjects/element_geometry1D.py @@ -189,6 +189,8 @@ class ElementGeometry1D(base_femelement.BaseFemElement): def onDocumentRestored(self, obj): # update old project with new properties + super().onDocumentRestored(obj) + for prop in self._get_properties(): try: obj.getPropertyByName(prop.name) diff --git a/src/Mod/Fem/femobjects/element_geometry2D.py b/src/Mod/Fem/femobjects/element_geometry2D.py index cedaabc9a5..e7b14b3d65 100644 --- a/src/Mod/Fem/femobjects/element_geometry2D.py +++ b/src/Mod/Fem/femobjects/element_geometry2D.py @@ -30,6 +30,7 @@ __url__ = "https://www.freecad.org" # \brief element geometry 2D object from . import base_femelement +from .base_fempythonobject import _PropHelper class ElementGeometry2D(base_femelement.BaseFemElement): @@ -42,18 +43,30 @@ class ElementGeometry2D(base_femelement.BaseFemElement): def __init__(self, obj): super().__init__(obj) - obj.addProperty( - "App::PropertyLength", - "Thickness", - "ShellThickness", - "set thickness of the shell elements", - ) - obj.setPropertyStatus("Thickness", "LockDynamic") + def _get_properties(self): + prop = super()._get_properties() - obj.addProperty( - "App::PropertyFloat", - "Offset", - "ShellThickness", - "set thickness offset of the shell elements", + prop.append( + _PropHelper( + type="App::PropertyLength", + name="Thickness", + group="ShellThickness", + doc="Set thickness of the shell elements", + value="0 mm", + ) ) - obj.Offset = 0.0 + prop.append( + _PropHelper( + type="App::PropertyFloat", + name="Offset", + group="ShellThickness", + doc="Set thickness offset of the shell elements", + value=0.0, + ) + ) + + return prop + + def onDocumentRestored(self, obj): + # update old project with new properties + super().onDocumentRestored(obj)