Salome HOME
SALOME PAL V1_4_1
[modules/smesh.git] / src / SMESH_SWIG / SMESH_freebord.py
1 import salome\r
2 from geompy import gg\r
3 import geompy\r
4 import SMESH\r
5 \r
6 import StdMeshers\r
7 \r
8 ShapeTypeCompSolid = 1\r
9 ShapeTypeSolid = 2\r
10 ShapeTypeShell = 3\r
11 ShapeTypeFace = 4\r
12 ShapeTypeWire = 5\r
13 ShapeTypeEdge = 6\r
14 ShapeTypeVertex = 7\r
15 \r
16 geom  = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")\r
17 smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")\r
18 \r
19 geom.GetCurrentStudy(salome.myStudy._get_StudyId())\r
20 smesh.SetCurrentStudy(salome.myStudy)\r
21 \r
22 # Create box without one plane\r
23 \r
24 box = geompy.MakeBox(0., 0., 0., 10., 20., 30.)\r
25 subShapeList = geompy.SubShapeAll(box,ShapeTypeFace)\r
26 \r
27 FaceList  = []\r
28 for i in range( 5 ):\r
29   FaceList.append( subShapeList[ i ]._get_Name() )\r
30 \r
31 aBox = geompy.MakeSewing( FaceList, 1. )\r
32 idbox = geompy.addToStudy( aBox, "box" )\r
33   \r
34 aBox  = salome.IDToObject( idbox )\r
35 \r
36 # Create mesh\r
37 \r
38 hyp1 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")\r
39 hyp1.SetNumberOfSegments(5)\r
40 hyp2 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")\r
41 hyp2.SetMaxElementArea(20)\r
42 hyp3 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")\r
43 hyp3.SetMaxElementArea(50)\r
44 \r
45 algo1 = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")\r
46 algo2 = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")\r
47 \r
48 mesh = smesh.CreateMesh(aBox)\r
49 mesh.AddHypothesis(aBox,hyp1)\r
50 mesh.AddHypothesis(aBox,hyp2)\r
51 mesh.AddHypothesis(aBox,algo1)\r
52 mesh.AddHypothesis(aBox,algo2)\r
53 \r
54 smesh.Compute(mesh,aBox)\r
55 \r
56 smeshgui = salome.ImportComponentGUI("SMESH")\r
57 smeshgui.Init(salome.myStudyId);\r
58 smeshgui.SetName( salome.ObjectToID( mesh ), "Mesh_freebord" );\r
59 \r
60 # Criterion : Free edges\r
61 aFilterMgr = smesh.CreateFilterManager()\r
62 aPredicate = aFilterMgr.CreateFreeBorders()\r
63 aFilter = aFilterMgr.CreateFilter()\r
64 aFilter.SetPredicate( aPredicate )\r
65 \r
66 anIds = aFilter.GetElementsId( mesh )\r
67 \r
68 # print result\r
69 print "Criterion: Free edges Nb = ", len( anIds )\r
70 for i in range( len( anIds ) ):\r
71   print anIds[ i ]\r
72 \r
73 # create group\r
74 aGroup = mesh.CreateGroup( SMESH.EDGE, "Free edges" )\r
75 aGroup.Add( anIds )\r
76 \r
77 \r
78 salome.sg.updateObjBrowser(1)\r