Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/smesh.git] / src / SMESH_SWIG / SMESH_freebord.py
1 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 #
6 #  This library is free software; you can redistribute it and/or
7 #  modify it under the terms of the GNU Lesser General Public
8 #  License as published by the Free Software Foundation; either
9 #  version 2.1 of the License.
10 #
11 #  This library is distributed in the hope that it will be useful,
12 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 #  Lesser General Public License for more details.
15 #
16 #  You should have received a copy of the GNU Lesser General Public
17 #  License along with this library; if not, write to the Free Software
18 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 #
20 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 #
22 import salome
23 import geompy
24 import smesh
25
26
27 # Create box without one plane
28
29 box = geompy.MakeBox(0., 0., 0., 10., 20., 30.)
30 subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
31
32 FaceList  = []
33 for i in range( 5 ):
34   FaceList.append( subShapeList[ i ] )
35
36 aComp = geompy.MakeCompound( FaceList )
37 aBox = geompy.Sew( aComp, 1. )
38 idbox = geompy.addToStudy( aBox, "box" )
39
40 aBox  = salome.IDToObject( idbox )
41
42 # Create mesh
43
44 mesh = smesh.Mesh(aBox, "Mesh_freebord")
45
46 algoReg = mesh.Segment()
47 hypNbSeg = algoReg.NumberOfSegments(5)
48
49 algoMef = mesh.Triangle()
50 hypArea = algoMef.MaxElementArea(20)
51
52
53 mesh.Compute()
54
55
56 # Criterion : Free edges. Create group.
57
58 aCriterion = smesh.GetCriterion(smesh.EDGE, smesh.FT_FreeEdges)
59
60 aGroup = mesh.MakeGroupByCriterion("Free edges", aCriterion)
61
62 anIds = aGroup.GetIDs()
63
64 # print result
65 print "Criterion: Free edges Nb = ", len( anIds )
66 for i in range( len( anIds ) ):
67   print anIds[ i ]
68
69 salome.sg.updateObjBrowser(1)