1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
4 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
21 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 # GEOM GEOM_SWIG : binding of C++ omplementaion with Python
24 # File : GEOM_usinggeom.py
25 # Author : Damien COQUERET, Open CASCADE
28 # ! Please, if you edit this example file, update also
29 # ! GEOM_SRC/doc/salome/gui/GEOM/input/tui_test_all.doc
30 # ! as some sequences of symbols from this example are used during
31 # ! documentation generation to identify certain places of this file
33 def TestAll (geompy, math):
36 #Create base Variables
42 WantPlanarFace = 1 #True
53 angle1 = angle * math.pi / 180
60 meshingdeflection = 0.01
65 p0 = geompy.MakeVertex(0. , 0. , 0. ) #(3 Doubles)->GEOM_Object
66 px = geompy.MakeVertex(100., 0. , 0. )
67 py = geompy.MakeVertex(0. , 100., 0. )
68 pz = geompy.MakeVertex(0. , 0. , 100.)
69 pxyz = geompy.MakeVertex(100., 100., 100.)
71 p200 = geompy.MakeVertexWithRef(pxyz, 100., 100., 100.) #(GEOM_Object, 3 Doubles)->GEOM_Object
73 #Create base directions
74 vx = geompy.MakeVector(p0, px) #(GEOM_Object, GEOM_Object)->GEOM_Object
75 vy = geompy.MakeVector(p0, py)
76 vz = geompy.MakeVector(p0, pz)
77 vxy = geompy.MakeVector(px, py)
79 vxyz = geompy.MakeVectorDXDYDZ(100., 100., 100.) #(3 Doubles)->GEOM_Object
81 #Create local coordinate systems
82 cs1 = geompy.MakeMarker(50,50,50, 1,0,0, 0,1,0) #(9 Doubles)->GEOM_Object
83 cs2 = geompy.MakeMarker(70,80,10, 1,0,1, 1,1,0) #(9 Doubles)->GEOM_Object
84 cs3 = geompy.MakeMarkerPntTwoVec(pz, vxy, vz) #(3 GEOM_Object)->GEOM_Object
86 #Create base geometry 2D
87 Line = geompy.MakeLineTwoPnt(p0, pxyz) #(2 GEOM_Object)->GEOM_Object
88 Line1 = geompy.MakeLine(pz, vxy) #(2 GEOM_Object)->GEOM_Object
89 Line2 = geompy.MakeLineTwoPnt(pxyz, pz) #(2 GEOM_Object)->GEOM_Object
90 Plane = geompy.MakePlane(pz, vxyz, trimsize) #(2 GEOM_Object, Double)->GEOM_Object
91 Plane1 = geompy.MakePlaneThreePnt(px, pz, p200, trimsize) #(4 Doubles)->GEOM_Object
92 Plane2 = geompy.MakePlane2Vec(vx, vz, trimsize) #(2 GEOM_Object, Double)->GEOM_Object
93 Plane3 = geompy.MakePlaneLCS(cs1, trimsize, 3) #(1 GEOM_Object, 2 Double)->GEOM_Object
95 Arc = geompy.MakeArc(py, pz, px) #(3 GEOM_Object)->GEOM_Object
96 Arc2 = geompy.MakeArcCenter(py, pz, px,0) #(3 GEOM_Object,Boolean)->GEOM_Object
97 Arc3 = geompy.MakeArcOfEllipse(p0, px, pz) #(3 GEOM_Object,Boolean)->GEOM_Object
98 Circle = geompy.MakeCircle(p0, vz, radius1) #(2 GEOM_Object, Double)->GEOM_Object
99 Circle1 = geompy.MakeCircleThreePnt(p0, pxyz, px) #(3 GEOM_Object)->GEOM_Object
100 Circle2 = geompy.MakeCircleCenter2Pnt(p0, pxyz, py) #(3 GEOM_Object)->GEOM_Object
101 Ellipse = geompy.MakeEllipse(p0, vy, radius2, radius1) #(2 GEOM_Object, 2 Doubles)->GEOM_Object
102 Polyline = geompy.MakePolyline([p0, pz, py, p200]) #(List of GEOM_Object)->GEOM_Object
103 Bezier = geompy.MakeBezier([p0, pz, p200, px]) #(List of GEOM_Object)->GEOM_Object
104 Interpol = geompy.MakeInterpol([px, py, p200, pxyz], True) #(List of GEOM_Object,Boolean)->GEOM_Object
105 Sketcher = geompy.MakeSketcher("Sketcher:F -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WW",
106 [100,0,0, 1,1,1, -1,1,0]) #(String, List of Doubles)->GEOM_Object
108 #Create 3D wires with 3D Sketcher
109 sk = geompy.Sketcher3D()
110 sk.addPointsAbsolute(0,0,0, 70,0,0)
111 sk.addPointsRelative(0, 0, 130)
112 sk.addPointAnglesLength("OXY", 50, 0, 100)
113 sk.addPointAnglesLength("OXZ", 30, 80, 130)
115 Sketcher3d_1 = sk.wire()
117 Sketcher3d_2 = geompy.Make3DSketcher([0,0,0, 50,50,50, 0,50,50, 10,0,0])
119 #Create local coordinate system from shape
120 cs4 = geompy.MakeMarkerFromShape(Plane)
122 #Test point on curve creation
123 p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25) #(GEOM_Object, Double)->GEOM_Object
124 p_on_arc2 = geompy.MakeVertexOnCurveByCoord(Arc, 100, -10, 10 ) #(GEOM_Object, Double)->GEOM_Object
125 p_on_arc3 = geompy.MakeVertexOnCurveByLength(Arc, 50, py) #(GEOM_Object, Double, GEOM_Object)->GEOM_Object
127 #Test point on lines intersection
128 p_on_l1l2 = geompy.MakeVertexOnLinesIntersection(Line1, Line2) #(2 GEOM_Object)->GEOM_Object
130 #Test tangent on curve creation
131 tan_on_arc = geompy.MakeTangentOnCurve(Arc, 0.7) #(GEOM_Object, Double)->GEOM_Object
133 #Test tangent on face creation
134 tan_vertex_1 = geompy.MakeVertex(0, 0, 0)
135 tan_vertex_2 = geompy.MakeVertex(0, 90, 30)
136 tan_vertex_3 = geompy.MakeVertex(100, 90, 0)
137 tan_vertex_4 = geompy.MakeVertex(-100, 90, 0)
138 tan_curve = geompy.MakeInterpol([tan_vertex_4, tan_vertex_2, tan_vertex_3, tan_vertex_1], False)
139 tan_extrusion = geompy.MakePrismDXDYDZ(tan_curve, 0, 30, -60)
140 tan_on_face = geompy.MakeTangentPlaneOnFace(tan_extrusion, 0.7, 0.5, 150)
142 #Create base geometry 3D
143 Box = geompy.MakeBoxTwoPnt(p0, p200) #(2 GEOM_Object)->GEOM_Object
144 Box1 = geompy.MakeBoxDXDYDZ(10, 20, 30) #(3 Doubles)->GEOM_Object
145 Box2 = geompy.MakeBox(10,20,30, 15,25,35) #(6 Doubles)->GEOM_Object
146 Cylinder = geompy.MakeCylinder(p0, vz, radius1, height) #(2 GEOM_Object, 2 Doubles)->GEOM_Object
147 Cyl1 = geompy.MakeCylinderRH(radius2, height) #(2 Doubles)->GEOM_Object
148 Sphere = geompy.MakeSpherePntR(p0, radius1) #(GEOM_Object, Double)->GEOM_Object
149 Sphere1 = geompy.MakeSphereR(radius) #(Double)->GEOM_Object
150 Sphere2 = geompy.MakeSphere(50, 70, 30, radius) #(4 Doubles)->GEOM_Object
151 Cone = geompy.MakeCone(p0, vz, radius2, radius, height) #(2 GEOM_Object, 3 Doubles)->GEOM_Object
152 Cone1 = geompy.MakeConeR1R2H(radius1, radius, height) #(3 Doubles)->GEOM_Object
153 Torus = geompy.MakeTorus(p0, vz, radius2, radius) #(2 GEOM_Object, 2 Doubles)->GEOM_Object
154 Torus1 = geompy.MakeTorusRR(radius2, radius1) #(2 Doubles)->GEOM_Object
156 #Boolean (Common, Cut, Fuse, Section)
157 Common = geompy.MakeBoolean(Box, Sphere, 1) #(2 GEOM_Object, Short)->GEOM_Object
158 Cut = geompy.MakeBoolean(Box, Sphere, 2)
159 Fuse = geompy.MakeBoolean(Box, Sphere, 3)
160 Section = geompy.MakeBoolean(Box, Sphere, 4)
163 Edge = geompy.MakeEdge(p0, pxyz) #(2 GEOM_Object)->GEOM_Object
164 Edge1 = geompy.MakeEdgeOnCurveByLength(Arc, 50, px) #(GEOM_Object, Double, GEOM_Object)->GEOM_Object
165 Wire = geompy.MakeWire([vxy, Arc]) #(List Of GEOM_Object)->GEOM_Object
166 Face = geompy.MakeFace(Wire, WantPlanarFace) #(GEOM_Object, Boolean)->GEOM_Object
167 Face1 = geompy.MakeFaceWires([Wire, Sketcher],
168 WantPlanarFace) #(List of GEOM_Object, Boolean)->GEOM_Object
169 Face2 = geompy.MakeFace(Sketcher, WantPlanarFace)
170 Face3 = geompy.MakeFaceHW (100., 200., 1) #(2 Doubles, 1 Int)->GEOM_Object
171 Face4 = geompy.MakeFaceObjHW (vz, 200., 100.) #(1 GEOM_Object, 2 Doubles)->GEOM_Object
172 Disk = geompy.MakeDiskPntVecR (p0, vz, radius) #(2 GEOM_Object, 1 Double)->GEOM_Object
173 Disk2 = geompy.MakeDiskThreePnt(p0, p200, pz) #(3 GEOM_Object)->GEOM_Object
174 Disk3 = geompy.MakeDiskR(100., 1) #(1 Doubles, 1 Int)->GEOM_Object
175 Shell = geompy.MakeShell([Face, Face1]) #(List of GEOM_Object)->GEOM_Object
177 Prism1 = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
178 prism1_faces = geompy.SubShapeAllSortedCentres(Prism1, geompy.ShapeType["FACE"])
179 Shell1 = geompy.MakeShell([prism1_faces[0], prism1_faces[1],
180 prism1_faces[3], prism1_faces[4],
181 prism1_faces[5], prism1_faces[2]])
182 Solid = geompy.MakeSolid([Shell1]) #(List of GEOM_Object)->GEOM_Object
184 ShapeListCompound = []
187 S = geompy.MakeTranslation(Arc, i * 100., i * 100., i * 100.)
188 ShapeListCompound.append(S)
190 Compound = geompy.MakeCompound(ShapeListCompound) #(List of GEOM_Object)->GEOM_Object
192 #Test point on surface creation
193 p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8) #(GEOM_Object, Double, Double)->GEOM_Object
194 p_on_face2 = geompy.MakeVertexOnSurfaceByCoord(Face, 0., 0., 0.) #(GEOM_Object, Double, Double, Double)->GEOM_Object
195 p_on_face3 = geompy.MakeVertexInsideFace(Face) #(GEOM_Object)->GEOM_Object
197 # Test plane from existing face creation
198 Plane2 = geompy.MakePlaneFace(Face, trimsize) #(GEOM_Object, Double)->GEOM_Object
200 #ShapeList for Sewing
201 S = geompy.MakeRotation(Face, vxy, angle1)
203 #Test Line on Faces Intersection
204 Line3 = geompy.MakeLineTwoFaces(prism1_faces[0], prism1_faces[1]) #(2 GEOM_Object)->GEOM_Object
206 #Create advanced objects
207 Copy = geompy.MakeCopy(Box) #(GEOM_Object)->GEOM_Object
208 Prism = geompy.MakePrismVecH(Face, vz, 100.0) #(2 GEOM_Object, Double)->GEOM_Object
209 Prism2Ways = geompy.MakePrismVecH2Ways(Face, vz, 10.0) #(2 GEOM_Object, Double)->GEOM_Object
210 PrismTwoPnt = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
211 PrismTwoPnt2Ways = geompy.MakePrism2Ways(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
212 PrismDXDYDZ = geompy.MakePrismDXDYDZ(Face2, 10, 20, 100)#(2 GEOM_Object, Double)->GEOM_Object
213 PrismDXDYDZ2Ways = geompy.MakePrismDXDYDZ2Ways(Face, 30, -20, 200)#(2 GEOM_Object, Double)->GEOM_Object
214 Revolution = geompy.MakeRevolution(Face, vz, angle2) #
215 Revolution2Ways = geompy.MakeRevolution(Face, vz, angle1) #
216 Filling = geompy.MakeFilling(Compound, mindeg, maxdeg,
217 tol2d, tol3d, nbiter) #(GEOM_Object, 4 Doubles, Short)->GEOM_Object
218 Pipe = geompy.MakePipe(Wire, Edge) #(2 GEOM_Object)->GEOM_Object
219 Sewing = geompy.MakeSewing([Face, S], precision) #(List Of GEOM_Object, Double)->GEOM_Object
222 Translation = geompy.MakeTranslationTwoPoints(Box, px, pz) #(3 GEOM_Object)->GEOM_Object
223 TranslVect = geompy.MakeTranslationVector(Box, vxyz) #(2 GEOM_Object)->GEOM_Object
224 TranslVectD = geompy.MakeTranslationVectorDistance(Box, vxyz, 50.0) #(2 GEOM_Object)->GEOM_Object
225 Rotation = geompy.MakeRotation(Box, vz, angle1) #(2 GEOM_Object, Double)->GEOM_Object
226 RotatPnt = geompy.MakeRotationThreePoints(Box, px, py, pz) #(4 GEOM_Object)->GEOM_Object
228 #Scale by factor relatively given point
229 Scale1 = geompy.MakeScaleTransform(Box, pxyz, factor) #(2 GEOM_Object, Double)->GEOM_Object
230 #Scale by factor relatively the origin of global CS
231 Scale2 = geompy.MakeScaleTransform(Box, None, factor) #
232 #Scale along axes of global CS by different factors. Scale relatively given point
233 Scale3 = geompy.MakeScaleAlongAxes(Box, pxyz, 1.5, 0.5, 3) #(2 GEOM_Object, 3 Doubles)->GEOM_Object
234 #Scale along axes of global CS by different factors. Scale relatively the origin of global CS
235 Scale4 = geompy.MakeScaleAlongAxes(Box, None, 1.5, 0.5, 3) #
237 Mirror = geompy.MakeMirrorByPlane(Box, Plane) #(2 GEOM_Object)->GEOM_Object
238 MirrorAxis = geompy.MakeMirrorByAxis(Box, Line1) #
239 MirrorPnt = geompy.MakeMirrorByPoint(Box, p200) #
240 Position = geompy.MakePosition(Box, cs1, cs2) #(3 GEOM_Object)->GEOM_Object
241 Position2 = geompy.PositionAlongPath(Box, Arc, 0.5, 1, 0) #(2 GEOM_Object, 1 Double, 2 Bool)->GEOM_Object
242 Offset = geompy.MakeOffset(Box, 10.) #(GEOM_Object, Double)->GEOM_Object
243 Orientation = geompy.ChangeOrientation(Box)
245 #IDList for Fillet/Chamfer
246 prism_edges = geompy.ExtractShapes(Prism, geompy.ShapeType["EDGE"], True)
248 for anEdge in prism_edges:
249 eid = geompy.GetSubShapeID(Prism, anEdge)
250 sse = geompy.GetSubShape(Prism, [eid])
252 sse_id = geompy.GetSubShapeID(Prism, sse)
254 print "Error: GetSubShape() or GetSubShapeID() has failed!"
257 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[0]))
258 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[1]))
259 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[2]))
261 prism_faces = geompy.ExtractShapes(Prism, geompy.ShapeType["FACE"], True)
263 f_ind_1 = geompy.GetSubShapeID(Prism, prism_faces[0])
264 f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
266 IDlist_f = [f_ind_1, f_ind_2]
269 Fillet2d = geompy.MakeFillet2D(Face3, radius, [4, 7, 9]) #(GEOM_Object, Double, ListOfLong)->GEOM_Object
270 Fillet = geompy.MakeFillet (Prism, radius, geompy.ShapeType["EDGE"],
271 IDlist_e) #(GEOM_Object, Double, Short, ListOfLong)->GEOM_Object
272 Fillet2 = geompy.MakeFilletR1R2 (Prism, 7., 13., geompy.ShapeType["EDGE"],
273 IDlist_e) #(GEOM_Object, Double, Double, Short, ListOfLong)->GEOM_Object
274 Chamfer = geompy.MakeChamferEdge(Prism, d1, d2,
275 f_ind_1, f_ind_2) #(GEOM_Object, 2 Doubles, 2 Long)->GEOM_Object
276 Chamfer2 = geompy.MakeChamferFaces(Prism, d1, d2,
277 IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
278 Chamfer3 = geompy.MakeChamferEdges(Prism, d1, d2,
279 IDlist_e) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
280 Chamfer4 = geompy.MakeChamferFacesAD(Prism, d1, 20. * math.pi / 180.,
281 IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
282 #End of Local operations
285 MultiTrans1D = geompy.MakeMultiTranslation1D(Fillet, vz, step1, nbtimes1)
286 MultiTrans2D = geompy.MakeMultiTranslation2D(Fillet, vz, step1, nbtimes1, vy, step2, nbtimes2)
287 #!!!!Angle In Degree!!!!
288 MultiRot1D = geompy.MultiRotate1D(Chamfer, vx, nbtimes1)
289 MultiRot2D = geompy.MultiRotate2D(Chamfer, vx, angle, nbtimes1, step1, nbtimes2)
291 #Create Informations objects
292 CDG = geompy.MakeCDG(Prism) #(GEOM_Object)->GEOM_Object
293 Archimede = geompy.Archimede(Box, weight, waterdensity,
294 meshingdeflection) #(GEOM_Object, 3 Doubles)->GEOM_Object
295 mindist = geompy.MinDistanceComponents(TranslVect, Mirror) #(2 GEOM_Object)->4 Doubles
296 print "Minumal distance between TranslVect and Mirror is", mindist[0],
297 print "by components:", mindist[1], ",", mindist[2], ",", mindist[3]
298 CheckShape = geompy.CheckShape(Prism) #(GEOM_Object)->Boolean
299 print "CheckShape(Prism) = ", CheckShape
302 Partition = geompy.MakePartition([Box], [Plane]) #(2 Lists Of GEOM_Object)->GEOM_Object
303 Partition1 = geompy.MakeHalfPartition(Box, Plane) #(2 GEOM_Object)->GEOM_Object
306 id_p0 = geompy.addToStudy(p0, "Vertex 0")
307 id_px = geompy.addToStudy(px, "Vertex X")
308 id_py = geompy.addToStudy(py, "Vertex Y")
309 id_pz = geompy.addToStudy(pz, "Vertex Z")
310 id_pxyz = geompy.addToStudy(pxyz, "Vertex XYZ")
311 id_p200 = geompy.addToStudy(p200, "Vertex 200")
313 id_vx = geompy.addToStudy(vx, "Vector X")
314 id_vy = geompy.addToStudy(vy, "Vector Y")
315 id_vz = geompy.addToStudy(vz, "Vector Z")
316 id_vxy = geompy.addToStudy(vxy, "Vector XY")
317 id_vxyz = geompy.addToStudy(vxyz, "Vector XYZ")
319 id_cs1 = geompy.addToStudy(cs1, "CS 50,50,50, 1,0,0, 0,1,0")
320 id_cs2 = geompy.addToStudy(cs2, "CS 70,80,10, 1,0,1, 1,1,0")
321 id_cs3 = geompy.addToStudy(cs3, "CS: pz, vxy, vz")
322 id_cs4 = geompy.addToStudy(cs4, "CS: Plane")
324 id_Line = geompy.addToStudy(Line, "Line")
325 id_Line1 = geompy.addToStudy(Line1, "Line by point and vector")
326 id_Line3 = geompy.addToStudy(Line3, "Line on Two Faces Intersection")
327 id_Plane = geompy.addToStudy(Plane, "Plane")
328 id_Plane1 = geompy.addToStudy(Plane1, "Plane by 3 points")
329 id_Plane2 = geompy.addToStudy(Plane2, "Plane by 2 vectors")
330 id_Plane3 = geompy.addToStudy(Plane3, "Plane by LCS")
332 id_Arc = geompy.addToStudy(Arc, "Arc")
333 id_Arc2 = geompy.addToStudy(Arc2, "Arc2")
334 id_Arc3 = geompy.addToStudy(Arc3, "Arc3")
335 id_Circle = geompy.addToStudy(Circle, "Circle")
336 id_Circle1 = geompy.addToStudy(Circle1, "Circle by 3 points")
337 id_Circle2 = geompy.addToStudy(Circle2, "Circle by center and 2 points")
338 id_Ellipse = geompy.addToStudy(Ellipse, "Ellipse")
339 id_Polyline = geompy.addToStudy(Polyline, "Polyline")
340 id_Bezier = geompy.addToStudy(Bezier, "Bezier")
341 id_Interpol = geompy.addToStudy(Interpol, "Interpol")
342 id_Sketcher = geompy.addToStudy(Sketcher, "Sketcher")
344 id_Sketcher3d_1 = geompy.addToStudy(Sketcher3d_1, "Sketcher 3D by interface")
345 id_Sketcher3d_2 = geompy.addToStudy(Sketcher3d_2, "Sketcher 3D by list")
347 id_p_on_arc = geompy.addToStudy(p_on_arc, "Vertex on Arc (0.25)")
348 id_p_on_arc2 = geompy.addToStudy(p_on_arc2, "Vertex on Arc at(100, -10, 10)" )
349 id_p_on_arc3 = geompy.addToStudy(p_on_arc3, "Vertex on Arc length 50 from Vertex X" )
351 id_p_on_l1l2 = geompy.addToStudy(p_on_l1l2, "Vertex on Lines Intersection")
353 id_tan_on_arc = geompy.addToStudy(tan_on_arc, "Tangent on Arc (0.7)")
354 id_tan_on_face = geompy.addToStudy(tan_on_face, "Tangent on Face")
356 id_Box = geompy.addToStudy(Box, "Box")
357 id_Box1 = geompy.addToStudy(Box1, "Box 10x20x30")
358 id_Box2 = geompy.addToStudy(Box2, "Box (10,20,30)-(15,25,35)")
359 id_Cylinder = geompy.addToStudy(Cylinder, "Cylinder")
360 id_Cyl1 = geompy.addToStudy(Cyl1, "Cylinder RH")
361 id_Sphere = geompy.addToStudy(Sphere, "Sphere Pnt R")
362 id_Sphere1 = geompy.addToStudy(Sphere1, "Sphere R")
363 id_Sphere2 = geompy.addToStudy(Sphere2, "Sphere")
364 id_Cone = geompy.addToStudy(Cone, "Cone")
365 id_Cone1 = geompy.addToStudy(Cone1, "Cone R1R2H")
366 id_Torus = geompy.addToStudy(Torus, "Torus")
367 id_Torus1 = geompy.addToStudy(Torus1, "Torus RR")
369 id_Common = geompy.addToStudy(Common, "Common")
370 id_Cut = geompy.addToStudy(Cut, "Cut")
371 id_Fuse = geompy.addToStudy(Fuse, "Fuse")
372 id_Section = geompy.addToStudy(Section, "Section")
374 id_Edge = geompy.addToStudy(Edge, "Edge")
375 id_Edge1 = geompy.addToStudy(Edge1, "Edge on Arc length 50 from Vertex Y")
376 id_Wire = geompy.addToStudy(Wire, "Wire")
377 id_Face = geompy.addToStudy(Face, "Face")
378 id_Face1 = geompy.addToStudy(Face1, "Face from two wires")
379 id_Face2 = geompy.addToStudy(Face2, "Face from Sketcher")
380 id_Face3 = geompy.addToStudy(Face3, "Face Height Width")
381 id_Face4 = geompy.addToStudy(Face4, "Face Plane_HW")
382 id_Disk = geompy.addToStudy(Disk, "Disk PntVecR")
383 id_Disk2 = geompy.addToStudy(Disk2, "Disk Three Points")
384 id_Disk3 = geompy.addToStudy(Disk3, "Disk OXY Radius")
385 id_Shell = geompy.addToStudy(Shell, "Shell")
387 id_p_on_face = geompy.addToStudy(p_on_face, "Vertex on Face (0.1, 0.8)")
388 id_p_on_face2 = geompy.addToStudy(p_on_face2, "Vertex on Face at(0., 0., 0.)")
389 id_p_on_face3 = geompy.addToStudy(p_on_face3, "Vertex inside Face")
391 id_Prism1 = geompy.addToStudy(Prism1, "Prism by Two Pnt")
392 id_Shell1 = geompy.addToStudy(Shell1, "Shell from Prism1 faces")
393 id_Solid = geompy.addToStudy(Solid, "Solid")
394 id_Compound = geompy.addToStudy(Compound, "Compound")
396 id_Plane2 = geompy.addToStudy(Plane2, "Plane on Face")
398 id_Copy = geompy.addToStudy(Copy, "Copy")
399 id_Prism = geompy.addToStudy(Prism, "Prism")
400 id_Prism2Ways = geompy.addToStudy(Prism2Ways, "Prism2Ways")
401 id_PrismTwoPnt = geompy.addToStudy(PrismTwoPnt, "PrismTwoPnt")
402 id_PrismTwoPnt2Ways = geompy.addToStudy(PrismTwoPnt2Ways, "PrismTwoPnt2Ways")
403 id_PrismDXDYDZ = geompy.addToStudy(PrismDXDYDZ, "PrismDXDYDZ")
404 id_PrismDXDYDZ2Ways = geompy.addToStudy(PrismDXDYDZ2Ways, "PrismDXDYDZ2Ways")
405 id_Revolution = geompy.addToStudy(Revolution, "Revolution")
406 id_Revolution2Ways = geompy.addToStudy(Revolution2Ways, "Revolution2Ways")
407 id_Filling = geompy.addToStudy(Filling, "Filling")
408 id_Pipe = geompy.addToStudy(Pipe, "Pipe")
409 id_Sewing = geompy.addToStudy(Sewing, "Sewing")
411 id_Translation = geompy.addToStudy(Translation, "Translation")
412 id_TranslVect = geompy.addToStudy(TranslVect , "Translation along vector")
413 id_TranslVectD = geompy.addToStudy(TranslVectD, "Translation along vector with defined distance")
414 id_Rotation = geompy.addToStudy(Rotation, "Rotation")
415 id_RotatPnt = geompy.addToStudy(RotatPnt, "Rotation by three points")
416 id_Scale1 = geompy.addToStudy(Scale1, "Scale1")
417 id_Scale2 = geompy.addToStudy(Scale2, "Scale2")
418 id_Scale3 = geompy.addToStudy(Scale3, "Scale3")
419 id_Scale4 = geompy.addToStudy(Scale4, "Scale4")
420 id_Mirror = geompy.addToStudy(Mirror, "Mirror by Plane")
421 id_MirrorAxis = geompy.addToStudy(MirrorAxis, "Mirror by Axis")
422 id_MirrorPnt = geompy.addToStudy(MirrorPnt, "Mirror by Point")
423 id_Position = geompy.addToStudy(Position, "Positioned box")
424 id_Position2 = geompy.addToStudy(Position2, "Positioned box along path")
425 id_Offset = geompy.addToStudy(Offset, "Offset")
426 id_Orientation = geompy.addToStudy(Orientation, "Orientation")
428 id_Fillet = geompy.addToStudy(Fillet, "Fillet")
429 id_Fillet2 = geompy.addToStudy(Fillet2, "Fillet2")
430 id_Fillet2d = geompy.addToStudy(Fillet2d, "Fillet2D")
432 id_Chamfer = geompy.addToStudy(Chamfer, "Chamfer on Edge")
433 id_Chamfer2 = geompy.addToStudy(Chamfer2, "Chamfer on Faces")
434 id_Chamfer3 = geompy.addToStudy(Chamfer3, "Chamfer on Edges")
435 id_Chamfer4 = geompy.addToStudy(Chamfer4, "Chamfer on Faces with params D Angle")
437 id_MultiTrans1D = geompy.addToStudy(MultiTrans1D, "MultiTrans1D")
438 id_MultiTrans2D = geompy.addToStudy(MultiTrans2D, "MultiTrans2D")
439 id_MultiRot1D = geompy.addToStudy(MultiRot1D, "MultiRot1D")
440 id_MultiRot2D = geompy.addToStudy(MultiRot2D, "MultiRot2D")
442 id_CDG = geompy.addToStudy(CDG, "CDG")
443 id_Archimede = geompy.addToStudy(Archimede, "Archimede")
445 id_Partition = geompy.addToStudy(Partition, "Partition")
446 id_Partition1 = geompy.addToStudy(Partition1, "Half Partition")
451 SubFace = geompy.SubShape(Box, geompy.ShapeType["FACE"], [2])
452 name = geompy.SubShapeName(SubFace, Box)
453 id_SubFace = geompy.addToStudyInFather(Box, SubFace, name)
455 # SubShapeSortedCentres
456 SubFaceS = geompy.SubShapeSortedCentres(Box, geompy.ShapeType["FACE"], [5])
457 nameS = geompy.SubShapeName(SubFaceS, Box)
458 id_SubFace = geompy.addToStudyInFather(Box, SubFaceS, nameS)
460 # GetExistingSubObjects
461 SubObjsAll = geompy.GetExistingSubObjects(Box, True)
462 print "For now, Box has the following created sub-objects:", SubObjsAll
465 SubGrpsAll = geompy.GetGroups(Box)
466 print "For now, Box has the following created groups:", SubGrpsAll
469 SubEdgeList = geompy.SubShapeAll(SubFace, geompy.ShapeType["EDGE"])
471 for SubEdge in SubEdgeList :
472 name = geompy.SubShapeName(SubEdge, SubFace)
473 id_SubEdge = geompy.addToStudyInFather(SubFace, SubEdge, name)
476 SubEdgeIDsList = geompy.SubShapeAllIDs(SubFace, geompy.ShapeType["EDGE"])
477 print "IDs of edges of SubFace:", SubEdgeIDsList, "(unsorted)"
478 group = geompy.CreateGroup(SubFace, geompy.ShapeType["EDGE"])
479 geompy.UnionIDs(group, SubEdgeIDsList)
480 geompy.addToStudyInFather(SubFace, group, "Group of all edges")
482 # SubShapeAllSortedCentresIDs
483 SubEdgeIDsList = geompy.SubShapeAllSortedCentresIDs(SubFace, geompy.ShapeType["EDGE"])
484 print "IDs of edges of SubFace:", SubEdgeIDsList, "(sorted)"
486 # GetSubShape and GetSubShapeID
487 for ind in SubEdgeIDsList:
488 edge = geompy.GetSubShape(SubFace, [ind])
489 ind_e = geompy.GetSubShapeID(SubFace, edge)
491 print "Error in GetSubShape or GetSubShapeID"
494 geompy.RestoreSubShapes(Copy)
495 geompy.RestoreSubShapes(RotatPnt, [], GEOM.FSM_Transformed)
496 geompy.RestoreSubShapes(Partition, [Box])
497 geompy.RestoreSubShapes(Partition1)