From 28e90e668cb7dc14cd0d0781f5ec01a7edc0cd08 Mon Sep 17 00:00:00 2001 From: FEA-eng <59876896+FEA-eng@users.noreply.github.com> Date: Mon, 14 Jul 2025 18:10:00 +0200 Subject: [PATCH] FEM: Add offset property for CalculiX's shell section (#22385) * FEM: Update element_geometry2D.py * FEM: Update write_femelement_geometry.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * FEM: Update ccx_cantilever_ele_quad4.inp * FEM: Update ccx_cantilever_ele_quad8.inp * FEM: Update ccx_cantilever_ele_tria3.inp * FEM: Update ccx_cantilever_ele_tria6.inp * FEM: Update constraint_contact_shell_shell.inp * FEM: Update material_multiple_bendingbeam_fivefaces.inp * FEM: Update square_pipe_end_twisted_edgeforces.inp * FEM: Update square_pipe_end_twisted_nodeforces.inp --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- src/Mod/Fem/femobjects/element_geometry2D.py | 8 ++++++++ .../Fem/femsolver/calculix/write_femelement_geometry.py | 3 ++- .../femtest/data/calculix/ccx_cantilever_ele_quad4.inp | 2 +- .../femtest/data/calculix/ccx_cantilever_ele_quad8.inp | 2 +- .../femtest/data/calculix/ccx_cantilever_ele_tria3.inp | 2 +- .../femtest/data/calculix/ccx_cantilever_ele_tria6.inp | 2 +- .../data/calculix/constraint_contact_shell_shell.inp | 2 +- .../calculix/material_multiple_bendingbeam_fivefaces.inp | 6 +++--- .../data/calculix/square_pipe_end_twisted_edgeforces.inp | 2 +- .../data/calculix/square_pipe_end_twisted_nodeforces.inp | 2 +- 10 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/Mod/Fem/femobjects/element_geometry2D.py b/src/Mod/Fem/femobjects/element_geometry2D.py index 6d20466c71..cedaabc9a5 100644 --- a/src/Mod/Fem/femobjects/element_geometry2D.py +++ b/src/Mod/Fem/femobjects/element_geometry2D.py @@ -49,3 +49,11 @@ class ElementGeometry2D(base_femelement.BaseFemElement): "set thickness of the shell elements", ) obj.setPropertyStatus("Thickness", "LockDynamic") + + obj.addProperty( + "App::PropertyFloat", + "Offset", + "ShellThickness", + "set thickness offset of the shell elements", + ) + obj.Offset = 0.0 diff --git a/src/Mod/Fem/femsolver/calculix/write_femelement_geometry.py b/src/Mod/Fem/femsolver/calculix/write_femelement_geometry.py index 12f672e2b2..c08c65e546 100644 --- a/src/Mod/Fem/femsolver/calculix/write_femelement_geometry.py +++ b/src/Mod/Fem/femsolver/calculix/write_femelement_geometry.py @@ -114,7 +114,8 @@ def write_femelement_geometry(f, ccxwriter): elif "shellthickness_obj" in matgeoset: # shell mesh shellth_obj = matgeoset["shellthickness_obj"] if ccxwriter.solver_obj.ModelSpace == "3D": - section_def = f"*SHELL SECTION, {elsetdef}{material}\n" + offset = shellth_obj.Offset + section_def = f"*SHELL SECTION, {elsetdef}{material}, OFFSET={offset:.13G}\n" else: section_def = f"*SOLID SECTION, {elsetdef}{material}\n" thickness = shellth_obj.Thickness.getValueAs("mm").Value diff --git a/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_quad4.inp b/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_quad4.inp index f1d8993f94..d6c7e51a70 100644 --- a/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_quad4.inp +++ b/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_quad4.inp @@ -84,7 +84,7 @@ Efaces *********************************************************** ** Sections -*SHELL SECTION, ELSET=MechanicalMaterialThickness, MATERIAL=MechanicalMaterial +*SHELL SECTION, ELSET=MechanicalMaterialThickness, MATERIAL=MechanicalMaterial, OFFSET=0 1000 *********************************************************** diff --git a/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_quad8.inp b/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_quad8.inp index ce63593e02..8d16329a33 100644 --- a/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_quad8.inp +++ b/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_quad8.inp @@ -72,7 +72,7 @@ Efaces *********************************************************** ** Sections -*SHELL SECTION, ELSET=MechanicalMaterialThickness, MATERIAL=MechanicalMaterial +*SHELL SECTION, ELSET=MechanicalMaterialThickness, MATERIAL=MechanicalMaterial, OFFSET=0 1000 *********************************************************** diff --git a/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_tria3.inp b/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_tria3.inp index 613b6bc88f..5fdd761952 100644 --- a/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_tria3.inp +++ b/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_tria3.inp @@ -1560,7 +1560,7 @@ Efaces *********************************************************** ** Sections -*SHELL SECTION, ELSET=MechanicalMaterialThickness, MATERIAL=MechanicalMaterial +*SHELL SECTION, ELSET=MechanicalMaterialThickness, MATERIAL=MechanicalMaterial, OFFSET=0 1000 *********************************************************** diff --git a/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_tria6.inp b/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_tria6.inp index 2fe7c8a64b..6656f23476 100644 --- a/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_tria6.inp +++ b/src/Mod/Fem/femtest/data/calculix/ccx_cantilever_ele_tria6.inp @@ -290,7 +290,7 @@ Efaces *********************************************************** ** Sections -*SHELL SECTION, ELSET=MechanicalMaterialThickness, MATERIAL=MechanicalMaterial +*SHELL SECTION, ELSET=MechanicalMaterialThickness, MATERIAL=MechanicalMaterial, OFFSET=0 1000 *********************************************************** diff --git a/src/Mod/Fem/femtest/data/calculix/constraint_contact_shell_shell.inp b/src/Mod/Fem/femtest/data/calculix/constraint_contact_shell_shell.inp index c73c15e8e7..810eb4a182 100644 --- a/src/Mod/Fem/femtest/data/calculix/constraint_contact_shell_shell.inp +++ b/src/Mod/Fem/femtest/data/calculix/constraint_contact_shell_shell.inp @@ -38362,7 +38362,7 @@ Efaces *********************************************************** ** Sections -*SHELL SECTION, ELSET=MechanicalMaterialShellThickness, MATERIAL=MechanicalMaterial +*SHELL SECTION, ELSET=MechanicalMaterialShellThickness, MATERIAL=MechanicalMaterial, OFFSET=0 0.5 *********************************************************** diff --git a/src/Mod/Fem/femtest/data/calculix/material_multiple_bendingbeam_fivefaces.inp b/src/Mod/Fem/femtest/data/calculix/material_multiple_bendingbeam_fivefaces.inp index 1958b31207..0b249eb8c7 100644 --- a/src/Mod/Fem/femtest/data/calculix/material_multiple_bendingbeam_fivefaces.inp +++ b/src/Mod/Fem/femtest/data/calculix/material_multiple_bendingbeam_fivefaces.inp @@ -2542,11 +2542,11 @@ Efaces *********************************************************** ** Sections -*SHELL SECTION, ELSET=FemMaterial1ShellThickness, MATERIAL=FemMaterial1 +*SHELL SECTION, ELSET=FemMaterial1ShellThickness, MATERIAL=FemMaterial1, OFFSET=0 10 -*SHELL SECTION, ELSET=FemMaterial2ShellThickness, MATERIAL=FemMaterial2 +*SHELL SECTION, ELSET=FemMaterial2ShellThickness, MATERIAL=FemMaterial2, OFFSET=0 10 -*SHELL SECTION, ELSET=FemMaterial3ShellThickness, MATERIAL=FemMaterial3 +*SHELL SECTION, ELSET=FemMaterial3ShellThickness, MATERIAL=FemMaterial3, OFFSET=0 10 *********************************************************** diff --git a/src/Mod/Fem/femtest/data/calculix/square_pipe_end_twisted_edgeforces.inp b/src/Mod/Fem/femtest/data/calculix/square_pipe_end_twisted_edgeforces.inp index 872dda5a70..58a9b7df9c 100644 --- a/src/Mod/Fem/femtest/data/calculix/square_pipe_end_twisted_edgeforces.inp +++ b/src/Mod/Fem/femtest/data/calculix/square_pipe_end_twisted_edgeforces.inp @@ -2558,7 +2558,7 @@ Efaces *********************************************************** ** Sections -*SHELL SECTION, ELSET=FemMaterialShellThickness, MATERIAL=FemMaterial +*SHELL SECTION, ELSET=FemMaterialShellThickness, MATERIAL=FemMaterial, OFFSET=0 15 *********************************************************** diff --git a/src/Mod/Fem/femtest/data/calculix/square_pipe_end_twisted_nodeforces.inp b/src/Mod/Fem/femtest/data/calculix/square_pipe_end_twisted_nodeforces.inp index 8b8b04d5a8..7e89c75905 100644 --- a/src/Mod/Fem/femtest/data/calculix/square_pipe_end_twisted_nodeforces.inp +++ b/src/Mod/Fem/femtest/data/calculix/square_pipe_end_twisted_nodeforces.inp @@ -2558,7 +2558,7 @@ Efaces *********************************************************** ** Sections -*SHELL SECTION, ELSET=FemMaterialShellThickness, MATERIAL=FemMaterial +*SHELL SECTION, ELSET=FemMaterialShellThickness, MATERIAL=FemMaterial, OFFSET=0 15 ***********************************************************