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