Salome HOME
Merge branch 'hydro/imps_2015' into V7_dev
[modules/geom.git] / doc / salome / examples / transformation_operations_ex07.py
1 # Projection
2
3 import salome
4 salome.salome_init()
5 from salome.geom import geomBuilder
6 geompy = geomBuilder.New(salome.myStudy)
7
8 # create a cylindric face and a curve(edge)
9 cylinder = geompy.MakeCylinderRH(100, 300)
10 [face_cyl] = geompy.SubShapes(cylinder, [3])
11
12 p1 = geompy.MakeVertex(200, 0, 100)
13 p2 = geompy.MakeVertex(200, 80, 100)
14 p3 = geompy.MakeVertex(200, 80, 180)
15 p4 = geompy.MakeVertex(130, 80, 180)
16 p5 = geompy.MakeVertex(90, 80, 240)
17
18 curve = geompy.MakeInterpol([p1, p2, p3, p4, p5], False, False)
19
20 # create a new object as projection of the
21 # given curve on the given cylindric face
22 projection = geompy.MakeProjection(curve, face_cyl)
23
24 # add objects in the study
25 geompy.addToStudy(cylinder, "cylinder")
26 geompy.addToStudyInFather(cylinder, face_cyl, "face_cyl")
27 geompy.addToStudy(curve, "curve")
28 geompy.addToStudy(projection, "projection")
29
30 #projection of point on wire
31 e1 = geompy.MakeLineTwoPnt(p1, p2)
32 e2 = geompy.MakeLineTwoPnt(p2, p3)
33
34 w1 = geompy.MakeWire([e1, e2], 1.e-7)
35 v1 = geompy.MakeVertex(300, 40, 100)
36
37 prj = geompy.MakeProjection(v1, w1)
38 geompy.addToStudy(w1, "w1")
39 geompy.addToStudy(v1, "v1")
40 geompy.addToStudy(prj, "projOnWire")
41
42 #projection of a wire on cylinder
43 pp1 = geompy.MakeVertex(100, 200, 0)
44 pp2 = geompy.MakeVertex(100, 200, 80)
45 pp3 = geompy.MakeVertex(100, 220, 90)
46 pp4 = geompy.MakeVertex(100, 130, 80)
47 pp5 = geompy.MakeVertex(100, 90, 80)
48 cc1 = geompy.MakeInterpol([pp1, pp2, pp3, pp4, pp5], True, False)
49 ww1 = geompy.MakeWire([cc1], 1.e-7)
50 vx = geompy.MakeVectorDXDYDZ(100, 0, 0)
51 pln1 = geompy.MakePlane(pp1, vx, 200)
52 face1 = geompy.MakeFaceFromSurface(pln1, ww1)
53 prj_cyl = geompy.MakeProjectionOnCylinder(face1, 100)
54
55 geompy.addToStudy(face1, "pln_face")
56 geompy.addToStudy(prj_cyl, "projOnCylinder")