1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2013 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
24 # GEOM GEOM_SWIG : binding of C++ omplementaion with Python
25 # File : GEOM_usinggeom.py
26 # Author : Damien COQUERET, Open CASCADE
29 # ! Please, if you edit this example file, update also
30 # ! GEOM_SRC/doc/salome/gui/GEOM/input/tui_test_all.doc
31 # ! as some sequences of symbols from this example are used during
32 # ! documentation generation to identify certain places of this file
34 def TestAll (geompy, math):
37 #Create base Variables
43 WantPlanarFace = 1 #True
54 angle1 = angle * math.pi / 180
61 meshingdeflection = 0.01
66 p0 = geompy.MakeVertex(0. , 0. , 0. ) #(3 Doubles)->GEOM_Object
67 px = geompy.MakeVertex(100., 0. , 0. )
68 py = geompy.MakeVertex(0. , 100., 0. )
69 pz = geompy.MakeVertex(0. , 0. , 100.)
70 pxyz = geompy.MakeVertex(100., 100., 100.)
72 p200 = geompy.MakeVertexWithRef(pxyz, 100., 100., 100.) #(GEOM_Object, 3 Doubles)->GEOM_Object
74 #Create base directions
75 vx = geompy.MakeVector(p0, px) #(GEOM_Object, GEOM_Object)->GEOM_Object
76 vy = geompy.MakeVector(p0, py)
77 vz = geompy.MakeVector(p0, pz)
78 vxy = geompy.MakeVector(px, py)
80 vxyz = geompy.MakeVectorDXDYDZ(100., 100., 100.) #(3 Doubles)->GEOM_Object
82 #Create local coordinate systems
83 cs1 = geompy.MakeMarker(50,50,50, 1,0,0, 0,1,0) #(9 Doubles)->GEOM_Object
84 cs2 = geompy.MakeMarker(70,80,10, 1,0,1, 1,1,0) #(9 Doubles)->GEOM_Object
85 cs3 = geompy.MakeMarkerPntTwoVec(pz, vxy, vz) #(3 GEOM_Object)->GEOM_Object
87 #Create base geometry 2D
88 Line = geompy.MakeLineTwoPnt(p0, pxyz) #(2 GEOM_Object)->GEOM_Object
89 Line1 = geompy.MakeLine(pz, vxy) #(2 GEOM_Object)->GEOM_Object
90 Line2 = geompy.MakeLineTwoPnt(pxyz, pz) #(2 GEOM_Object)->GEOM_Object
91 Plane = geompy.MakePlane(pz, vxyz, trimsize) #(2 GEOM_Object, Double)->GEOM_Object
92 Plane1 = geompy.MakePlaneThreePnt(px, pz, p200, trimsize) #(4 Doubles)->GEOM_Object
93 Plane2 = geompy.MakePlane2Vec(vx, vz, trimsize) #(2 GEOM_Object, Double)->GEOM_Object
94 Plane3 = geompy.MakePlaneLCS(cs1, trimsize, 3) #(1 GEOM_Object, 2 Double)->GEOM_Object
96 Arc = geompy.MakeArc(py, pz, px) #(3 GEOM_Object)->GEOM_Object
97 Arc2 = geompy.MakeArcCenter(py, pz, px,0) #(3 GEOM_Object,Boolean)->GEOM_Object
98 Arc3 = geompy.MakeArcOfEllipse(p0, px, pz) #(3 GEOM_Object,Boolean)->GEOM_Object
99 Circle = geompy.MakeCircle(p0, vz, radius1) #(2 GEOM_Object, Double)->GEOM_Object
100 Circle1 = geompy.MakeCircleThreePnt(p0, pxyz, px) #(3 GEOM_Object)->GEOM_Object
101 Circle2 = geompy.MakeCircleCenter2Pnt(p0, pxyz, py) #(3 GEOM_Object)->GEOM_Object
102 Ellipse = geompy.MakeEllipse(p0, vy, radius2, radius1) #(2 GEOM_Object, 2 Doubles)->GEOM_Object
103 Polyline = geompy.MakePolyline([p0, pz, py, p200]) #(List of GEOM_Object)->GEOM_Object
104 Bezier = geompy.MakeBezier([p0, pz, p200, px]) #(List of GEOM_Object)->GEOM_Object
105 Interpol = geompy.MakeInterpol([px, py, p200, pxyz], True) #(List of GEOM_Object,Boolean)->GEOM_Object
106 InterpT1 = geompy.MakeInterpolWithTangents([px, py, pxyz], vx, vz) #(List of GO, GO, GO)->GEOM_Object
107 InterpT2 = geompy.MakeInterpolWithTangents([px, py, pxyz], vxy, vxyz) #(List of GO, GO, GO)->GEOM_Object
108 Sketcher = geompy.MakeSketcher("Sketcher:F -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WW",
109 [100,0,0, 1,1,1, -1,1,0]) #(String, List of Doubles)->GEOM_Object
111 #Create 3D wires with 3D Sketcher
112 sk = geompy.Sketcher3D()
113 sk.addPointsAbsolute(0,0,0, 70,0,0)
114 sk.addPointsRelative(0, 0, 130)
115 sk.addPointRadiusAnglesRelative(100, 50, 0,"OXY")
116 sk.addPointRadiusAnglesRelative(130, 30, 80, "OXZ")
117 sk.addPointRadiusAnglesAbsolute(500, 60, 30,"OXY")
118 sk.addPointRadiusAngleHRelative(100, 50, 0,"OXY")
119 sk.addPointRadiusAngleHRelative(130, 30, 40, "OXZ")
120 sk.addPointRadiusAngleHAbsolute(800, 60, 30,"OXY")
122 Sketcher3d_1 = sk.wire()
124 Sketcher3d_2 = geompy.Make3DSketcher([0,0,0, 50,50,50, 0,50,50, 10,0,0])
126 #Create local coordinate system from shape
127 cs4 = geompy.MakeMarkerFromShape(Plane)
129 #Test point on curve creation
130 p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25) #(GEOM_Object, Double)->GEOM_Object
131 p_on_arc2 = geompy.MakeVertexOnCurveByCoord(Arc, 100, -10, 10 ) #(GEOM_Object, Double)->GEOM_Object
132 p_on_arc3 = geompy.MakeVertexOnCurveByLength(Arc, 50, py) #(GEOM_Object, Double, GEOM_Object)->GEOM_Object
134 #Test point on lines intersection
135 p_on_l1l2 = geompy.MakeVertexOnLinesIntersection(Line1, Line2) #(2 GEOM_Object)->GEOM_Object
137 #Test tangent on curve creation
138 tan_on_arc = geompy.MakeTangentOnCurve(Arc, 0.7) #(GEOM_Object, Double)->GEOM_Object
140 #Test tangent on face creation
141 tan_vertex_1 = geompy.MakeVertex(0, 0, 0)
142 tan_vertex_2 = geompy.MakeVertex(0, 90, 30)
143 tan_vertex_3 = geompy.MakeVertex(100, 90, 0)
144 tan_vertex_4 = geompy.MakeVertex(-100, 90, 0)
145 tan_curve = geompy.MakeInterpol([tan_vertex_4, tan_vertex_2, tan_vertex_3, tan_vertex_1], False)
146 tan_extrusion = geompy.MakePrismDXDYDZ(tan_curve, 0, 30, -60)
147 tan_on_face = geompy.MakeTangentPlaneOnFace(tan_extrusion, 0.7, 0.5, 150)
149 #Create base geometry 3D
150 Box = geompy.MakeBoxTwoPnt(p0, p200) #(2 GEOM_Object)->GEOM_Object
151 Box1 = geompy.MakeBoxDXDYDZ(10, 20, 30) #(3 Doubles)->GEOM_Object
152 Box2 = geompy.MakeBox(10,20,30, 15,25,35) #(6 Doubles)->GEOM_Object
153 Cylinder = geompy.MakeCylinder(p0, vz, radius1, height) #(2 GEOM_Object, 2 Doubles)->GEOM_Object
154 Cyl1 = geompy.MakeCylinderRH(radius2, height) #(2 Doubles)->GEOM_Object
155 Sphere = geompy.MakeSpherePntR(p0, radius1) #(GEOM_Object, Double)->GEOM_Object
156 Sphere1 = geompy.MakeSphereR(radius) #(Double)->GEOM_Object
157 Sphere2 = geompy.MakeSphere(50, 70, 30, radius) #(4 Doubles)->GEOM_Object
158 Cone = geompy.MakeCone(p0, vz, radius2, radius, height) #(2 GEOM_Object, 3 Doubles)->GEOM_Object
159 Cone1 = geompy.MakeConeR1R2H(radius1, radius, height) #(3 Doubles)->GEOM_Object
160 Torus = geompy.MakeTorus(p0, vz, radius2, radius) #(2 GEOM_Object, 2 Doubles)->GEOM_Object
161 Torus1 = geompy.MakeTorusRR(radius2, radius1) #(2 Doubles)->GEOM_Object
163 #Boolean (Common, Cut, Fuse, Section)
164 Common = geompy.MakeBoolean(Box, Sphere, 1) #(2 GEOM_Object, Short)->GEOM_Object
165 Cut = geompy.MakeBoolean(Box, Sphere, 2)
166 Fuse = geompy.MakeBoolean(Box, Sphere, 3)
167 Section = geompy.MakeBoolean(Box, Sphere, 4)
170 Edge = geompy.MakeEdge(p0, pxyz) #(2 GEOM_Object)->GEOM_Object
171 Edge1 = geompy.MakeEdgeOnCurveByLength(Arc, 50, px) #(GEOM_Object, Double, GEOM_Object)->GEOM_Object
172 Wire = geompy.MakeWire([vxy, Arc]) #(List Of GEOM_Object)->GEOM_Object
173 Face = geompy.MakeFace(Wire, WantPlanarFace) #(GEOM_Object, Boolean)->GEOM_Object
174 Face1 = geompy.MakeFaceWires([Wire, Sketcher],
175 WantPlanarFace) #(List of GEOM_Object, Boolean)->GEOM_Object
176 Face2 = geompy.MakeFace(Sketcher, WantPlanarFace)
177 Face3 = geompy.MakeFaceHW (100., 200., 1) #(2 Doubles, 1 Int)->GEOM_Object
178 Face4 = geompy.MakeFaceObjHW (vz, 200., 100.) #(1 GEOM_Object, 2 Doubles)->GEOM_Object
179 Disk = geompy.MakeDiskPntVecR (p0, vz, radius) #(2 GEOM_Object, 1 Double)->GEOM_Object
180 Disk2 = geompy.MakeDiskThreePnt(p0, p200, pz) #(3 GEOM_Object)->GEOM_Object
181 Disk3 = geompy.MakeDiskR(100., 1) #(1 Doubles, 1 Int)->GEOM_Object
182 Shell = geompy.MakeShell([Face, Face1]) #(List of GEOM_Object)->GEOM_Object
184 Prism1 = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
185 prism1_faces = geompy.SubShapeAllSortedCentres(Prism1, geompy.ShapeType["FACE"])
186 Shell1 = geompy.MakeShell([prism1_faces[0], prism1_faces[1],
187 prism1_faces[3], prism1_faces[4],
188 prism1_faces[5], prism1_faces[2]])
189 Solid = geompy.MakeSolid([Shell1]) #(List of GEOM_Object)->GEOM_Object
191 ShapeListCompound = []
194 S = geompy.MakeTranslation(Arc, i * 100., i * 100., i * 100.)
195 ShapeListCompound.append(S)
197 Compound = geompy.MakeCompound(ShapeListCompound) #(List of GEOM_Object)->GEOM_Object
199 #Test point on surface creation
200 p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8) #(GEOM_Object, Double, Double)->GEOM_Object
201 p_on_face2 = geompy.MakeVertexOnSurfaceByCoord(Face, 0., 0., 0.) #(GEOM_Object, Double, Double, Double)->GEOM_Object
202 p_on_face3 = geompy.MakeVertexInsideFace(Face) #(GEOM_Object)->GEOM_Object
204 # Test plane from existing face creation
205 Plane2 = geompy.MakePlaneFace(Face, trimsize) #(GEOM_Object, Double)->GEOM_Object
207 #ShapeList for Sewing
208 S = geompy.MakeRotation(Face, vxy, angle1)
210 #Test Line on Faces Intersection
211 Line3 = geompy.MakeLineTwoFaces(prism1_faces[0], prism1_faces[1]) #(2 GEOM_Object)->GEOM_Object
213 #Create advanced objects
214 Copy = geompy.MakeCopy(Box) #(GEOM_Object)->GEOM_Object
215 Prism = geompy.MakePrismVecH(Face, vz, 100.0) #(2 GEOM_Object, Double)->GEOM_Object
216 Prism2Ways = geompy.MakePrismVecH2Ways(Face, vz, 10.0) #(2 GEOM_Object, Double)->GEOM_Object
217 PrismTwoPnt = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
218 PrismTwoPnt2Ways = geompy.MakePrism2Ways(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
219 PrismDXDYDZ = geompy.MakePrismDXDYDZ(Face2, 10, 20, 100)#(2 GEOM_Object, Double)->GEOM_Object
220 PrismDXDYDZ2Ways = geompy.MakePrismDXDYDZ2Ways(Face, 30, -20, 200)#(2 GEOM_Object, Double)->GEOM_Object
221 Revolution = geompy.MakeRevolution(Face, vz, angle2) #
222 Revolution2Ways = geompy.MakeRevolution(Face, vz, angle1) #
223 Filling = geompy.MakeFilling(Compound, mindeg, maxdeg,
224 tol2d, tol3d, nbiter) #(GEOM_Object, 4 Doubles, Short)->GEOM_Object
225 Pipe = geompy.MakePipe(Wire, Edge) #(2 GEOM_Object)->GEOM_Object
226 Sewing = geompy.MakeSewing([Face, S], precision) #(List Of GEOM_Object, Double)->GEOM_Object
229 Translation = geompy.MakeTranslationTwoPoints(Box, px, pz) #(3 GEOM_Object)->GEOM_Object
230 TranslVect = geompy.MakeTranslationVector(Box, vxyz) #(2 GEOM_Object)->GEOM_Object
231 TranslVectD = geompy.MakeTranslationVectorDistance(Box, vxyz, 50.0) #(2 GEOM_Object)->GEOM_Object
232 Rotation = geompy.MakeRotation(Box, vz, angle1) #(2 GEOM_Object, Double)->GEOM_Object
233 RotatPnt = geompy.MakeRotationThreePoints(Box, px, py, pz) #(4 GEOM_Object)->GEOM_Object
235 #Scale by factor relatively given point
236 Scale1 = geompy.MakeScaleTransform(Box, pxyz, factor) #(2 GEOM_Object, Double)->GEOM_Object
237 #Scale by factor relatively the origin of global CS
238 Scale2 = geompy.MakeScaleTransform(Box, None, factor) #
239 #Scale along axes of global CS by different factors. Scale relatively given point
240 Scale3 = geompy.MakeScaleAlongAxes(Box, pxyz, 1.5, 0.5, 3) #(2 GEOM_Object, 3 Doubles)->GEOM_Object
241 #Scale along axes of global CS by different factors. Scale relatively the origin of global CS
242 Scale4 = geompy.MakeScaleAlongAxes(Box, None, 1.5, 0.5, 3) #
244 Mirror = geompy.MakeMirrorByPlane(Box, Plane) #(2 GEOM_Object)->GEOM_Object
245 MirrorAxis = geompy.MakeMirrorByAxis(Box, Line1) #
246 MirrorPnt = geompy.MakeMirrorByPoint(Box, p200) #
247 Position = geompy.MakePosition(Box, cs1, cs2) #(3 GEOM_Object)->GEOM_Object
248 Position2 = geompy.PositionAlongPath(Box, Arc, 0.5, 1, 0) #(2 GEOM_Object, 1 Double, 2 Bool)->GEOM_Object
249 Offset = geompy.MakeOffset(Box, 10.) #(GEOM_Object, Double)->GEOM_Object
250 Orientation = geompy.ChangeOrientation(Box)
251 ProjOnWire = geompy.MakeProjectionOnWire(p0, Wire)
253 #IDList for Fillet/Chamfer
254 prism_edges = geompy.ExtractShapes(Prism, geompy.ShapeType["EDGE"], True)
256 for anEdge in prism_edges:
257 eid = geompy.GetSubShapeID(Prism, anEdge)
258 sse = geompy.GetSubShape(Prism, [eid])
260 sse_id = geompy.GetSubShapeID(Prism, sse)
262 print "Error: GetSubShape() or GetSubShapeID() has failed!"
265 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[0]))
266 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[1]))
267 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[2]))
269 prism_faces = geompy.ExtractShapes(Prism, geompy.ShapeType["FACE"], True)
271 f_ind_1 = geompy.GetSubShapeID(Prism, prism_faces[0])
272 f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
274 IDlist_f = [f_ind_1, f_ind_2]
277 Fillet2d = geompy.MakeFillet2D(Face3, radius, [4, 7, 9]) #(GEOM_Object, Double, ListOfLong)->GEOM_Object
278 Fillet = geompy.MakeFillet (Prism, radius, geompy.ShapeType["EDGE"],
279 IDlist_e) #(GEOM_Object, Double, Short, ListOfLong)->GEOM_Object
280 Fillet2 = geompy.MakeFilletR1R2 (Prism, 7., 13., geompy.ShapeType["EDGE"],
281 IDlist_e) #(GEOM_Object, Double, Double, Short, ListOfLong)->GEOM_Object
282 Chamfer = geompy.MakeChamferEdge(Prism, d1, d2,
283 f_ind_1, f_ind_2) #(GEOM_Object, 2 Doubles, 2 Long)->GEOM_Object
284 Chamfer2 = geompy.MakeChamferFaces(Prism, d1, d2,
285 IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
286 Chamfer3 = geompy.MakeChamferEdges(Prism, d1, d2,
287 IDlist_e) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
288 Chamfer4 = geompy.MakeChamferFacesAD(Prism, d1, 20. * math.pi / 180.,
289 IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
290 #End of Local operations
293 MultiTrans1D = geompy.MakeMultiTranslation1D(Fillet, vz, step1, nbtimes1)
294 MultiTrans2D = geompy.MakeMultiTranslation2D(Fillet, vz, step1, nbtimes1, vy, step2, nbtimes2)
295 MultiRot1Dt = geompy.MultiRotate1DNbTimes(Chamfer, vx, nbtimes1)
296 MultiRot1Ds = geompy.MultiRotate1DByStep(Chamfer, vx, math.pi/4., nbtimes1)
297 MultiRot2Dt = geompy.MultiRotate2DNbTimes(Chamfer, vx, nbtimes1, step1, nbtimes2)
298 MultiRot2Ds = geompy.MultiRotate2DByStep(Chamfer, vx, angle1, nbtimes1, step1, nbtimes2)
300 #Create Informations objects
301 CDG = geompy.MakeCDG(Prism) #(GEOM_Object)->GEOM_Object
302 Archimede = geompy.Archimede(Box, weight, waterdensity,
303 meshingdeflection) #(GEOM_Object, 3 Doubles)->GEOM_Object
304 mindist = geompy.MinDistanceComponents(TranslVect, Mirror) #(2 GEOM_Object)->4 Doubles
305 print "Minumal distance between TranslVect and Mirror is", mindist[0],
306 print "by components:", mindist[1], ",", mindist[2], ",", mindist[3]
307 CheckShape = geompy.CheckShape(Prism) #(GEOM_Object)->Boolean
308 print "CheckShape(Prism) = ", CheckShape
311 Partition = geompy.MakePartition([Box], [Plane]) #(2 Lists Of GEOM_Object)->GEOM_Object
312 Partition1 = geompy.MakeHalfPartition(Box, Plane) #(2 GEOM_Object)->GEOM_Object
315 id_p0 = geompy.addToStudy(p0, "Vertex 0")
316 id_px = geompy.addToStudy(px, "Vertex X")
317 id_py = geompy.addToStudy(py, "Vertex Y")
318 id_pz = geompy.addToStudy(pz, "Vertex Z")
319 id_pxyz = geompy.addToStudy(pxyz, "Vertex XYZ")
320 id_p200 = geompy.addToStudy(p200, "Vertex 200")
322 id_vx = geompy.addToStudy(vx, "Vector X")
323 id_vy = geompy.addToStudy(vy, "Vector Y")
324 id_vz = geompy.addToStudy(vz, "Vector Z")
325 id_vxy = geompy.addToStudy(vxy, "Vector XY")
326 id_vxyz = geompy.addToStudy(vxyz, "Vector XYZ")
328 id_cs1 = geompy.addToStudy(cs1, "CS 50,50,50, 1,0,0, 0,1,0")
329 id_cs2 = geompy.addToStudy(cs2, "CS 70,80,10, 1,0,1, 1,1,0")
330 id_cs3 = geompy.addToStudy(cs3, "CS: pz, vxy, vz")
331 id_cs4 = geompy.addToStudy(cs4, "CS: Plane")
333 id_Line = geompy.addToStudy(Line, "Line")
334 id_Line1 = geompy.addToStudy(Line1, "Line by point and vector")
335 id_Line3 = geompy.addToStudy(Line3, "Line on Two Faces Intersection")
336 id_Plane = geompy.addToStudy(Plane, "Plane")
337 id_Plane1 = geompy.addToStudy(Plane1, "Plane by 3 points")
338 id_Plane2 = geompy.addToStudy(Plane2, "Plane by 2 vectors")
339 id_Plane3 = geompy.addToStudy(Plane3, "Plane by LCS")
341 id_Arc = geompy.addToStudy(Arc, "Arc")
342 id_Arc2 = geompy.addToStudy(Arc2, "Arc2")
343 id_Arc3 = geompy.addToStudy(Arc3, "Arc3")
344 id_Circle = geompy.addToStudy(Circle, "Circle")
345 id_Circle1 = geompy.addToStudy(Circle1, "Circle by 3 points")
346 id_Circle2 = geompy.addToStudy(Circle2, "Circle by center and 2 points")
347 id_Ellipse = geompy.addToStudy(Ellipse, "Ellipse")
348 id_Polyline = geompy.addToStudy(Polyline, "Polyline")
349 id_Bezier = geompy.addToStudy(Bezier, "Bezier")
350 id_Interpol = geompy.addToStudy(Interpol, "Interpol")
351 id_InterpT1 = geompy.addToStudy(InterpT1, "InterpT1")
352 id_InterpT2 = geompy.addToStudy(InterpT2, "InterpT2")
353 id_Sketcher = geompy.addToStudy(Sketcher, "Sketcher")
355 id_Sketcher3d_1 = geompy.addToStudy(Sketcher3d_1, "Sketcher 3D by interface")
356 id_Sketcher3d_2 = geompy.addToStudy(Sketcher3d_2, "Sketcher 3D by list")
358 id_p_on_arc = geompy.addToStudy(p_on_arc, "Vertex on Arc (0.25)")
359 id_p_on_arc2 = geompy.addToStudy(p_on_arc2, "Vertex on Arc at(100, -10, 10)" )
360 id_p_on_arc3 = geompy.addToStudy(p_on_arc3, "Vertex on Arc length 50 from Vertex X" )
362 id_p_on_l1l2 = geompy.addToStudy(p_on_l1l2, "Vertex on Lines Intersection")
364 id_tan_on_arc = geompy.addToStudy(tan_on_arc, "Tangent on Arc (0.7)")
365 id_tan_on_face = geompy.addToStudy(tan_on_face, "Tangent on Face")
367 id_Box = geompy.addToStudy(Box, "Box")
368 id_Box1 = geompy.addToStudy(Box1, "Box 10x20x30")
369 id_Box2 = geompy.addToStudy(Box2, "Box (10,20,30)-(15,25,35)")
370 id_Cylinder = geompy.addToStudy(Cylinder, "Cylinder")
371 id_Cyl1 = geompy.addToStudy(Cyl1, "Cylinder RH")
372 id_Sphere = geompy.addToStudy(Sphere, "Sphere Pnt R")
373 id_Sphere1 = geompy.addToStudy(Sphere1, "Sphere R")
374 id_Sphere2 = geompy.addToStudy(Sphere2, "Sphere")
375 id_Cone = geompy.addToStudy(Cone, "Cone")
376 id_Cone1 = geompy.addToStudy(Cone1, "Cone R1R2H")
377 id_Torus = geompy.addToStudy(Torus, "Torus")
378 id_Torus1 = geompy.addToStudy(Torus1, "Torus RR")
380 id_Common = geompy.addToStudy(Common, "Common")
381 id_Cut = geompy.addToStudy(Cut, "Cut")
382 id_Fuse = geompy.addToStudy(Fuse, "Fuse")
383 id_Section = geompy.addToStudy(Section, "Section")
385 id_Edge = geompy.addToStudy(Edge, "Edge")
386 id_Edge1 = geompy.addToStudy(Edge1, "Edge on Arc length 50 from Vertex Y")
387 id_Wire = geompy.addToStudy(Wire, "Wire")
388 id_Face = geompy.addToStudy(Face, "Face")
389 id_Face1 = geompy.addToStudy(Face1, "Face from two wires")
390 id_Face2 = geompy.addToStudy(Face2, "Face from Sketcher")
391 id_Face3 = geompy.addToStudy(Face3, "Face Height Width")
392 id_Face4 = geompy.addToStudy(Face4, "Face Plane_HW")
393 id_Disk = geompy.addToStudy(Disk, "Disk PntVecR")
394 id_Disk2 = geompy.addToStudy(Disk2, "Disk Three Points")
395 id_Disk3 = geompy.addToStudy(Disk3, "Disk OXY Radius")
396 id_Shell = geompy.addToStudy(Shell, "Shell")
398 id_p_on_face = geompy.addToStudy(p_on_face, "Vertex on Face (0.1, 0.8)")
399 id_p_on_face2 = geompy.addToStudy(p_on_face2, "Vertex on Face at(0., 0., 0.)")
400 id_p_on_face3 = geompy.addToStudy(p_on_face3, "Vertex inside Face")
402 id_Prism1 = geompy.addToStudy(Prism1, "Prism by Two Pnt")
403 id_Shell1 = geompy.addToStudy(Shell1, "Shell from Prism1 faces")
404 id_Solid = geompy.addToStudy(Solid, "Solid")
405 id_Compound = geompy.addToStudy(Compound, "Compound")
407 id_Plane2 = geompy.addToStudy(Plane2, "Plane on Face")
409 id_Copy = geompy.addToStudy(Copy, "Copy")
410 id_Prism = geompy.addToStudy(Prism, "Prism")
411 id_Prism2Ways = geompy.addToStudy(Prism2Ways, "Prism2Ways")
412 id_PrismTwoPnt = geompy.addToStudy(PrismTwoPnt, "PrismTwoPnt")
413 id_PrismTwoPnt2Ways = geompy.addToStudy(PrismTwoPnt2Ways, "PrismTwoPnt2Ways")
414 id_PrismDXDYDZ = geompy.addToStudy(PrismDXDYDZ, "PrismDXDYDZ")
415 id_PrismDXDYDZ2Ways = geompy.addToStudy(PrismDXDYDZ2Ways, "PrismDXDYDZ2Ways")
416 id_Revolution = geompy.addToStudy(Revolution, "Revolution")
417 id_Revolution2Ways = geompy.addToStudy(Revolution2Ways, "Revolution2Ways")
418 id_Filling = geompy.addToStudy(Filling, "Filling")
419 id_Pipe = geompy.addToStudy(Pipe, "Pipe")
420 id_Sewing = geompy.addToStudy(Sewing, "Sewing")
422 import salome_version
423 if int(salome_version.getXVersion(), 16) >= int('0x060600', 16):
424 [Face5, Face6] = geompy.SubShapes(Box, [31, 33])
425 [b1_e1, b1_e2, b1_e3, b1_e4] = geompy.SubShapes(Box, [12, 22, 25, 29])
426 [b2_e1, b2_e2, b2_e3, b2_e4] = geompy.SubShapes(Box, [ 8, 18, 26, 30])
427 Path1 = geompy.RestorePath(Box, Face5, Face6)
428 Path2 = geompy.RestorePathEdges(Box, [b1_e1, b1_e2, b1_e3, b1_e4], [b2_e1, b2_e2, b2_e3, b2_e4])
430 id_Base1 = geompy.addToStudyInFather(Box, Face5, "Base1")
431 id_Base2 = geompy.addToStudyInFather(Box, Face6, "Base2")
432 id_Base1e1 = geompy.addToStudyInFather(Box, b1_e1, "Base1 Edge1")
433 id_Base1e2 = geompy.addToStudyInFather(Box, b1_e2, "Base1 Edge2")
434 id_Base1e3 = geompy.addToStudyInFather(Box, b1_e3, "Base1 Edge3")
435 id_Base1e4 = geompy.addToStudyInFather(Box, b1_e4, "Base1 Edge4")
436 id_Base2e1 = geompy.addToStudyInFather(Box, b2_e1, "Base2 Edge1")
437 id_Base2e2 = geompy.addToStudyInFather(Box, b2_e2, "Base2 Edge2")
438 id_Base2e3 = geompy.addToStudyInFather(Box, b2_e3, "Base2 Edge3")
439 id_Base2e4 = geompy.addToStudyInFather(Box, b2_e4, "Base2 Edge4")
440 id_Path1 = geompy.addToStudy(Path1, "Path1")
441 id_Path2 = geompy.addToStudy(Path2, "Path2")
444 id_Translation = geompy.addToStudy(Translation, "Translation")
445 id_TranslVect = geompy.addToStudy(TranslVect , "Translation along vector")
446 id_TranslVectD = geompy.addToStudy(TranslVectD, "Translation along vector with defined distance")
447 id_Rotation = geompy.addToStudy(Rotation, "Rotation")
448 id_RotatPnt = geompy.addToStudy(RotatPnt, "Rotation by three points")
449 id_Scale1 = geompy.addToStudy(Scale1, "Scale1")
450 id_Scale2 = geompy.addToStudy(Scale2, "Scale2")
451 id_Scale3 = geompy.addToStudy(Scale3, "Scale3")
452 id_Scale4 = geompy.addToStudy(Scale4, "Scale4")
453 id_Mirror = geompy.addToStudy(Mirror, "Mirror by Plane")
454 id_MirrorAxis = geompy.addToStudy(MirrorAxis, "Mirror by Axis")
455 id_MirrorPnt = geompy.addToStudy(MirrorPnt, "Mirror by Point")
456 id_Position = geompy.addToStudy(Position, "Positioned box")
457 id_Position2 = geompy.addToStudy(Position2, "Positioned box along path")
458 id_Offset = geompy.addToStudy(Offset, "Offset")
459 id_Orientation = geompy.addToStudy(Orientation, "Orientation")
460 id_ProjOnWire = geompy.addToStudy(ProjOnWire[1], "ProjOnWire")
462 id_Fillet = geompy.addToStudy(Fillet, "Fillet")
463 id_Fillet2 = geompy.addToStudy(Fillet2, "Fillet2")
464 id_Fillet2d = geompy.addToStudy(Fillet2d, "Fillet2D")
466 id_Chamfer = geompy.addToStudy(Chamfer, "Chamfer on Edge")
467 id_Chamfer2 = geompy.addToStudy(Chamfer2, "Chamfer on Faces")
468 id_Chamfer3 = geompy.addToStudy(Chamfer3, "Chamfer on Edges")
469 id_Chamfer4 = geompy.addToStudy(Chamfer4, "Chamfer on Faces with params D Angle")
471 id_MultiTrans1D = geompy.addToStudy(MultiTrans1D, "MultiTrans1D")
472 id_MultiTrans2D = geompy.addToStudy(MultiTrans2D, "MultiTrans2D")
473 id_MultiRot1Dt = geompy.addToStudy(MultiRot1Dt, "MultiRot1D NbTimes")
474 id_MultiRot1Ds = geompy.addToStudy(MultiRot1Ds, "MultiRot1D ByStep")
475 id_MultiRot2Dt = geompy.addToStudy(MultiRot2Dt, "MultiRot2D NbTimes")
476 id_MultiRot2Ds = geompy.addToStudy(MultiRot2Ds, "MultiRot2D ByStep")
478 id_CDG = geompy.addToStudy(CDG, "CDG")
479 id_Archimede = geompy.addToStudy(Archimede, "Archimede")
481 id_Partition = geompy.addToStudy(Partition, "Partition")
482 id_Partition1 = geompy.addToStudy(Partition1, "Half Partition")
487 SubFace = geompy.SubShape(Box, geompy.ShapeType["FACE"], [2])
488 name = geompy.SubShapeName(SubFace, Box)
489 id_SubFace = geompy.addToStudyInFather(Box, SubFace, name)
491 # SubShapeSortedCentres
492 SubFaceS = geompy.SubShapeSortedCentres(Box, geompy.ShapeType["FACE"], [5])
493 nameS = geompy.SubShapeName(SubFaceS, Box)
494 id_SubFace = geompy.addToStudyInFather(Box, SubFaceS, nameS)
496 # GetExistingSubObjects
497 SubObjsAll = geompy.GetExistingSubObjects(Box, True)
498 print "For now, Box has the following created sub-objects:", SubObjsAll
501 SubGrpsAll = geompy.GetGroups(Box)
502 print "For now, Box has the following created groups:", SubGrpsAll
505 SubEdgeList = geompy.SubShapeAll(SubFace, geompy.ShapeType["EDGE"])
507 for SubEdge in SubEdgeList :
508 name = geompy.SubShapeName(SubEdge, SubFace)
509 id_SubEdge = geompy.addToStudyInFather(SubFace, SubEdge, name)
512 SubEdgeIDsList = geompy.SubShapeAllIDs(SubFace, geompy.ShapeType["EDGE"])
513 print "IDs of edges of SubFace:", SubEdgeIDsList, "(unsorted)"
514 group = geompy.CreateGroup(SubFace, geompy.ShapeType["EDGE"])
515 geompy.UnionIDs(group, SubEdgeIDsList)
516 geompy.addToStudyInFather(SubFace, group, "Group of all edges")
518 # SubShapeAllSortedCentresIDs
519 SubEdgeIDsList = geompy.SubShapeAllSortedCentresIDs(SubFace, geompy.ShapeType["EDGE"])
520 print "IDs of edges of SubFace:", SubEdgeIDsList, "(sorted)"
522 # GetSubShape and GetSubShapeID
523 for ind in SubEdgeIDsList:
524 edge = geompy.GetSubShape(SubFace, [ind])
525 ind_e = geompy.GetSubShapeID(SubFace, edge)
527 print "Error in GetSubShape or GetSubShapeID"
530 geompy.RestoreSubShapes(Copy)
531 geompy.RestoreSubShapes(RotatPnt, [], GEOM.FSM_Transformed)
532 geompy.RestoreSubShapes(Partition, [Box])
533 geompy.RestoreSubShapes(Partition1)