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
192 Isoline = geompy.MakeIsoline(Face1, True, 0.5) #(1 GEOM_Object, Boolean, Double)->GEOM_Object
194 ShapeListCompound = []
197 S = geompy.MakeTranslation(Arc, i * 100., i * 100., i * 100.)
198 ShapeListCompound.append(S)
200 Compound = geompy.MakeCompound(ShapeListCompound) #(List of GEOM_Object)->GEOM_Object
202 #Test point on surface creation
203 p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8) #(GEOM_Object, Double, Double)->GEOM_Object
204 p_on_face2 = geompy.MakeVertexOnSurfaceByCoord(Face, 0., 0., 0.) #(GEOM_Object, Double, Double, Double)->GEOM_Object
205 p_on_face3 = geompy.MakeVertexInsideFace(Face) #(GEOM_Object)->GEOM_Object
207 # Test plane from existing face creation
208 Plane2 = geompy.MakePlaneFace(Face, trimsize) #(GEOM_Object, Double)->GEOM_Object
210 #ShapeList for Sewing
211 S = geompy.MakeRotation(Face, vxy, angle1)
213 #Test Line on Faces Intersection
214 Line3 = geompy.MakeLineTwoFaces(prism1_faces[0], prism1_faces[1]) #(2 GEOM_Object)->GEOM_Object
216 #Create advanced objects
217 Copy = geompy.MakeCopy(Box) #(GEOM_Object)->GEOM_Object
218 Prism = geompy.MakePrismVecH(Face, vz, 100.0) #(2 GEOM_Object, Double)->GEOM_Object
219 Prism2Ways = geompy.MakePrismVecH2Ways(Face, vz, 10.0) #(2 GEOM_Object, Double)->GEOM_Object
220 PrismTwoPnt = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
221 PrismTwoPnt2Ways = geompy.MakePrism2Ways(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
222 PrismDXDYDZ = geompy.MakePrismDXDYDZ(Face2, 10, 20, 100)#(2 GEOM_Object, Double)->GEOM_Object
223 PrismDXDYDZ2Ways = geompy.MakePrismDXDYDZ2Ways(Face, 30, -20, 200)#(2 GEOM_Object, Double)->GEOM_Object
224 Revolution = geompy.MakeRevolution(Face, vz, angle2) #
225 Revolution2Ways = geompy.MakeRevolution(Face, vz, angle1) #
226 Filling = geompy.MakeFilling(Compound, mindeg, maxdeg,
227 tol2d, tol3d, nbiter) #(GEOM_Object, 4 Doubles, Short)->GEOM_Object
228 Pipe = geompy.MakePipe(Wire, Edge) #(2 GEOM_Object)->GEOM_Object
229 Sewing = geompy.MakeSewing([Face, S], precision) #(List Of GEOM_Object, Double)->GEOM_Object
232 Translation = geompy.MakeTranslationTwoPoints(Box, px, pz) #(3 GEOM_Object)->GEOM_Object
233 TranslVect = geompy.MakeTranslationVector(Box, vxyz) #(2 GEOM_Object)->GEOM_Object
234 TranslVectD = geompy.MakeTranslationVectorDistance(Box, vxyz, 50.0) #(2 GEOM_Object)->GEOM_Object
235 Rotation = geompy.MakeRotation(Box, vz, angle1) #(2 GEOM_Object, Double)->GEOM_Object
236 RotatPnt = geompy.MakeRotationThreePoints(Box, px, py, pz) #(4 GEOM_Object)->GEOM_Object
238 #Scale by factor relatively given point
239 Scale1 = geompy.MakeScaleTransform(Box, pxyz, factor) #(2 GEOM_Object, Double)->GEOM_Object
240 #Scale by factor relatively the origin of global CS
241 Scale2 = geompy.MakeScaleTransform(Box, None, factor) #
242 #Scale along axes of global CS by different factors. Scale relatively given point
243 Scale3 = geompy.MakeScaleAlongAxes(Box, pxyz, 1.5, 0.5, 3) #(2 GEOM_Object, 3 Doubles)->GEOM_Object
244 #Scale along axes of global CS by different factors. Scale relatively the origin of global CS
245 Scale4 = geompy.MakeScaleAlongAxes(Box, None, 1.5, 0.5, 3) #
247 Mirror = geompy.MakeMirrorByPlane(Box, Plane) #(2 GEOM_Object)->GEOM_Object
248 MirrorAxis = geompy.MakeMirrorByAxis(Box, Line1) #
249 MirrorPnt = geompy.MakeMirrorByPoint(Box, p200) #
250 Position = geompy.MakePosition(Box, cs1, cs2) #(3 GEOM_Object)->GEOM_Object
251 Position2 = geompy.PositionAlongPath(Box, Arc, 0.5, 1, 0) #(2 GEOM_Object, 1 Double, 2 Bool)->GEOM_Object
252 Offset = geompy.MakeOffset(Box, 10.) #(GEOM_Object, Double)->GEOM_Object
253 Orientation = geompy.ChangeOrientation(Box)
254 ProjOnWire = geompy.MakeProjectionOnWire(p0, Wire)
256 #IDList for Fillet/Chamfer
257 prism_edges = geompy.ExtractShapes(Prism, geompy.ShapeType["EDGE"], True)
259 for anEdge in prism_edges:
260 eid = geompy.GetSubShapeID(Prism, anEdge)
261 sse = geompy.GetSubShape(Prism, [eid])
263 sse_id = geompy.GetSubShapeID(Prism, sse)
265 print "Error: GetSubShape() or GetSubShapeID() has failed!"
268 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[0]))
269 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[1]))
270 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[2]))
272 prism_faces = geompy.ExtractShapes(Prism, geompy.ShapeType["FACE"], True)
274 f_ind_1 = geompy.GetSubShapeID(Prism, prism_faces[0])
275 f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
277 IDlist_f = [f_ind_1, f_ind_2]
280 Fillet2d = geompy.MakeFillet2D(Face3, radius, [4, 7, 9]) #(GEOM_Object, Double, ListOfLong)->GEOM_Object
281 Fillet = geompy.MakeFillet (Prism, radius, geompy.ShapeType["EDGE"],
282 IDlist_e) #(GEOM_Object, Double, Short, ListOfLong)->GEOM_Object
283 Fillet2 = geompy.MakeFilletR1R2 (Prism, 7., 13., geompy.ShapeType["EDGE"],
284 IDlist_e) #(GEOM_Object, Double, Double, Short, ListOfLong)->GEOM_Object
285 Chamfer = geompy.MakeChamferEdge(Prism, d1, d2,
286 f_ind_1, f_ind_2) #(GEOM_Object, 2 Doubles, 2 Long)->GEOM_Object
287 Chamfer2 = geompy.MakeChamferFaces(Prism, d1, d2,
288 IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
289 Chamfer3 = geompy.MakeChamferEdges(Prism, d1, d2,
290 IDlist_e) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
291 Chamfer4 = geompy.MakeChamferFacesAD(Prism, d1, 20. * math.pi / 180.,
292 IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
293 #End of Local operations
296 MultiTrans1D = geompy.MakeMultiTranslation1D(Fillet, vz, step1, nbtimes1)
297 MultiTrans2D = geompy.MakeMultiTranslation2D(Fillet, vz, step1, nbtimes1, vy, step2, nbtimes2)
298 MultiRot1Dt = geompy.MultiRotate1DNbTimes(Chamfer, vx, nbtimes1)
299 MultiRot1Ds = geompy.MultiRotate1DByStep(Chamfer, vx, math.pi/4., nbtimes1)
300 MultiRot2Dt = geompy.MultiRotate2DNbTimes(Chamfer, vx, nbtimes1, step1, nbtimes2)
301 MultiRot2Ds = geompy.MultiRotate2DByStep(Chamfer, vx, angle1, nbtimes1, step1, nbtimes2)
303 #Create Informations objects
304 CDG = geompy.MakeCDG(Prism) #(GEOM_Object)->GEOM_Object
305 Archimede = geompy.Archimede(Box, weight, waterdensity,
306 meshingdeflection) #(GEOM_Object, 3 Doubles)->GEOM_Object
307 mindist = geompy.MinDistanceComponents(TranslVect, Mirror) #(2 GEOM_Object)->4 Doubles
308 print "Minumal distance between TranslVect and Mirror is", mindist[0],
309 print "by components:", mindist[1], ",", mindist[2], ",", mindist[3]
310 CheckShape = geompy.CheckShape(Prism) #(GEOM_Object)->Boolean
311 print "CheckShape(Prism) = ", CheckShape
314 Partition = geompy.MakePartition([Box], [Plane]) #(2 Lists Of GEOM_Object)->GEOM_Object
315 Partition1 = geompy.MakeHalfPartition(Box, Plane) #(2 GEOM_Object)->GEOM_Object
318 id_p0 = geompy.addToStudy(p0, "Vertex 0")
319 id_px = geompy.addToStudy(px, "Vertex X")
320 id_py = geompy.addToStudy(py, "Vertex Y")
321 id_pz = geompy.addToStudy(pz, "Vertex Z")
322 id_pxyz = geompy.addToStudy(pxyz, "Vertex XYZ")
323 id_p200 = geompy.addToStudy(p200, "Vertex 200")
325 id_vx = geompy.addToStudy(vx, "Vector X")
326 id_vy = geompy.addToStudy(vy, "Vector Y")
327 id_vz = geompy.addToStudy(vz, "Vector Z")
328 id_vxy = geompy.addToStudy(vxy, "Vector XY")
329 id_vxyz = geompy.addToStudy(vxyz, "Vector XYZ")
331 id_cs1 = geompy.addToStudy(cs1, "CS 50,50,50, 1,0,0, 0,1,0")
332 id_cs2 = geompy.addToStudy(cs2, "CS 70,80,10, 1,0,1, 1,1,0")
333 id_cs3 = geompy.addToStudy(cs3, "CS: pz, vxy, vz")
334 id_cs4 = geompy.addToStudy(cs4, "CS: Plane")
336 id_Line = geompy.addToStudy(Line, "Line")
337 id_Line1 = geompy.addToStudy(Line1, "Line by point and vector")
338 id_Line3 = geompy.addToStudy(Line3, "Line on Two Faces Intersection")
339 id_Plane = geompy.addToStudy(Plane, "Plane")
340 id_Plane1 = geompy.addToStudy(Plane1, "Plane by 3 points")
341 id_Plane2 = geompy.addToStudy(Plane2, "Plane by 2 vectors")
342 id_Plane3 = geompy.addToStudy(Plane3, "Plane by LCS")
344 id_Arc = geompy.addToStudy(Arc, "Arc")
345 id_Arc2 = geompy.addToStudy(Arc2, "Arc2")
346 id_Arc3 = geompy.addToStudy(Arc3, "Arc3")
347 id_Circle = geompy.addToStudy(Circle, "Circle")
348 id_Circle1 = geompy.addToStudy(Circle1, "Circle by 3 points")
349 id_Circle2 = geompy.addToStudy(Circle2, "Circle by center and 2 points")
350 id_Ellipse = geompy.addToStudy(Ellipse, "Ellipse")
351 id_Polyline = geompy.addToStudy(Polyline, "Polyline")
352 id_Bezier = geompy.addToStudy(Bezier, "Bezier")
353 id_Interpol = geompy.addToStudy(Interpol, "Interpol")
354 id_InterpT1 = geompy.addToStudy(InterpT1, "InterpT1")
355 id_InterpT2 = geompy.addToStudy(InterpT2, "InterpT2")
356 id_Sketcher = geompy.addToStudy(Sketcher, "Sketcher")
358 id_Sketcher3d_1 = geompy.addToStudy(Sketcher3d_1, "Sketcher 3D by interface")
359 id_Sketcher3d_2 = geompy.addToStudy(Sketcher3d_2, "Sketcher 3D by list")
361 id_p_on_arc = geompy.addToStudy(p_on_arc, "Vertex on Arc (0.25)")
362 id_p_on_arc2 = geompy.addToStudy(p_on_arc2, "Vertex on Arc at(100, -10, 10)" )
363 id_p_on_arc3 = geompy.addToStudy(p_on_arc3, "Vertex on Arc length 50 from Vertex X" )
365 id_p_on_l1l2 = geompy.addToStudy(p_on_l1l2, "Vertex on Lines Intersection")
367 id_tan_on_arc = geompy.addToStudy(tan_on_arc, "Tangent on Arc (0.7)")
368 id_tan_on_face = geompy.addToStudy(tan_on_face, "Tangent on Face")
370 id_Box = geompy.addToStudy(Box, "Box")
371 id_Box1 = geompy.addToStudy(Box1, "Box 10x20x30")
372 id_Box2 = geompy.addToStudy(Box2, "Box (10,20,30)-(15,25,35)")
373 id_Cylinder = geompy.addToStudy(Cylinder, "Cylinder")
374 id_Cyl1 = geompy.addToStudy(Cyl1, "Cylinder RH")
375 id_Sphere = geompy.addToStudy(Sphere, "Sphere Pnt R")
376 id_Sphere1 = geompy.addToStudy(Sphere1, "Sphere R")
377 id_Sphere2 = geompy.addToStudy(Sphere2, "Sphere")
378 id_Cone = geompy.addToStudy(Cone, "Cone")
379 id_Cone1 = geompy.addToStudy(Cone1, "Cone R1R2H")
380 id_Torus = geompy.addToStudy(Torus, "Torus")
381 id_Torus1 = geompy.addToStudy(Torus1, "Torus RR")
383 id_Common = geompy.addToStudy(Common, "Common")
384 id_Cut = geompy.addToStudy(Cut, "Cut")
385 id_Fuse = geompy.addToStudy(Fuse, "Fuse")
386 id_Section = geompy.addToStudy(Section, "Section")
388 id_Edge = geompy.addToStudy(Edge, "Edge")
389 id_Edge1 = geompy.addToStudy(Edge1, "Edge on Arc length 50 from Vertex Y")
390 id_Wire = geompy.addToStudy(Wire, "Wire")
391 id_Face = geompy.addToStudy(Face, "Face")
392 id_Face1 = geompy.addToStudy(Face1, "Face from two wires")
393 id_Face2 = geompy.addToStudy(Face2, "Face from Sketcher")
394 id_Face3 = geompy.addToStudy(Face3, "Face Height Width")
395 id_Face4 = geompy.addToStudy(Face4, "Face Plane_HW")
396 id_Disk = geompy.addToStudy(Disk, "Disk PntVecR")
397 id_Disk2 = geompy.addToStudy(Disk2, "Disk Three Points")
398 id_Disk3 = geompy.addToStudy(Disk3, "Disk OXY Radius")
399 id_Shell = geompy.addToStudy(Shell, "Shell")
401 id_Isoline = geompy.addToStudy(Isoline, "Isoline")
403 id_p_on_face = geompy.addToStudy(p_on_face, "Vertex on Face (0.1, 0.8)")
404 id_p_on_face2 = geompy.addToStudy(p_on_face2, "Vertex on Face at(0., 0., 0.)")
405 id_p_on_face3 = geompy.addToStudy(p_on_face3, "Vertex inside Face")
407 id_Prism1 = geompy.addToStudy(Prism1, "Prism by Two Pnt")
408 id_Shell1 = geompy.addToStudy(Shell1, "Shell from Prism1 faces")
409 id_Solid = geompy.addToStudy(Solid, "Solid")
410 id_Compound = geompy.addToStudy(Compound, "Compound")
412 id_Plane2 = geompy.addToStudy(Plane2, "Plane on Face")
414 id_Copy = geompy.addToStudy(Copy, "Copy")
415 id_Prism = geompy.addToStudy(Prism, "Prism")
416 id_Prism2Ways = geompy.addToStudy(Prism2Ways, "Prism2Ways")
417 id_PrismTwoPnt = geompy.addToStudy(PrismTwoPnt, "PrismTwoPnt")
418 id_PrismTwoPnt2Ways = geompy.addToStudy(PrismTwoPnt2Ways, "PrismTwoPnt2Ways")
419 id_PrismDXDYDZ = geompy.addToStudy(PrismDXDYDZ, "PrismDXDYDZ")
420 id_PrismDXDYDZ2Ways = geompy.addToStudy(PrismDXDYDZ2Ways, "PrismDXDYDZ2Ways")
421 id_Revolution = geompy.addToStudy(Revolution, "Revolution")
422 id_Revolution2Ways = geompy.addToStudy(Revolution2Ways, "Revolution2Ways")
423 id_Filling = geompy.addToStudy(Filling, "Filling")
424 id_Pipe = geompy.addToStudy(Pipe, "Pipe")
425 id_Sewing = geompy.addToStudy(Sewing, "Sewing")
427 import salome_version
428 if int(salome_version.getXVersion(), 16) >= int('0x060600', 16):
429 [Face5, Face6] = geompy.SubShapes(Box, [31, 33])
430 [b1_e1, b1_e2, b1_e3, b1_e4] = geompy.SubShapes(Box, [12, 22, 25, 29])
431 [b2_e1, b2_e2, b2_e3, b2_e4] = geompy.SubShapes(Box, [ 8, 18, 26, 30])
432 Path1 = geompy.RestorePath(Box, Face5, Face6)
433 Path2 = geompy.RestorePathEdges(Box, [b1_e1, b1_e2, b1_e3, b1_e4], [b2_e1, b2_e2, b2_e3, b2_e4])
435 id_Base1 = geompy.addToStudyInFather(Box, Face5, "Base1")
436 id_Base2 = geompy.addToStudyInFather(Box, Face6, "Base2")
437 id_Base1e1 = geompy.addToStudyInFather(Box, b1_e1, "Base1 Edge1")
438 id_Base1e2 = geompy.addToStudyInFather(Box, b1_e2, "Base1 Edge2")
439 id_Base1e3 = geompy.addToStudyInFather(Box, b1_e3, "Base1 Edge3")
440 id_Base1e4 = geompy.addToStudyInFather(Box, b1_e4, "Base1 Edge4")
441 id_Base2e1 = geompy.addToStudyInFather(Box, b2_e1, "Base2 Edge1")
442 id_Base2e2 = geompy.addToStudyInFather(Box, b2_e2, "Base2 Edge2")
443 id_Base2e3 = geompy.addToStudyInFather(Box, b2_e3, "Base2 Edge3")
444 id_Base2e4 = geompy.addToStudyInFather(Box, b2_e4, "Base2 Edge4")
445 id_Path1 = geompy.addToStudy(Path1, "Path1")
446 id_Path2 = geompy.addToStudy(Path2, "Path2")
449 id_Translation = geompy.addToStudy(Translation, "Translation")
450 id_TranslVect = geompy.addToStudy(TranslVect , "Translation along vector")
451 id_TranslVectD = geompy.addToStudy(TranslVectD, "Translation along vector with defined distance")
452 id_Rotation = geompy.addToStudy(Rotation, "Rotation")
453 id_RotatPnt = geompy.addToStudy(RotatPnt, "Rotation by three points")
454 id_Scale1 = geompy.addToStudy(Scale1, "Scale1")
455 id_Scale2 = geompy.addToStudy(Scale2, "Scale2")
456 id_Scale3 = geompy.addToStudy(Scale3, "Scale3")
457 id_Scale4 = geompy.addToStudy(Scale4, "Scale4")
458 id_Mirror = geompy.addToStudy(Mirror, "Mirror by Plane")
459 id_MirrorAxis = geompy.addToStudy(MirrorAxis, "Mirror by Axis")
460 id_MirrorPnt = geompy.addToStudy(MirrorPnt, "Mirror by Point")
461 id_Position = geompy.addToStudy(Position, "Positioned box")
462 id_Position2 = geompy.addToStudy(Position2, "Positioned box along path")
463 id_Offset = geompy.addToStudy(Offset, "Offset")
464 id_Orientation = geompy.addToStudy(Orientation, "Orientation")
465 id_ProjOnWire = geompy.addToStudy(ProjOnWire[1], "ProjOnWire")
467 id_Fillet = geompy.addToStudy(Fillet, "Fillet")
468 id_Fillet2 = geompy.addToStudy(Fillet2, "Fillet2")
469 id_Fillet2d = geompy.addToStudy(Fillet2d, "Fillet2D")
471 id_Chamfer = geompy.addToStudy(Chamfer, "Chamfer on Edge")
472 id_Chamfer2 = geompy.addToStudy(Chamfer2, "Chamfer on Faces")
473 id_Chamfer3 = geompy.addToStudy(Chamfer3, "Chamfer on Edges")
474 id_Chamfer4 = geompy.addToStudy(Chamfer4, "Chamfer on Faces with params D Angle")
476 id_MultiTrans1D = geompy.addToStudy(MultiTrans1D, "MultiTrans1D")
477 id_MultiTrans2D = geompy.addToStudy(MultiTrans2D, "MultiTrans2D")
478 id_MultiRot1Dt = geompy.addToStudy(MultiRot1Dt, "MultiRot1D NbTimes")
479 id_MultiRot1Ds = geompy.addToStudy(MultiRot1Ds, "MultiRot1D ByStep")
480 id_MultiRot2Dt = geompy.addToStudy(MultiRot2Dt, "MultiRot2D NbTimes")
481 id_MultiRot2Ds = geompy.addToStudy(MultiRot2Ds, "MultiRot2D ByStep")
483 id_CDG = geompy.addToStudy(CDG, "CDG")
484 id_Archimede = geompy.addToStudy(Archimede, "Archimede")
486 id_Partition = geompy.addToStudy(Partition, "Partition")
487 id_Partition1 = geompy.addToStudy(Partition1, "Half Partition")
492 SubFace = geompy.SubShape(Box, geompy.ShapeType["FACE"], [2])
493 name = geompy.SubShapeName(SubFace, Box)
494 id_SubFace = geompy.addToStudyInFather(Box, SubFace, name)
496 # SubShapeSortedCentres
497 SubFaceS = geompy.SubShapeSortedCentres(Box, geompy.ShapeType["FACE"], [5])
498 nameS = geompy.SubShapeName(SubFaceS, Box)
499 id_SubFace = geompy.addToStudyInFather(Box, SubFaceS, nameS)
501 # GetExistingSubObjects
502 SubObjsAll = geompy.GetExistingSubObjects(Box, True)
503 print "For now, Box has the following created sub-objects:", SubObjsAll
506 SubGrpsAll = geompy.GetGroups(Box)
507 print "For now, Box has the following created groups:", SubGrpsAll
510 SubEdgeList = geompy.SubShapeAll(SubFace, geompy.ShapeType["EDGE"])
512 for SubEdge in SubEdgeList :
513 name = geompy.SubShapeName(SubEdge, SubFace)
514 id_SubEdge = geompy.addToStudyInFather(SubFace, SubEdge, name)
517 SubEdgeIDsList = geompy.SubShapeAllIDs(SubFace, geompy.ShapeType["EDGE"])
518 print "IDs of edges of SubFace:", SubEdgeIDsList, "(unsorted)"
519 group = geompy.CreateGroup(SubFace, geompy.ShapeType["EDGE"])
520 geompy.UnionIDs(group, SubEdgeIDsList)
521 geompy.addToStudyInFather(SubFace, group, "Group of all edges")
523 # SubShapeAllSortedCentresIDs
524 SubEdgeIDsList = geompy.SubShapeAllSortedCentresIDs(SubFace, geompy.ShapeType["EDGE"])
525 print "IDs of edges of SubFace:", SubEdgeIDsList, "(sorted)"
527 # GetSubShape and GetSubShapeID
528 for ind in SubEdgeIDsList:
529 edge = geompy.GetSubShape(SubFace, [ind])
530 ind_e = geompy.GetSubShapeID(SubFace, edge)
532 print "Error in GetSubShape or GetSubShapeID"
535 geompy.RestoreSubShapes(Copy)
536 geompy.RestoreSubShapes(RotatPnt, [], GEOM.FSM_Transformed)
537 geompy.RestoreSubShapes(Partition, [Box])
538 geompy.RestoreSubShapes(Partition1)