Salome HOME
0022088: EDF 1631 GEOM : 2D sketcher interface
[modules/geom.git] / doc / salome / examples / sketcher.py
1 # 2D Sketcher
2
3 import salome
4 salome.salome_init()
5 import GEOM
6 from salome.geom import geomBuilder
7 geompy = geomBuilder.New(salome.myStudy)
8 gg = salome.ImportComponentGUI("GEOM")
9
10 # create vertices
11 p1 = geompy.MakeVertex(70.,  0.,  0.)
12 p2 = geompy.MakeVertex(70., 70., 80.)
13 p3 = geompy.MakeVertex( 0., 70.,  0.)
14
15 #create a vector from two points
16 vector_arc = geompy.MakeVector(p1, p3)
17
18 # create an arc from three points
19 arc = geompy.MakeArc(p1, p2, p3)
20
21 # create a wire
22 wire = geompy.MakeWire([vector_arc, arc])
23
24 # create a planar face
25 isPlanarWanted = 1
26 face = geompy.MakeFace(wire, isPlanarWanted)
27
28 # create a sketcher (face), following the textual description
29 sketcher1 = geompy.MakeSketcher("Sketcher:F -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WF",
30                                 [100,0,0, 1,1,1, -1,1,0])
31
32 # create a sketcher (wire) on the given face
33 sketcher2 = geompy.MakeSketcherOnPlane("Sketcher:F 10 -30:R 10:C 20 180:R 15:L 50:WW", face)
34
35 # Create the same 2D sketchers with Sketcher2D interface
36
37 sk = geompy.Sketcher2D()
38 sk.addPoint(-100, -100)
39 sk.addSegmentAbsolute(250, -100)
40 sk.addArcAngleRadiusLength(0, 100, 150)
41 sk.addSegmentAngleLength(0, 300)
42 sk.close()
43 sketcher3 = sk.face([100, 0, 0, 1, 1, 1, -1, 1, 0])
44
45 sk = geompy.Sketcher2D()
46 sk.addPoint(10, -30)
47 sk.addArcAngleRadiusLength(10, 20, 180)
48 sk.addSegmentAngleLength(15, 50)
49 sk.close()
50 sketcher4 = sk.wire(face)
51
52 # add objects in the study
53 id_face = geompy.addToStudy(face,"Face")
54 id_sketcher1 = geompy.addToStudy(sketcher1,"Sketcher1")
55 id_sketcher2 = geompy.addToStudy(sketcher2,"Sketcher2")
56 id_sketcher3 = geompy.addToStudy(sketcher3, 'Sketcher3' )
57 id_sketcher4 = geompy.addToStudy(sketcher4, 'Sketcher4' )
58
59 # display the first sketcher and the second sketcher with its planar face
60 gg.createAndDisplayGO(id_face)
61 gg.setDisplayMode(id_face,1)
62 gg.setTransparency(id_face,0.5)
63 gg.createAndDisplayGO(id_sketcher1)
64 gg.createAndDisplayGO(id_sketcher2)
65 gg.createAndDisplayGO(id_sketcher3)
66 gg.createAndDisplayGO(id_sketcher4) 
67