Salome HOME
33d45361524f5c4c06c4a87f70cdfa612a709fb8
[modules/geom.git] / src / GEOM_SWIG / GEOM_example3.py
1 #  -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2023  CEA/DEN, EDF R&D, OPEN CASCADE
3 #
4 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 #
7 # This library is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public
9 # License as published by the Free Software Foundation; either
10 # version 2.1 of the License, or (at your option) any later version.
11 #
12 # This library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 # Lesser General Public License for more details.
16 #
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with this library; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
20 #
21 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 #
23
24 #  GEOM GEOM_SWIG : binding of C++ implementation with Python
25 #  File   : GEOM_example3.py
26 #  Author : Paul RASCLE, EDF
27 #  Module : GEOM
28 #
29 import salome
30 salome.salome_init()
31 import GEOM
32 from salome.geom import geomBuilder
33 geompy = geomBuilder.New()
34 import math
35 from time import sleep
36 import salome_ComponentGUI
37
38 gg = salome.ImportComponentGUI("GEOM")
39
40 BasicOp  = geompy.GetIBasicOperations()
41 PrimOp   = geompy.GetI3DPrimOperations()
42 InsertOp = geompy.GetIInsertOperations()
43 TrsfOp   = geompy.GetITransformOperations()
44
45 point0  = BasicOp.MakePointXYZ(0.,0.,0.)
46 pointz1 = BasicOp.MakePointXYZ(0.,0.,1.)
47 dirz = BasicOp.MakeVectorTwoPnt(point0,pointz1)
48
49 torus1 = PrimOp.MakeTorusPntVecRR(point0,dirz,150.,25.)
50 id_torus1 = geompy.addToStudy(torus1,"torus1")
51 if not isinstance(gg, type(salome_ComponentGUI)):
52     gg.createAndDisplayGO(id_torus1)
53
54 torus2 = InsertOp.MakeCopy(torus1)
55
56 vec1 = BasicOp.MakeVectorDXDYDZ(0.,0.,100.)
57 torus2 = TrsfOp.TranslateVectorCopy(torus2,vec1)
58 id_torus2 = geompy.addToStudy(torus2,"torus2")
59 if not isinstance(gg, type(salome_ComponentGUI)):
60     gg.createAndDisplayGO(id_torus2)
61
62 cylz1 = PrimOp.MakeCylinderPntVecRH(point0,dirz,25.,100.)
63
64 ind = 0
65 shapeList = []
66 idList = []
67 while ind < 6:
68     acyl = InsertOp.MakeCopy(cylz1)
69     x = 150. * math.cos(ind * math.pi/3.)
70     y = 150. * math.sin(ind * math.pi/3.)
71     z = 0.
72     vec_i = BasicOp.MakeVectorDXDYDZ(x,y,z)
73     name = "cyl%d"%(ind)
74     acyl = TrsfOp.TranslateVectorCopy(acyl,vec_i)
75     id_acyl = geompy.addToStudy(acyl,name)
76     if not isinstance(gg, type(salome_ComponentGUI)):
77         gg.createAndDisplayGO(id_acyl)
78     shapeList.append(acyl)
79     idList.append(id_acyl)
80     ind = ind +1
81
82 shapeList.append(torus1)
83 shapeList.append(torus2)
84 idList.append(id_torus1)
85 idList.append(id_torus2)
86
87 cage = geompy.MakeCompound(shapeList)
88 id_cage = geompy.addToStudy(cage,"cage")
89 if not isinstance(gg, type(salome_ComponentGUI)):
90     gg.createAndDisplayGO(id_cage)
91
92 from salome import sg
93 sleep(1)
94 sg.EraseAll()
95 for id in idList:
96     sg.DisplayOnly(id)
97     sleep(1)
98 sg.EraseAll()
99 for id in idList:
100     sg.Display(id)
101     sleep(1)
102 for id in idList:
103     sg.Erase(id)
104     sleep(1)
105
106 #sg.Display(id_cage)
107 sg.Display(id_torus1)
108 sg.Display(id_torus2)
109 sg.Display(id_acyl)
110 if not isinstance(gg, type(salome_ComponentGUI)):
111     gg.setTransparency(id_torus1,0.5)
112     
113     gg.setDisplayMode(id_torus1,1)
114     gg.setDisplayMode(id_torus2,1)
115     gg.setVectorsMode(id_acyl,True)
116     gg.setVerticesMode(id_acyl,True)
117     #gg.setDisplayMode(id_cage,1)
118     
119     gg.setColor(id_torus1,0,0,255)
120     gg.setColor(id_torus2,255,0,0)
121     gg.setColor(id_acyl,0,255,0)
122     #gg.setColor(id_cage,255,255,0)