1 # GEOM GEOM_SWIG : binding of C++ omplementaion with Python
3 # Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 # See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
24 # File : GEOM_Sphere.py
25 # Author : Damien COQUERET, Open CASCADE
34 # It is an example of creating a hexahedrical mesh on a sphere.
36 # Used approach allows to avoid problems with degenerated and
37 # seam edges without special processing of geometrical shapes
39 #-----------------------------------------------------------------------
51 P0 = MakeVertex(0., 0., 0.)
52 P1 = MakeVertex(-Dist, -Dist, -Dist)
53 P2 = MakeVertex(-Dist, -Dist, Dist)
54 P3 = MakeVertex(-Dist, Dist, Dist)
55 P4 = MakeVertex(-Dist, Dist, -Dist)
57 VZ = MakeVectorDXDYDZ(0., 0., 1.)
59 #Construction Elements
66 PolyLine = MakePolyline(PointsList)
68 Face1 = MakeFace(PolyLine, 1)
69 Face2 = MakeScaleTransform(Face1, P0, Factor)
70 Face3 = MakeScaleTransform(Face1, P0, -1.)
73 Sphere = MakeSphereR(Radius)
75 Block = MakeHexa2Faces(Face1, Face2)
76 Cube = MakeHexa2Faces(Face1, Face3)
78 Common1 = MakeBoolean(Sphere, Block, 1)
79 Common2 = MakeRotation(Common1, VZ, Angle90)
81 MultiBlock1 = MakeMultiTransformation1D(Common1, 21, -1, 3)
82 MultiBlock2 = MakeMultiTransformation1D(Common2, 31, -1, 3)
84 #Reconstruct sphere from several blocks
85 ShapesList.append(Cube)
86 ShapesList.append(MultiBlock1)
87 ShapesList.append(MultiBlock2)
88 Compound = MakeCompound(ShapesList)
90 Result = MakeGlueFaces(Compound, 0.1)
93 Id_Sphere = addToStudy(Sphere, "Sphere")
94 Id_Cube = addToStudy(Cube, "Cube")
96 Id_Common1 = addToStudy(Common1, "Common1")
97 Id_Common2 = addToStudy(Common2, "Common2")
99 Id_MultiBlock1 = addToStudy(MultiBlock1, "MultiBlock1")
100 Id_MultiBlock2 = addToStudy(MultiBlock2, "MultiBlock2")
102 Id_Result = addToStudy(Result, "Result")
104 #-----------------------------------------------------------------------
106 my_hexa = smesh.Mesh(Result, "Sphere_Mesh")
107 algo = my_hexa.Segment()
108 algo.NumberOfSegments(NbSeg)