Salome HOME
bos #29468: Advanced geometry features: distance Edge-Edge & Face-Face
[modules/geom.git] / doc / salome / examples / topological_geom_objs_ex03.py
1 # Creation of a Face
2
3 import salome
4 salome.salome_init_without_session()
5 import GEOM
6 from salome.geom import geomBuilder
7 geompy = geomBuilder.New()
8 gg = salome.ImportComponentGUI("GEOM")
9
10 # create vertices
11 p0   = geompy.MakeVertex(0.  , 0.  , 0.  )
12 px   = geompy.MakeVertex(100., 0.  , 0.  )
13 py   = geompy.MakeVertex(0.  , 100., 0.  )
14 pz   = geompy.MakeVertex(0.  , 0.  , 100.)
15 pxyz = geompy.MakeVertex(100., 100., 100.)
16
17 # create a vector from two points
18 vxy = geompy.MakeVector(px, py)
19
20 # create an arc from three points
21 arc = geompy.MakeArc(py, pz, px)
22
23 # create a wire
24 wire = geompy.MakeWire([vxy, arc])
25
26 # create sketchers
27 sketcher1 = geompy.MakeSketcher("Sketcher:F -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WW",
28                                 [100,0,0, 1,1,1, -1,1,0])
29 sketcher2 = geompy.MakeSketcher("Sketcher:F 0 0:TT 70 0:TT 70 70:TT 0 70:WW")
30 sketcher3 = geompy.MakeSketcher("Sketcher:F 20 20:TT 50 20:TT 50 50:TT 20 50:WW")
31 isPlanarFace = 1
32
33 sphere = geompy.MakeSphereR(100)
34 box = geompy.MakeBoxDXDYDZ(200, 200, 200)
35 cut = geompy.MakeCutList(sphere, [box], True)
36
37 # create a face from the wire
38 face1 = geompy.MakeFace(wire, isPlanarFace)
39
40 # create faces from two wires
41 face2 = geompy.MakeFaceWires([wire, sketcher1],isPlanarFace)
42 face3 = geompy.MakeFaces([sketcher2, sketcher3],isPlanarFace)
43 face4 = geompy.MakeFaceFromSurface(face1, sketcher1)
44
45 # create face from edges with constraints
46 face5 = geompy.MakeFaceWithConstraints([geompy.GetSubShape(cut, [5]), geompy.GetSubShape(cut, [3]), 
47                                         geompy.GetSubShape(cut, [11]), geompy.GetSubShape(cut, [3]), 
48                                         geompy.GetSubShape(cut, [13]), geompy.GetSubShape(cut, [3])])
49
50 # add objects in the study
51 id_face1 = geompy.addToStudy(face1,"Face1")
52 id_face2 = geompy.addToStudy(face2,"Face2")
53 id_face3 = geompy.addToStudy(face3,"Face3")
54 id_face4 = geompy.addToStudy(face4,"Face4")
55 id_face5 = geompy.addToStudy(face5,"Face5")
56
57 # display the faces
58 gg.createAndDisplayGO(id_face1)
59 gg.setDisplayMode(id_face1,1)
60 gg.setTransparency(id_face1,0.2)
61 gg.createAndDisplayGO(id_face2)
62 gg.setDisplayMode(id_face2,1)
63 gg.setTransparency(id_face2,0.2)
64 gg.createAndDisplayGO(id_face3)
65 gg.setDisplayMode(id_face3,1)
66 gg.setTransparency(id_face3,0.2) 
67 gg.createAndDisplayGO(id_face4)
68 gg.setDisplayMode(id_face4,1)
69 gg.setTransparency(id_face4,0.2)
70 gg.createAndDisplayGO(id_face5)
71 gg.setDisplayMode(id_face5,1)
72 gg.setTransparency(id_face5,0.2)