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