Salome HOME
22755: [EDF] Improvement of Projection operation
[modules/geom.git] / doc / salome / examples / repairing_operations_ex06.py
1 # Sewing
2
3 import salome, math
4 salome.salome_init()
5 from salome.geom import geomBuilder
6
7 geompy = geomBuilder.New(salome.myStudy)
8 gg     = salome.ImportComponentGUI("GEOM")
9
10 # create base points
11 px = geompy.MakeVertex(100., 0., 0.)
12 py = geompy.MakeVertex(0., 100., 0.)
13 pz = geompy.MakeVertex(0., 0., 100.)
14
15 # create base geometry 2D
16 vector = geompy.MakeVector(px, py)
17 arc    = geompy.MakeArc(py, pz, px)
18
19 # create base objects
20 angle = 45. * math.pi / 180
21 WantPlanarFace = True
22 wire     = geompy.MakeWire([vector, arc])
23 face     = geompy.MakeFace(wire, WantPlanarFace)
24 face_rot = geompy.MakeRotation(face, vector, angle)
25
26 # make sewing
27 precision = 0.00001
28 sewing = geompy.MakeSewing([face, face_rot], precision)
29
30 # add objects in the study
31 id_face     = geompy.addToStudy(face, "Face")
32 id_face_rot = geompy.addToStudy(face_rot, "Face rotation")
33 id_sewing   = geompy.addToStudy(sewing, "Sewing")
34
35 # display the results
36 gg.createAndDisplayGO(id_face)
37 gg.setDisplayMode(id_face,1)
38 gg.createAndDisplayGO(id_face_rot)
39 gg.setDisplayMode(id_face_rot,1)
40 gg.createAndDisplayGO(id_sewing)
41 gg.setDisplayMode(id_sewing,1) 
42
43
44 # Example 2: make a shell of a multiply translated face
45 quad         = geompy.MakeFaceHW( 10, 20, 1 )
46 quadCompound = geompy.MakeMultiTranslation1D( quad, geompy.MakeVectorDXDYDZ(1,0,0), 10, 3)
47 shell        = geompy.Sew( quadCompound, 1e-6 )
48
49 id_shell = geompy.addToStudy( shell, "3 quads shell")
50 gg.createAndDisplayGO(id_shell)