Salome HOME
bos #29171 Refactor testing procedure
[modules/smesh.git] / doc / examples / quality_controls_defl.py
diff --git a/doc/examples/quality_controls_defl.py b/doc/examples/quality_controls_defl.py
new file mode 100644 (file)
index 0000000..42c04a3
--- /dev/null
@@ -0,0 +1,43 @@
+# Deflection 2D
+
+import salome
+salome.salome_init_without_session()
+
+import SMESH
+from salome.geom import geomBuilder
+from salome.smesh import smeshBuilder
+
+geom_builder = geomBuilder.New()
+smesh_builder = smeshBuilder.New()
+
+# fuse a box and a sphere
+Sphere_1 = geom_builder.MakeSphereR(100)
+Box_1 = geom_builder.MakeBoxDXDYDZ(200, 200, 200)
+Fuse = geom_builder.MakeFuse( Sphere_1, Box_1, theName="box + sphere" )
+
+# create a mesh
+mesh = smesh_builder.Mesh( Fuse, "Deflection_2D")
+algo = mesh.Segment()
+algo.LocalLength(35)
+algo = mesh.Triangle()
+mesh.Compute()
+
+# get min and max deflection
+minMax = mesh.GetMinMax( SMESH.FT_Deflection2D )
+print("min and max deflection: ", minMax)
+
+# get deflection of a certain face
+faceID = mesh.NbEdges() + mesh.NbFaces()
+defl = mesh.FunctorValue( SMESH.FT_Deflection2D, faceID )
+print("deflection of face %s = %s" % ( faceID, defl ))
+
+margin = minMax[1] / 2
+
+# get all faces with deflection LESS than the margin
+aFilter = smesh_builder.GetFilter(SMESH.FACE, SMESH.FT_Deflection2D, '<', margin, mesh=mesh)
+anIds = aFilter.GetIDs()
+print("%s faces have deflection less than %s" %( len(anIds), margin ))
+
+# create a group of faces with deflection MORE than the margin
+aGroup = mesh.MakeGroup("Deflection > " + repr(margin), SMESH.FACE, SMESH.FT_Deflection2D,'>',margin)
+print("%s faces have deflection more than %s: %s ..." %( aGroup.Size(), margin, aGroup.GetIDs()[:10] ))