Fem: Replace old FemMesh Netgen object implementation

This commit is contained in:
marioalexis
2024-09-15 20:51:04 -03:00
parent 9ec44feb53
commit cc0cdcf138
4 changed files with 18 additions and 16 deletions

View File

@@ -154,10 +154,8 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
Gui::ToolBarItem* mesh = new Gui::ToolBarItem(root);
mesh->setCommand("Mesh");
#ifdef FCWithNetgen
*mesh << "FEM_MeshNetgenFromShape";
#endif
*mesh << "FEM_MeshGmshFromShape"
*mesh << "FEM_MeshNetgenFromShape"
<< "FEM_MeshGmshFromShape"
<< "Separator"
<< "FEM_MeshBoundaryLayer"
<< "FEM_MeshRegion"
@@ -311,10 +309,8 @@ Gui::MenuItem* Workbench::setupMenuBar() const
Gui::MenuItem* mesh = new Gui::MenuItem;
root->insertItem(item, mesh);
mesh->setCommand("M&esh");
#ifdef FCWithNetgen
*mesh << "FEM_MeshNetgenFromShape";
#endif
*mesh << "FEM_MeshGmshFromShape"
*mesh << "FEM_MeshNetgenFromShape"
<< "FEM_MeshGmshFromShape"
<< "Separator"
<< "FEM_MeshBoundaryLayer"
<< "FEM_MeshRegion"

View File

@@ -525,8 +525,15 @@ def makeMeshGroup(doc, base_mesh, use_label=False, name="MeshGroup"):
def makeMeshNetgen(doc, name="MeshNetgen"):
"""makeMeshNetgen(document, [name]):
makes a Fem MeshShapeNetgenObject object"""
obj = doc.addObject("Fem::FemMeshShapeNetgenObject", name)
makes a Netgen FEM mesh object"""
obj = doc.addObject("Fem::FemMeshShapeBaseObjectPython", name)
from femobjects import mesh_netgen
mesh_netgen.MeshNetgen(obj)
if FreeCAD.GuiUp:
from femviewprovider import view_mesh_netgen
view_mesh_netgen.VPMeshNetgen(obj.ViewObject)
return obj

View File

@@ -830,6 +830,7 @@ class _MeshNetgenFromShape(CommandManager):
self.selobj.Name
)
)
FreeCADGui.doCommand("FreeCAD.ActiveDocument.ActiveObject.Fineness = 'Moderate'")
# Netgen mesh object could be added without an active analysis
# but if there is an active analysis move it in there
import FemGui

View File

@@ -240,9 +240,7 @@ class TestObjectType(unittest.TestCase):
)
self.assertEqual("Fem::MeshGroup", type_of_obj(ObjectsFem.makeMeshGroup(doc, mesh)))
self.assertEqual("Fem::MeshRegion", type_of_obj(ObjectsFem.makeMeshRegion(doc, mesh)))
self.assertEqual(
"Fem::FemMeshShapeNetgenObject", type_of_obj(ObjectsFem.makeMeshNetgen(doc))
)
self.assertEqual("Fem::FemMeshNetgen", type_of_obj(ObjectsFem.makeMeshNetgen(doc)))
self.assertEqual("Fem::MeshResult", type_of_obj(ObjectsFem.makeMeshResult(doc)))
self.assertEqual("Fem::ResultMechanical", type_of_obj(ObjectsFem.makeResultMechanical(doc)))
solverelmer = ObjectsFem.makeSolverElmer(doc)
@@ -409,7 +407,7 @@ class TestObjectType(unittest.TestCase):
)
self.assertTrue(is_of_type(ObjectsFem.makeMeshGroup(doc, mesh), "Fem::MeshGroup"))
self.assertTrue(is_of_type(ObjectsFem.makeMeshRegion(doc, mesh), "Fem::MeshRegion"))
self.assertTrue(is_of_type(ObjectsFem.makeMeshNetgen(doc), "Fem::FemMeshShapeNetgenObject"))
self.assertTrue(is_of_type(ObjectsFem.makeMeshNetgen(doc), "Fem::FemMeshNetgen"))
self.assertTrue(is_of_type(ObjectsFem.makeMeshResult(doc), "Fem::MeshResult"))
self.assertTrue(is_of_type(ObjectsFem.makeResultMechanical(doc), "Fem::ResultMechanical"))
solverelmer = ObjectsFem.makeSolverElmer(doc)
@@ -745,7 +743,7 @@ class TestObjectType(unittest.TestCase):
# FemMeshShapeNetgenObject
mesh_netgen = ObjectsFem.makeMeshNetgen(doc)
self.assertTrue(is_derived_from(mesh_netgen, "App::DocumentObject"))
self.assertTrue(is_derived_from(mesh_netgen, "Fem::FemMeshShapeNetgenObject"))
self.assertTrue(is_derived_from(mesh_netgen, "Fem::FemMeshShapeBaseObjectPython"))
# MeshResult
mesh_result = ObjectsFem.makeMeshResult(doc)
@@ -972,7 +970,7 @@ class TestObjectType(unittest.TestCase):
self.assertTrue(ObjectsFem.makeMeshGroup(doc, mesh).isDerivedFrom("Fem::FeaturePython"))
self.assertTrue(ObjectsFem.makeMeshRegion(doc, mesh).isDerivedFrom("Fem::FeaturePython"))
self.assertTrue(
ObjectsFem.makeMeshNetgen(doc).isDerivedFrom("Fem::FemMeshShapeNetgenObject")
ObjectsFem.makeMeshNetgen(doc).isDerivedFrom("Fem::FemMeshShapeBaseObjectPython")
)
self.assertTrue(ObjectsFem.makeMeshResult(doc).isDerivedFrom("Fem::FemMeshObjectPython"))
self.assertTrue(