X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=doc%2Fsalome%2Fgui%2FSMESH%2Finput%2Ftui_quality_controls.doc;h=57d52c69e7a3d04c657d9ade576a4986dc7f72a5;hb=8a5f517e60c56d7ddbd35cfae74d69bac8edd36d;hp=e1b8b700e662893abfbcfbe16e7d1e3ce1127273;hpb=79b1ac2b6df9117f16f11d444b1f165d477a1813;p=modules%2Fsmesh.git diff --git a/doc/salome/gui/SMESH/input/tui_quality_controls.doc b/doc/salome/gui/SMESH/input/tui_quality_controls.doc index e1b8b700e..57d52c69e 100644 --- a/doc/salome/gui/SMESH/input/tui_quality_controls.doc +++ b/doc/salome/gui/SMESH/input/tui_quality_controls.doc @@ -189,6 +189,140 @@ for i in range(len(aBorders)): salome.sg.updateObjBrowser(1) \endcode +
+\anchor tui_free_nodes +

Free Nodes

+ +\code +import salome +import geompy + +import smesh + +# create box +box = geompy.MakeBox(0., 0., 0., 100., 200., 300.) +idbox = geompy.addToStudy(box, "box") + +# create a mesh +mesh = smesh.Mesh(box, "Mesh_free_nodes") +algo = mesh.Segment() +algo.NumberOfSegments(10) +algo = mesh.Triangle(smesh.MEFISTO) +algo.MaxElementArea(150.) +mesh.Compute() + +# Remove some elements to obtain free nodes +# Criterion : AREA < 80. +area_margin = 80. + +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, area_margin) + +anIds = mesh.GetIdsFromFilter(aFilter) + +mesh.RemoveElements(anIds) + +# criterion : free nodes +aFilter = smesh.GetFilter(smesh.NODE, smesh.FT_FreeNodes) +anNodeIds = mesh.GetIdsFromFilter(aFilter) + +# create a group +aGroup = mesh.CreateEmptyGroup(smesh.NODE, "Free_nodes") +aGroup.Add(anNodeIds) + +# print the result +print "Criterion: Free nodes Nb = ", len(anNodeIds) +j = 1 +for i in range(len(anNodeIds)): + if j > 20: j = 1; print "" + print anNodeIds[i], + j = j + 1 + pass +print "" + +salome.sg.updateObjBrowser(1) +\endcode + + +
+\anchor tui_free_faces +

Free Faces

+ +\code +import salome +import geompy + +####### GEOM part ######## + +Box_1 = geompy.MakeBoxDXDYDZ(200, 200, 200) +Box_1_vertex_6 = geompy.GetSubShape(Box_1, [6]) +Box_1 = geompy.GetMainShape(Box_1_vertex_6) +Box_1_vertex_16 = geompy.GetSubShape(Box_1, [16]) +Box_1 = geompy.GetMainShape(Box_1_vertex_16) +Box_1_vertex_11 = geompy.GetSubShape(Box_1, [11]) +Box_1 = geompy.GetMainShape(Box_1_vertex_11) +Plane_1 = geompy.MakePlaneThreePnt(Box_1_vertex_6, Box_1_vertex_16, Box_1_vertex_11, 2000) +Partition_1 = geompy.MakePartition([Box_1], [Plane_1], [], [], geompy.ShapeType["SOLID"], 0, [], 0) + +Box_1_vertex_19 = geompy.GetSubShape(Box_1, [19]) +Box_1_vertex_21 = geompy.GetSubShape(Box_1, [21]) +Plane_2 = geompy.MakePlaneThreePnt(Box_1_vertex_16, Box_1_vertex_19, Box_1_vertex_21, 2000) + +geompy.addToStudy( Box_1, "Box_1" ) +geompy.addToStudyInFather( Box_1, Box_1_vertex_6, "Box_1:vertex_6" ) +geompy.addToStudyInFather( Box_1, Box_1_vertex_16, "Box_1:vertex_16" ) +geompy.addToStudyInFather( Box_1, Box_1_vertex_11, "Box_1:vertex_11" ) +geompy.addToStudy( Plane_1, "Plane_1" ) +geompy.addToStudy( Partition_1, "Partition_1" ) +geompy.addToStudyInFather( Box_1, Box_1_vertex_19, "Box_1:vertex_19" ) +geompy.addToStudyInFather( Box_1, Box_1_vertex_21, "Box_1:vertex_21" ) +geompy.addToStudy( Plane_2, "Plane_2" ) + +###### SMESH part ###### +import smesh + +import StdMeshers +import NETGENPlugin + +Mesh_1 = smesh.Mesh(Partition_1) +Regular_1D = Mesh_1.Segment() +Max_Size_1 = Regular_1D.MaxSize(34.641) +MEFISTO_2D = Mesh_1.Triangle() +Tetrahedron_Netgen = Mesh_1.Tetrahedron(algo=smesh.NETGEN) +isDone = Mesh_1.Compute() + +# create a group of free faces +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_FreeFaces ) +aFaceIds = Mesh_1.GetIdsFromFilter(aFilter) + +aGroup = Mesh_1.CreateEmptyGroup(smesh.FACE, "Free_faces") +aGroup.Add(aFaceIds) + +# print the result +print "Criterion: Free nodes Nb = ", len(anNodeIds) +j = 1 +for i in range(len(aFaceIds)): + if j > 20: j = 1; print "" + print anNodeIds[i], + j = j + 1 + pass +print "" + +#filter faces from plane 2 +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_BelongToPlane, Plane_2) +aFaceIds = Mesh_1.GetIdsFromFilter(aFilter) +aGroup.Remove(aFaceIds) + +# create a group of shared faces (located on partition boundary inside box) +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_BelongToPlane, Plane_1) +aFaceIds = Mesh_1.GetIdsFromFilter(aFilter) + +aGroup = Mesh_1.CreateEmptyGroup(smesh.FACE, "Shared_faces") +aGroup.Add(aFaceIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
\anchor tui_length_2d

Length 2D

@@ -572,4 +706,4 @@ aGroup.Add(anIds) salome.sg.updateObjBrowser(1) \endcode -*/ \ No newline at end of file +*/