Salome HOME
SALOME PAL V1_4_1
[modules/smesh.git] / src / SMESH_SWIG / SMESH_freebord.py
diff --git a/src/SMESH_SWIG/SMESH_freebord.py b/src/SMESH_SWIG/SMESH_freebord.py
new file mode 100644 (file)
index 0000000..d24e340
--- /dev/null
@@ -0,0 +1,78 @@
+import salome\r
+from geompy import gg\r
+import geompy\r
+import SMESH\r
+\r
+import StdMeshers\r
+\r
+ShapeTypeCompSolid = 1\r
+ShapeTypeSolid = 2\r
+ShapeTypeShell = 3\r
+ShapeTypeFace = 4\r
+ShapeTypeWire = 5\r
+ShapeTypeEdge = 6\r
+ShapeTypeVertex = 7\r
+\r
+geom  = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")\r
+smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")\r
+\r
+geom.GetCurrentStudy(salome.myStudy._get_StudyId())\r
+smesh.SetCurrentStudy(salome.myStudy)\r
+\r
+# Create box without one plane\r
+\r
+box = geompy.MakeBox(0., 0., 0., 10., 20., 30.)\r
+subShapeList = geompy.SubShapeAll(box,ShapeTypeFace)\r
+\r
+FaceList  = []\r
+for i in range( 5 ):\r
+  FaceList.append( subShapeList[ i ]._get_Name() )\r
+\r
+aBox = geompy.MakeSewing( FaceList, 1. )\r
+idbox = geompy.addToStudy( aBox, "box" )\r
+  \r
+aBox  = salome.IDToObject( idbox )\r
+\r
+# Create mesh\r
+\r
+hyp1 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")\r
+hyp1.SetNumberOfSegments(5)\r
+hyp2 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")\r
+hyp2.SetMaxElementArea(20)\r
+hyp3 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")\r
+hyp3.SetMaxElementArea(50)\r
+\r
+algo1 = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")\r
+algo2 = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")\r
+\r
+mesh = smesh.CreateMesh(aBox)\r
+mesh.AddHypothesis(aBox,hyp1)\r
+mesh.AddHypothesis(aBox,hyp2)\r
+mesh.AddHypothesis(aBox,algo1)\r
+mesh.AddHypothesis(aBox,algo2)\r
+\r
+smesh.Compute(mesh,aBox)\r
+\r
+smeshgui = salome.ImportComponentGUI("SMESH")\r
+smeshgui.Init(salome.myStudyId);\r
+smeshgui.SetName( salome.ObjectToID( mesh ), "Mesh_freebord" );\r
+\r
+# Criterion : Free edges\r
+aFilterMgr = smesh.CreateFilterManager()\r
+aPredicate = aFilterMgr.CreateFreeBorders()\r
+aFilter = aFilterMgr.CreateFilter()\r
+aFilter.SetPredicate( aPredicate )\r
+\r
+anIds = aFilter.GetElementsId( mesh )\r
+\r
+# print result\r
+print "Criterion: Free edges Nb = ", len( anIds )\r
+for i in range( len( anIds ) ):\r
+  print anIds[ i ]\r
+\r
+# create group\r
+aGroup = mesh.CreateGroup( SMESH.EDGE, "Free edges" )\r
+aGroup.Add( anIds )\r
+\r
+\r
+salome.sg.updateObjBrowser(1)\r