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.addPointRadiusAnglesRelative(100, 50, 0,"OXY")
113 sk.addPointRadiusAnglesRelative(130, 30, 80, "OXZ")
114 sk.addPointRadiusAnglesAbsolute(500, 60, 30,"OXY")
115 sk.addPointRadiusAngleHRelative(100, 50, 0,"OXY")
116 sk.addPointRadiusAngleHRelative(130, 30, 40, "OXZ")
117 sk.addPointRadiusAngleHAbsolute(800, 60, 30,"OXY")
119 Sketcher3d_1 = sk.wire()
121 Sketcher3d_2 = geompy.Make3DSketcher([0,0,0, 50,50,50, 0,50,50, 10,0,0])
123 #Create local coordinate system from shape
124 cs4 = geompy.MakeMarkerFromShape(Plane)
126 #Test point on curve creation
127 p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25) #(GEOM_Object, Double)->GEOM_Object
128 p_on_arc2 = geompy.MakeVertexOnCurveByCoord(Arc, 100, -10, 10 ) #(GEOM_Object, Double)->GEOM_Object
129 p_on_arc3 = geompy.MakeVertexOnCurveByLength(Arc, 50, py) #(GEOM_Object, Double, GEOM_Object)->GEOM_Object
131 #Test point on lines intersection
132 p_on_l1l2 = geompy.MakeVertexOnLinesIntersection(Line1, Line2) #(2 GEOM_Object)->GEOM_Object
134 #Test tangent on curve creation
135 tan_on_arc = geompy.MakeTangentOnCurve(Arc, 0.7) #(GEOM_Object, Double)->GEOM_Object
137 #Test tangent on face creation
138 tan_vertex_1 = geompy.MakeVertex(0, 0, 0)
139 tan_vertex_2 = geompy.MakeVertex(0, 90, 30)
140 tan_vertex_3 = geompy.MakeVertex(100, 90, 0)
141 tan_vertex_4 = geompy.MakeVertex(-100, 90, 0)
142 tan_curve = geompy.MakeInterpol([tan_vertex_4, tan_vertex_2, tan_vertex_3, tan_vertex_1], False)
143 tan_extrusion = geompy.MakePrismDXDYDZ(tan_curve, 0, 30, -60)
144 tan_on_face = geompy.MakeTangentPlaneOnFace(tan_extrusion, 0.7, 0.5, 150)
146 #Create base geometry 3D
147 Box = geompy.MakeBoxTwoPnt(p0, p200) #(2 GEOM_Object)->GEOM_Object
148 Box1 = geompy.MakeBoxDXDYDZ(10, 20, 30) #(3 Doubles)->GEOM_Object
149 Box2 = geompy.MakeBox(10,20,30, 15,25,35) #(6 Doubles)->GEOM_Object
150 Cylinder = geompy.MakeCylinder(p0, vz, radius1, height) #(2 GEOM_Object, 2 Doubles)->GEOM_Object
151 Cyl1 = geompy.MakeCylinderRH(radius2, height) #(2 Doubles)->GEOM_Object
152 Sphere = geompy.MakeSpherePntR(p0, radius1) #(GEOM_Object, Double)->GEOM_Object
153 Sphere1 = geompy.MakeSphereR(radius) #(Double)->GEOM_Object
154 Sphere2 = geompy.MakeSphere(50, 70, 30, radius) #(4 Doubles)->GEOM_Object
155 Cone = geompy.MakeCone(p0, vz, radius2, radius, height) #(2 GEOM_Object, 3 Doubles)->GEOM_Object
156 Cone1 = geompy.MakeConeR1R2H(radius1, radius, height) #(3 Doubles)->GEOM_Object
157 Torus = geompy.MakeTorus(p0, vz, radius2, radius) #(2 GEOM_Object, 2 Doubles)->GEOM_Object
158 Torus1 = geompy.MakeTorusRR(radius2, radius1) #(2 Doubles)->GEOM_Object
160 #Boolean (Common, Cut, Fuse, Section)
161 Common = geompy.MakeBoolean(Box, Sphere, 1) #(2 GEOM_Object, Short)->GEOM_Object
162 Cut = geompy.MakeBoolean(Box, Sphere, 2)
163 Fuse = geompy.MakeBoolean(Box, Sphere, 3)
164 Section = geompy.MakeBoolean(Box, Sphere, 4)
167 Edge = geompy.MakeEdge(p0, pxyz) #(2 GEOM_Object)->GEOM_Object
168 Edge1 = geompy.MakeEdgeOnCurveByLength(Arc, 50, px) #(GEOM_Object, Double, GEOM_Object)->GEOM_Object
169 Wire = geompy.MakeWire([vxy, Arc]) #(List Of GEOM_Object)->GEOM_Object
170 Face = geompy.MakeFace(Wire, WantPlanarFace) #(GEOM_Object, Boolean)->GEOM_Object
171 Face1 = geompy.MakeFaceWires([Wire, Sketcher],
172 WantPlanarFace) #(List of GEOM_Object, Boolean)->GEOM_Object
173 Face2 = geompy.MakeFace(Sketcher, WantPlanarFace)
174 Face3 = geompy.MakeFaceHW (100., 200., 1) #(2 Doubles, 1 Int)->GEOM_Object
175 Face4 = geompy.MakeFaceObjHW (vz, 200., 100.) #(1 GEOM_Object, 2 Doubles)->GEOM_Object
176 Disk = geompy.MakeDiskPntVecR (p0, vz, radius) #(2 GEOM_Object, 1 Double)->GEOM_Object
177 Disk2 = geompy.MakeDiskThreePnt(p0, p200, pz) #(3 GEOM_Object)->GEOM_Object
178 Disk3 = geompy.MakeDiskR(100., 1) #(1 Doubles, 1 Int)->GEOM_Object
179 Shell = geompy.MakeShell([Face, Face1]) #(List of GEOM_Object)->GEOM_Object
181 Prism1 = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
182 prism1_faces = geompy.SubShapeAllSortedCentres(Prism1, geompy.ShapeType["FACE"])
183 Shell1 = geompy.MakeShell([prism1_faces[0], prism1_faces[1],
184 prism1_faces[3], prism1_faces[4],
185 prism1_faces[5], prism1_faces[2]])
186 Solid = geompy.MakeSolid([Shell1]) #(List of GEOM_Object)->GEOM_Object
188 ShapeListCompound = []
191 S = geompy.MakeTranslation(Arc, i * 100., i * 100., i * 100.)
192 ShapeListCompound.append(S)
194 Compound = geompy.MakeCompound(ShapeListCompound) #(List of GEOM_Object)->GEOM_Object
196 #Test point on surface creation
197 p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8) #(GEOM_Object, Double, Double)->GEOM_Object
198 p_on_face2 = geompy.MakeVertexOnSurfaceByCoord(Face, 0., 0., 0.) #(GEOM_Object, Double, Double, Double)->GEOM_Object
199 p_on_face3 = geompy.MakeVertexInsideFace(Face) #(GEOM_Object)->GEOM_Object
201 # Test plane from existing face creation
202 Plane2 = geompy.MakePlaneFace(Face, trimsize) #(GEOM_Object, Double)->GEOM_Object
204 #ShapeList for Sewing
205 S = geompy.MakeRotation(Face, vxy, angle1)
207 #Test Line on Faces Intersection
208 Line3 = geompy.MakeLineTwoFaces(prism1_faces[0], prism1_faces[1]) #(2 GEOM_Object)->GEOM_Object
210 #Create advanced objects
211 Copy = geompy.MakeCopy(Box) #(GEOM_Object)->GEOM_Object
212 Prism = geompy.MakePrismVecH(Face, vz, 100.0) #(2 GEOM_Object, Double)->GEOM_Object
213 Prism2Ways = geompy.MakePrismVecH2Ways(Face, vz, 10.0) #(2 GEOM_Object, Double)->GEOM_Object
214 PrismTwoPnt = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
215 PrismTwoPnt2Ways = geompy.MakePrism2Ways(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
216 PrismDXDYDZ = geompy.MakePrismDXDYDZ(Face2, 10, 20, 100)#(2 GEOM_Object, Double)->GEOM_Object
217 PrismDXDYDZ2Ways = geompy.MakePrismDXDYDZ2Ways(Face, 30, -20, 200)#(2 GEOM_Object, Double)->GEOM_Object
218 Revolution = geompy.MakeRevolution(Face, vz, angle2) #
219 Revolution2Ways = geompy.MakeRevolution(Face, vz, angle1) #
220 Filling = geompy.MakeFilling(Compound, mindeg, maxdeg,
221 tol2d, tol3d, nbiter) #(GEOM_Object, 4 Doubles, Short)->GEOM_Object
222 Pipe = geompy.MakePipe(Wire, Edge) #(2 GEOM_Object)->GEOM_Object
223 Sewing = geompy.MakeSewing([Face, S], precision) #(List Of GEOM_Object, Double)->GEOM_Object
226 Translation = geompy.MakeTranslationTwoPoints(Box, px, pz) #(3 GEOM_Object)->GEOM_Object
227 TranslVect = geompy.MakeTranslationVector(Box, vxyz) #(2 GEOM_Object)->GEOM_Object
228 TranslVectD = geompy.MakeTranslationVectorDistance(Box, vxyz, 50.0) #(2 GEOM_Object)->GEOM_Object
229 Rotation = geompy.MakeRotation(Box, vz, angle1) #(2 GEOM_Object, Double)->GEOM_Object
230 RotatPnt = geompy.MakeRotationThreePoints(Box, px, py, pz) #(4 GEOM_Object)->GEOM_Object
232 #Scale by factor relatively given point
233 Scale1 = geompy.MakeScaleTransform(Box, pxyz, factor) #(2 GEOM_Object, Double)->GEOM_Object
234 #Scale by factor relatively the origin of global CS
235 Scale2 = geompy.MakeScaleTransform(Box, None, factor) #
236 #Scale along axes of global CS by different factors. Scale relatively given point
237 Scale3 = geompy.MakeScaleAlongAxes(Box, pxyz, 1.5, 0.5, 3) #(2 GEOM_Object, 3 Doubles)->GEOM_Object
238 #Scale along axes of global CS by different factors. Scale relatively the origin of global CS
239 Scale4 = geompy.MakeScaleAlongAxes(Box, None, 1.5, 0.5, 3) #
241 Mirror = geompy.MakeMirrorByPlane(Box, Plane) #(2 GEOM_Object)->GEOM_Object
242 MirrorAxis = geompy.MakeMirrorByAxis(Box, Line1) #
243 MirrorPnt = geompy.MakeMirrorByPoint(Box, p200) #
244 Position = geompy.MakePosition(Box, cs1, cs2) #(3 GEOM_Object)->GEOM_Object
245 Position2 = geompy.PositionAlongPath(Box, Arc, 0.5, 1, 0) #(2 GEOM_Object, 1 Double, 2 Bool)->GEOM_Object
246 Offset = geompy.MakeOffset(Box, 10.) #(GEOM_Object, Double)->GEOM_Object
247 Orientation = geompy.ChangeOrientation(Box)
249 #IDList for Fillet/Chamfer
250 prism_edges = geompy.ExtractShapes(Prism, geompy.ShapeType["EDGE"], True)
252 for anEdge in prism_edges:
253 eid = geompy.GetSubShapeID(Prism, anEdge)
254 sse = geompy.GetSubShape(Prism, [eid])
256 sse_id = geompy.GetSubShapeID(Prism, sse)
258 print "Error: GetSubShape() or GetSubShapeID() has failed!"
261 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[0]))
262 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[1]))
263 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[2]))
265 prism_faces = geompy.ExtractShapes(Prism, geompy.ShapeType["FACE"], True)
267 f_ind_1 = geompy.GetSubShapeID(Prism, prism_faces[0])
268 f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
270 IDlist_f = [f_ind_1, f_ind_2]
273 Fillet2d = geompy.MakeFillet2D(Face3, radius, [4, 7, 9]) #(GEOM_Object, Double, ListOfLong)->GEOM_Object
274 Fillet = geompy.MakeFillet (Prism, radius, geompy.ShapeType["EDGE"],
275 IDlist_e) #(GEOM_Object, Double, Short, ListOfLong)->GEOM_Object
276 Fillet2 = geompy.MakeFilletR1R2 (Prism, 7., 13., geompy.ShapeType["EDGE"],
277 IDlist_e) #(GEOM_Object, Double, Double, Short, ListOfLong)->GEOM_Object
278 Chamfer = geompy.MakeChamferEdge(Prism, d1, d2,
279 f_ind_1, f_ind_2) #(GEOM_Object, 2 Doubles, 2 Long)->GEOM_Object
280 Chamfer2 = geompy.MakeChamferFaces(Prism, d1, d2,
281 IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
282 Chamfer3 = geompy.MakeChamferEdges(Prism, d1, d2,
283 IDlist_e) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
284 Chamfer4 = geompy.MakeChamferFacesAD(Prism, d1, 20. * math.pi / 180.,
285 IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
286 #End of Local operations
289 MultiTrans1D = geompy.MakeMultiTranslation1D(Fillet, vz, step1, nbtimes1)
290 MultiTrans2D = geompy.MakeMultiTranslation2D(Fillet, vz, step1, nbtimes1, vy, step2, nbtimes2)
291 #!!!!Angle In Degree!!!!
292 MultiRot1D = geompy.MultiRotate1D(Chamfer, vx, nbtimes1)
293 MultiRot2D = geompy.MultiRotate2D(Chamfer, vx, angle, nbtimes1, step1, nbtimes2)
295 #Create Informations objects
296 CDG = geompy.MakeCDG(Prism) #(GEOM_Object)->GEOM_Object
297 Archimede = geompy.Archimede(Box, weight, waterdensity,
298 meshingdeflection) #(GEOM_Object, 3 Doubles)->GEOM_Object
299 mindist = geompy.MinDistanceComponents(TranslVect, Mirror) #(2 GEOM_Object)->4 Doubles
300 print "Minumal distance between TranslVect and Mirror is", mindist[0],
301 print "by components:", mindist[1], ",", mindist[2], ",", mindist[3]
302 CheckShape = geompy.CheckShape(Prism) #(GEOM_Object)->Boolean
303 print "CheckShape(Prism) = ", CheckShape
306 Partition = geompy.MakePartition([Box], [Plane]) #(2 Lists Of GEOM_Object)->GEOM_Object
307 Partition1 = geompy.MakeHalfPartition(Box, Plane) #(2 GEOM_Object)->GEOM_Object
310 id_p0 = geompy.addToStudy(p0, "Vertex 0")
311 id_px = geompy.addToStudy(px, "Vertex X")
312 id_py = geompy.addToStudy(py, "Vertex Y")
313 id_pz = geompy.addToStudy(pz, "Vertex Z")
314 id_pxyz = geompy.addToStudy(pxyz, "Vertex XYZ")
315 id_p200 = geompy.addToStudy(p200, "Vertex 200")
317 id_vx = geompy.addToStudy(vx, "Vector X")
318 id_vy = geompy.addToStudy(vy, "Vector Y")
319 id_vz = geompy.addToStudy(vz, "Vector Z")
320 id_vxy = geompy.addToStudy(vxy, "Vector XY")
321 id_vxyz = geompy.addToStudy(vxyz, "Vector XYZ")
323 id_cs1 = geompy.addToStudy(cs1, "CS 50,50,50, 1,0,0, 0,1,0")
324 id_cs2 = geompy.addToStudy(cs2, "CS 70,80,10, 1,0,1, 1,1,0")
325 id_cs3 = geompy.addToStudy(cs3, "CS: pz, vxy, vz")
326 id_cs4 = geompy.addToStudy(cs4, "CS: Plane")
328 id_Line = geompy.addToStudy(Line, "Line")
329 id_Line1 = geompy.addToStudy(Line1, "Line by point and vector")
330 id_Line3 = geompy.addToStudy(Line3, "Line on Two Faces Intersection")
331 id_Plane = geompy.addToStudy(Plane, "Plane")
332 id_Plane1 = geompy.addToStudy(Plane1, "Plane by 3 points")
333 id_Plane2 = geompy.addToStudy(Plane2, "Plane by 2 vectors")
334 id_Plane3 = geompy.addToStudy(Plane3, "Plane by LCS")
336 id_Arc = geompy.addToStudy(Arc, "Arc")
337 id_Arc2 = geompy.addToStudy(Arc2, "Arc2")
338 id_Arc3 = geompy.addToStudy(Arc3, "Arc3")
339 id_Circle = geompy.addToStudy(Circle, "Circle")
340 id_Circle1 = geompy.addToStudy(Circle1, "Circle by 3 points")
341 id_Circle2 = geompy.addToStudy(Circle2, "Circle by center and 2 points")
342 id_Ellipse = geompy.addToStudy(Ellipse, "Ellipse")
343 id_Polyline = geompy.addToStudy(Polyline, "Polyline")
344 id_Bezier = geompy.addToStudy(Bezier, "Bezier")
345 id_Interpol = geompy.addToStudy(Interpol, "Interpol")
346 id_Sketcher = geompy.addToStudy(Sketcher, "Sketcher")
348 id_Sketcher3d_1 = geompy.addToStudy(Sketcher3d_1, "Sketcher 3D by interface")
349 id_Sketcher3d_2 = geompy.addToStudy(Sketcher3d_2, "Sketcher 3D by list")
351 id_p_on_arc = geompy.addToStudy(p_on_arc, "Vertex on Arc (0.25)")
352 id_p_on_arc2 = geompy.addToStudy(p_on_arc2, "Vertex on Arc at(100, -10, 10)" )
353 id_p_on_arc3 = geompy.addToStudy(p_on_arc3, "Vertex on Arc length 50 from Vertex X" )
355 id_p_on_l1l2 = geompy.addToStudy(p_on_l1l2, "Vertex on Lines Intersection")
357 id_tan_on_arc = geompy.addToStudy(tan_on_arc, "Tangent on Arc (0.7)")
358 id_tan_on_face = geompy.addToStudy(tan_on_face, "Tangent on Face")
360 id_Box = geompy.addToStudy(Box, "Box")
361 id_Box1 = geompy.addToStudy(Box1, "Box 10x20x30")
362 id_Box2 = geompy.addToStudy(Box2, "Box (10,20,30)-(15,25,35)")
363 id_Cylinder = geompy.addToStudy(Cylinder, "Cylinder")
364 id_Cyl1 = geompy.addToStudy(Cyl1, "Cylinder RH")
365 id_Sphere = geompy.addToStudy(Sphere, "Sphere Pnt R")
366 id_Sphere1 = geompy.addToStudy(Sphere1, "Sphere R")
367 id_Sphere2 = geompy.addToStudy(Sphere2, "Sphere")
368 id_Cone = geompy.addToStudy(Cone, "Cone")
369 id_Cone1 = geompy.addToStudy(Cone1, "Cone R1R2H")
370 id_Torus = geompy.addToStudy(Torus, "Torus")
371 id_Torus1 = geompy.addToStudy(Torus1, "Torus RR")
373 id_Common = geompy.addToStudy(Common, "Common")
374 id_Cut = geompy.addToStudy(Cut, "Cut")
375 id_Fuse = geompy.addToStudy(Fuse, "Fuse")
376 id_Section = geompy.addToStudy(Section, "Section")
378 id_Edge = geompy.addToStudy(Edge, "Edge")
379 id_Edge1 = geompy.addToStudy(Edge1, "Edge on Arc length 50 from Vertex Y")
380 id_Wire = geompy.addToStudy(Wire, "Wire")
381 id_Face = geompy.addToStudy(Face, "Face")
382 id_Face1 = geompy.addToStudy(Face1, "Face from two wires")
383 id_Face2 = geompy.addToStudy(Face2, "Face from Sketcher")
384 id_Face3 = geompy.addToStudy(Face3, "Face Height Width")
385 id_Face4 = geompy.addToStudy(Face4, "Face Plane_HW")
386 id_Disk = geompy.addToStudy(Disk, "Disk PntVecR")
387 id_Disk2 = geompy.addToStudy(Disk2, "Disk Three Points")
388 id_Disk3 = geompy.addToStudy(Disk3, "Disk OXY Radius")
389 id_Shell = geompy.addToStudy(Shell, "Shell")
391 id_p_on_face = geompy.addToStudy(p_on_face, "Vertex on Face (0.1, 0.8)")
392 id_p_on_face2 = geompy.addToStudy(p_on_face2, "Vertex on Face at(0., 0., 0.)")
393 id_p_on_face3 = geompy.addToStudy(p_on_face3, "Vertex inside Face")
395 id_Prism1 = geompy.addToStudy(Prism1, "Prism by Two Pnt")
396 id_Shell1 = geompy.addToStudy(Shell1, "Shell from Prism1 faces")
397 id_Solid = geompy.addToStudy(Solid, "Solid")
398 id_Compound = geompy.addToStudy(Compound, "Compound")
400 id_Plane2 = geompy.addToStudy(Plane2, "Plane on Face")
402 id_Copy = geompy.addToStudy(Copy, "Copy")
403 id_Prism = geompy.addToStudy(Prism, "Prism")
404 id_Prism2Ways = geompy.addToStudy(Prism2Ways, "Prism2Ways")
405 id_PrismTwoPnt = geompy.addToStudy(PrismTwoPnt, "PrismTwoPnt")
406 id_PrismTwoPnt2Ways = geompy.addToStudy(PrismTwoPnt2Ways, "PrismTwoPnt2Ways")
407 id_PrismDXDYDZ = geompy.addToStudy(PrismDXDYDZ, "PrismDXDYDZ")
408 id_PrismDXDYDZ2Ways = geompy.addToStudy(PrismDXDYDZ2Ways, "PrismDXDYDZ2Ways")
409 id_Revolution = geompy.addToStudy(Revolution, "Revolution")
410 id_Revolution2Ways = geompy.addToStudy(Revolution2Ways, "Revolution2Ways")
411 id_Filling = geompy.addToStudy(Filling, "Filling")
412 id_Pipe = geompy.addToStudy(Pipe, "Pipe")
413 id_Sewing = geompy.addToStudy(Sewing, "Sewing")
415 import salome_version
416 if int(salome_version.getXVersion(), 16) >= int('0x060600', 16):
417 [Face5, Face6] = geompy.SubShapes(Box, [31, 33])
418 [b1_e1, b1_e2, b1_e3, b1_e4] = geompy.SubShapes(Box, [12, 22, 25, 29])
419 [b2_e1, b2_e2, b2_e3, b2_e4] = geompy.SubShapes(Box, [ 8, 18, 26, 30])
420 Path1 = geompy.RestorePath(Box, Face5, Face6)
421 Path2 = geompy.RestorePathEdges(Box, [b1_e1, b1_e2, b1_e3, b1_e4], [b2_e1, b2_e2, b2_e3, b2_e4])
423 id_Base1 = geompy.addToStudyInFather(Box, Face5, "Base1")
424 id_Base2 = geompy.addToStudyInFather(Box, Face6, "Base2")
425 id_Base1e1 = geompy.addToStudyInFather(Box, b1_e1, "Base1 Edge1")
426 id_Base1e2 = geompy.addToStudyInFather(Box, b1_e2, "Base1 Edge2")
427 id_Base1e3 = geompy.addToStudyInFather(Box, b1_e3, "Base1 Edge3")
428 id_Base1e4 = geompy.addToStudyInFather(Box, b1_e4, "Base1 Edge4")
429 id_Base2e1 = geompy.addToStudyInFather(Box, b2_e1, "Base2 Edge1")
430 id_Base2e2 = geompy.addToStudyInFather(Box, b2_e2, "Base2 Edge2")
431 id_Base2e3 = geompy.addToStudyInFather(Box, b2_e3, "Base2 Edge3")
432 id_Base2e4 = geompy.addToStudyInFather(Box, b2_e4, "Base2 Edge4")
433 id_Path1 = geompy.addToStudy(Path1, "Path1")
434 id_Path2 = geompy.addToStudy(Path2, "Path2")
437 id_Translation = geompy.addToStudy(Translation, "Translation")
438 id_TranslVect = geompy.addToStudy(TranslVect , "Translation along vector")
439 id_TranslVectD = geompy.addToStudy(TranslVectD, "Translation along vector with defined distance")
440 id_Rotation = geompy.addToStudy(Rotation, "Rotation")
441 id_RotatPnt = geompy.addToStudy(RotatPnt, "Rotation by three points")
442 id_Scale1 = geompy.addToStudy(Scale1, "Scale1")
443 id_Scale2 = geompy.addToStudy(Scale2, "Scale2")
444 id_Scale3 = geompy.addToStudy(Scale3, "Scale3")
445 id_Scale4 = geompy.addToStudy(Scale4, "Scale4")
446 id_Mirror = geompy.addToStudy(Mirror, "Mirror by Plane")
447 id_MirrorAxis = geompy.addToStudy(MirrorAxis, "Mirror by Axis")
448 id_MirrorPnt = geompy.addToStudy(MirrorPnt, "Mirror by Point")
449 id_Position = geompy.addToStudy(Position, "Positioned box")
450 id_Position2 = geompy.addToStudy(Position2, "Positioned box along path")
451 id_Offset = geompy.addToStudy(Offset, "Offset")
452 id_Orientation = geompy.addToStudy(Orientation, "Orientation")
454 id_Fillet = geompy.addToStudy(Fillet, "Fillet")
455 id_Fillet2 = geompy.addToStudy(Fillet2, "Fillet2")
456 id_Fillet2d = geompy.addToStudy(Fillet2d, "Fillet2D")
458 id_Chamfer = geompy.addToStudy(Chamfer, "Chamfer on Edge")
459 id_Chamfer2 = geompy.addToStudy(Chamfer2, "Chamfer on Faces")
460 id_Chamfer3 = geompy.addToStudy(Chamfer3, "Chamfer on Edges")
461 id_Chamfer4 = geompy.addToStudy(Chamfer4, "Chamfer on Faces with params D Angle")
463 id_MultiTrans1D = geompy.addToStudy(MultiTrans1D, "MultiTrans1D")
464 id_MultiTrans2D = geompy.addToStudy(MultiTrans2D, "MultiTrans2D")
465 id_MultiRot1D = geompy.addToStudy(MultiRot1D, "MultiRot1D")
466 id_MultiRot2D = geompy.addToStudy(MultiRot2D, "MultiRot2D")
468 id_CDG = geompy.addToStudy(CDG, "CDG")
469 id_Archimede = geompy.addToStudy(Archimede, "Archimede")
471 id_Partition = geompy.addToStudy(Partition, "Partition")
472 id_Partition1 = geompy.addToStudy(Partition1, "Half Partition")
477 SubFace = geompy.SubShape(Box, geompy.ShapeType["FACE"], [2])
478 name = geompy.SubShapeName(SubFace, Box)
479 id_SubFace = geompy.addToStudyInFather(Box, SubFace, name)
481 # SubShapeSortedCentres
482 SubFaceS = geompy.SubShapeSortedCentres(Box, geompy.ShapeType["FACE"], [5])
483 nameS = geompy.SubShapeName(SubFaceS, Box)
484 id_SubFace = geompy.addToStudyInFather(Box, SubFaceS, nameS)
486 # GetExistingSubObjects
487 SubObjsAll = geompy.GetExistingSubObjects(Box, True)
488 print "For now, Box has the following created sub-objects:", SubObjsAll
491 SubGrpsAll = geompy.GetGroups(Box)
492 print "For now, Box has the following created groups:", SubGrpsAll
495 SubEdgeList = geompy.SubShapeAll(SubFace, geompy.ShapeType["EDGE"])
497 for SubEdge in SubEdgeList :
498 name = geompy.SubShapeName(SubEdge, SubFace)
499 id_SubEdge = geompy.addToStudyInFather(SubFace, SubEdge, name)
502 SubEdgeIDsList = geompy.SubShapeAllIDs(SubFace, geompy.ShapeType["EDGE"])
503 print "IDs of edges of SubFace:", SubEdgeIDsList, "(unsorted)"
504 group = geompy.CreateGroup(SubFace, geompy.ShapeType["EDGE"])
505 geompy.UnionIDs(group, SubEdgeIDsList)
506 geompy.addToStudyInFather(SubFace, group, "Group of all edges")
508 # SubShapeAllSortedCentresIDs
509 SubEdgeIDsList = geompy.SubShapeAllSortedCentresIDs(SubFace, geompy.ShapeType["EDGE"])
510 print "IDs of edges of SubFace:", SubEdgeIDsList, "(sorted)"
512 # GetSubShape and GetSubShapeID
513 for ind in SubEdgeIDsList:
514 edge = geompy.GetSubShape(SubFace, [ind])
515 ind_e = geompy.GetSubShapeID(SubFace, edge)
517 print "Error in GetSubShape or GetSubShapeID"
520 geompy.RestoreSubShapes(Copy)
521 geompy.RestoreSubShapes(RotatPnt, [], GEOM.FSM_Transformed)
522 geompy.RestoreSubShapes(Partition, [Box])
523 geompy.RestoreSubShapes(Partition1)