1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2016 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 Face5 = geompy.MakeFaceFromSurface(Face, Sketcher) #(2 GEOM_Objects)->GEOM_Object
183 Cut2 = geompy.MakeCutList(Sphere1, [Box1], True)
184 #(List of GEOM_Object)->GEOM_Object
185 Face6 = geompy.MakeFaceWithConstraints([geompy.GetSubShape(Cut2, [5]), geompy.GetSubShape(Cut2, [3]),
186 geompy.GetSubShape(Cut2, [11]), geompy.GetSubShape(Cut2, [3]),
187 geompy.GetSubShape(Cut2, [13]), geompy.GetSubShape(Cut2, [3])])
188 Disk = geompy.MakeDiskPntVecR (p0, vz, radius) #(2 GEOM_Object, 1 Double)->GEOM_Object
189 Disk2 = geompy.MakeDiskThreePnt(p0, p200, pz) #(3 GEOM_Object)->GEOM_Object
190 Disk3 = geompy.MakeDiskR(100., 1) #(1 Doubles, 1 Int)->GEOM_Object
191 Shell = geompy.MakeShell([Face, Face1]) #(List of GEOM_Object)->GEOM_Object
193 Prism1 = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
194 prism1_faces = geompy.SubShapeAllSortedCentres(Prism1, geompy.ShapeType["FACE"])
195 Shell1 = geompy.MakeShell([prism1_faces[0], prism1_faces[1],
196 prism1_faces[3], prism1_faces[4],
197 prism1_faces[5], prism1_faces[2]])
198 Solid = geompy.MakeSolid([Shell1]) #(List of GEOM_Object)->GEOM_Object
200 Box1_translation = geompy.MakeTranslation(Box1, 10, 0, 0)
201 Box1_shell = geompy.SubShapeAllSorted(Box1, geompy.ShapeType["SHELL"])[0]
202 Box1_translation_shell = geompy.SubShapeAllSorted(Box1_translation, geompy.ShapeType["SHELL"])[0]
204 Solid_from_shells = geompy.MakeSolidFromConnectedFaces([Box1_shell, Box1_translation_shell], 1) #(List of GEOM_Object, Boolean)->GEOM_Object
207 Isoline = geompy.MakeIsoline(Face1, True, 0.5) #(1 GEOM_Object, Boolean, Double)->GEOM_Object
209 ShapeListCompound = []
212 S = geompy.MakeTranslation(Arc, i * 100., i * 100., i * 100.)
213 ShapeListCompound.append(S)
215 Compound = geompy.MakeCompound(ShapeListCompound) #(List of GEOM_Object)->GEOM_Object
217 #Test point on surface creation
218 p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8) #(GEOM_Object, Double, Double)->GEOM_Object
219 p_on_face2 = geompy.MakeVertexOnSurfaceByCoord(Face, 0., 0., 0.) #(GEOM_Object, Double, Double, Double)->GEOM_Object
220 p_on_face3 = geompy.MakeVertexInsideFace(Face) #(GEOM_Object)->GEOM_Object
222 # Test plane from existing face creation
223 Plane2 = geompy.MakePlaneFace(Face, trimsize) #(GEOM_Object, Double)->GEOM_Object
225 #ShapeList for Sewing
226 S = geompy.MakeRotation(Face, vxy, angle1)
228 #Test Line on Faces Intersection
229 Line3 = geompy.MakeLineTwoFaces(prism1_faces[0], prism1_faces[1]) #(2 GEOM_Object)->GEOM_Object
231 #Create advanced objects
232 Prism = geompy.MakePrismVecH(Face, vz, 100.0) #(2 GEOM_Object, Double)->GEOM_Object
233 Prism2Ways = geompy.MakePrismVecH2Ways(Face, vz, 10.0) #(2 GEOM_Object, Double)->GEOM_Object
234 PrismTwoPnt = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
235 PrismTwoPnt2Ways = geompy.MakePrism2Ways(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
236 PrismDXDYDZ = geompy.MakePrismDXDYDZ(Face2, 10, 20, 100)#(2 GEOM_Object, Double)->GEOM_Object
237 PrismDXDYDZ2Ways = geompy.MakePrismDXDYDZ2Ways(Face, 30, -20, 200)#(2 GEOM_Object, Double)->GEOM_Object
238 Revolution = geompy.MakeRevolution(Face, vz, angle2) #
239 Revolution2Ways = geompy.MakeRevolution(Face, vz, angle1) #
240 Filling = geompy.MakeFilling(Compound, mindeg, maxdeg,
241 tol2d, tol3d, nbiter) #(GEOM_Object, 4 Doubles, Short)->GEOM_Object
242 Pipe = geompy.MakePipe(Wire, Edge) #(2 GEOM_Object)->GEOM_Object
243 Sewing = geompy.MakeSewing([Face, S], precision) #(List Of GEOM_Object, Double)->GEOM_Object
244 ThickSolid = geompy.MakeCopy(Box)
245 faces = geompy.SubShapeAllSortedCentres(Box, geompy.ShapeType["FACE"])
246 shell = geompy.MakeShell([faces[0], faces[1], faces[2]])
247 faceIDs = geompy.SubShapeAllSortedCentresIDs(ThickSolid, geompy.ShapeType["FACE"])
248 ThickShell = geompy.MakeThickSolid(shell, 50) #(GEOM_Object, Double)->GEOM_Object
249 geompy.Thicken(ThickSolid, 50, [faceIDs[0], faceIDs[1]]) #(GEOM_Object) modification
250 Copy = geompy.MakeCopy(Box) #(GEOM_Object)->GEOM_Object
253 Translation = geompy.MakeTranslationTwoPoints(Box, px, pz) #(3 GEOM_Object)->GEOM_Object
254 TranslVect = geompy.MakeTranslationVector(Box, vxyz) #(2 GEOM_Object)->GEOM_Object
255 TranslVectD = geompy.MakeTranslationVectorDistance(Box, vxyz, 50.0) #(2 GEOM_Object)->GEOM_Object
256 Rotation = geompy.MakeRotation(Box, vz, angle1) #(2 GEOM_Object, Double)->GEOM_Object
257 RotatPnt = geompy.MakeRotationThreePoints(Box, px, py, pz) #(4 GEOM_Object)->GEOM_Object
259 #Scale by factor relatively given point
260 Scale1 = geompy.MakeScaleTransform(Box, pxyz, factor) #(2 GEOM_Object, Double)->GEOM_Object
261 #Scale by factor relatively the origin of global CS
262 Scale2 = geompy.MakeScaleTransform(Box, None, factor) #
263 #Scale along axes of global CS by different factors. Scale relatively given point
264 Scale3 = geompy.MakeScaleAlongAxes(Box, pxyz, 1.5, 0.5, 3) #(2 GEOM_Object, 3 Doubles)->GEOM_Object
265 #Scale along axes of global CS by different factors. Scale relatively the origin of global CS
266 Scale4 = geompy.MakeScaleAlongAxes(Box, None, 1.5, 0.5, 3) #
268 Mirror = geompy.MakeMirrorByPlane(Box, Plane) #(2 GEOM_Object)->GEOM_Object
269 MirrorAxis = geompy.MakeMirrorByAxis(Box, Line1) #
270 MirrorPnt = geompy.MakeMirrorByPoint(Box, p200) #
271 Position = geompy.MakePosition(Box, cs1, cs2) #(3 GEOM_Object)->GEOM_Object
272 Position2 = geompy.PositionAlongPath(Box, Arc, 0.5, 1, 0) #(2 GEOM_Object, 1 Double, 2 Bool)->GEOM_Object
273 Offset = geompy.MakeOffset(Box, 10.) #(GEOM_Object, Double)->GEOM_Object
274 ProjOnWire = geompy.MakeProjectionOnWire(p0, Wire)
275 ProjOnCyl = geompy.MakeProjectionOnCylinder(Wire, 100)
276 Orientation = geompy.ChangeOrientation(Box)
277 ExtEdge = geompy.ExtendEdge(Edge1, -0.3, 1.3)
278 ExtFace = geompy.ExtendFace(Face5, -0.3, 1.3, -0.1, 1.1)
279 Surface = geompy.MakeSurfaceFromFace(Face5)
281 #IDList for Fillet/Chamfer
282 prism_edges = geompy.ExtractShapes(Prism, geompy.ShapeType["EDGE"], True)
284 for anEdge in prism_edges:
285 eid = geompy.GetSubShapeID(Prism, anEdge)
286 sse = geompy.GetSubShape(Prism, [eid])
288 sse_id = geompy.GetSubShapeID(Prism, sse)
290 print "Error: GetSubShape() or GetSubShapeID() has failed!"
293 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[0]))
294 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[1]))
295 IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[2]))
297 prism_faces = geompy.ExtractShapes(Prism, geompy.ShapeType["FACE"], True)
299 f_ind_1 = geompy.GetSubShapeID(Prism, prism_faces[0])
300 f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
302 IDlist_f = [f_ind_1, f_ind_2]
305 Fillet2d = geompy.MakeFillet2D(Face3, radius, [4, 7, 9]) #(GEOM_Object, Double, ListOfLong)->GEOM_Object
306 Fillet = geompy.MakeFillet (Prism, radius, geompy.ShapeType["EDGE"],
307 IDlist_e) #(GEOM_Object, Double, Short, ListOfLong)->GEOM_Object
308 Fillet2 = geompy.MakeFilletR1R2 (Prism, 7., 13., geompy.ShapeType["EDGE"],
309 IDlist_e) #(GEOM_Object, Double, Double, Short, ListOfLong)->GEOM_Object
310 Chamfer = geompy.MakeChamferEdge(Prism, d1, d2,
311 f_ind_1, f_ind_2) #(GEOM_Object, 2 Doubles, 2 Long)->GEOM_Object
312 Chamfer2 = geompy.MakeChamferFaces(Prism, d1, d2,
313 IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
314 Chamfer3 = geompy.MakeChamferEdges(Prism, d1, d2,
315 IDlist_e) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
316 Chamfer4 = geompy.MakeChamferFacesAD(Prism, d1, 20. * math.pi / 180.,
317 IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
318 #End of Local operations
321 MultiTrans1D = geompy.MakeMultiTranslation1D(Fillet, vz, step1, nbtimes1)
322 MultiTrans2D = geompy.MakeMultiTranslation2D(Fillet, vz, step1, nbtimes1, vy, step2, nbtimes2)
323 MultiRot1Dt = geompy.MultiRotate1DNbTimes(Chamfer, vx, nbtimes1)
324 MultiRot1Ds = geompy.MultiRotate1DByStep(Chamfer, vx, math.pi/4., nbtimes1)
325 MultiRot2Dt = geompy.MultiRotate2DNbTimes(Chamfer, vx, nbtimes1, step1, nbtimes2)
326 MultiRot2Ds = geompy.MultiRotate2DByStep(Chamfer, vx, angle1, nbtimes1, step1, nbtimes2)
328 #Create Informations objects
329 CDG = geompy.MakeCDG(Prism) #(GEOM_Object)->GEOM_Object
330 Archimede = geompy.Archimede(Box, weight, waterdensity,
331 meshingdeflection) #(GEOM_Object, 3 Doubles)->GEOM_Object
332 mindist = geompy.MinDistanceComponents(TranslVect, Mirror) #(2 GEOM_Object)->4 Doubles
333 print "Minumal distance between TranslVect and Mirror is", mindist[0],
334 print "by components:", mindist[1], ",", mindist[2], ",", mindist[3]
335 CheckShape = geompy.CheckShape(Prism) #(GEOM_Object)->Boolean
336 print "CheckShape(Prism) = ", CheckShape
339 Partition = geompy.MakePartition([Box], [Plane]) #(2 Lists Of GEOM_Object)->GEOM_Object
340 Partition1 = geompy.MakeHalfPartition(Box, Plane) #(2 GEOM_Object)->GEOM_Object
343 id_p0 = geompy.addToStudy(p0, "Vertex 0")
344 id_px = geompy.addToStudy(px, "Vertex X")
345 id_py = geompy.addToStudy(py, "Vertex Y")
346 id_pz = geompy.addToStudy(pz, "Vertex Z")
347 id_pxyz = geompy.addToStudy(pxyz, "Vertex XYZ")
348 id_p200 = geompy.addToStudy(p200, "Vertex 200")
350 id_vx = geompy.addToStudy(vx, "Vector X")
351 id_vy = geompy.addToStudy(vy, "Vector Y")
352 id_vz = geompy.addToStudy(vz, "Vector Z")
353 id_vxy = geompy.addToStudy(vxy, "Vector XY")
354 id_vxyz = geompy.addToStudy(vxyz, "Vector XYZ")
356 id_cs1 = geompy.addToStudy(cs1, "CS 50,50,50, 1,0,0, 0,1,0")
357 id_cs2 = geompy.addToStudy(cs2, "CS 70,80,10, 1,0,1, 1,1,0")
358 id_cs3 = geompy.addToStudy(cs3, "CS: pz, vxy, vz")
359 id_cs4 = geompy.addToStudy(cs4, "CS: Plane")
361 id_Line = geompy.addToStudy(Line, "Line")
362 id_Line1 = geompy.addToStudy(Line1, "Line by point and vector")
363 id_Line3 = geompy.addToStudy(Line3, "Line on Two Faces Intersection")
364 id_Plane = geompy.addToStudy(Plane, "Plane")
365 id_Plane1 = geompy.addToStudy(Plane1, "Plane by 3 points")
366 id_Plane2 = geompy.addToStudy(Plane2, "Plane by 2 vectors")
367 id_Plane3 = geompy.addToStudy(Plane3, "Plane by LCS")
369 id_Arc = geompy.addToStudy(Arc, "Arc")
370 id_Arc2 = geompy.addToStudy(Arc2, "Arc2")
371 id_Arc3 = geompy.addToStudy(Arc3, "Arc3")
372 id_Circle = geompy.addToStudy(Circle, "Circle")
373 id_Circle1 = geompy.addToStudy(Circle1, "Circle by 3 points")
374 id_Circle2 = geompy.addToStudy(Circle2, "Circle by center and 2 points")
375 id_Ellipse = geompy.addToStudy(Ellipse, "Ellipse")
376 id_Polyline = geompy.addToStudy(Polyline, "Polyline")
377 id_Bezier = geompy.addToStudy(Bezier, "Bezier")
378 id_Interpol = geompy.addToStudy(Interpol, "Interpol")
379 id_InterpT1 = geompy.addToStudy(InterpT1, "InterpT1")
380 id_InterpT2 = geompy.addToStudy(InterpT2, "InterpT2")
381 id_Sketcher = geompy.addToStudy(Sketcher, "Sketcher")
383 id_Sketcher3d_1 = geompy.addToStudy(Sketcher3d_1, "Sketcher 3D by interface")
384 id_Sketcher3d_2 = geompy.addToStudy(Sketcher3d_2, "Sketcher 3D by list")
386 id_p_on_arc = geompy.addToStudy(p_on_arc, "Vertex on Arc (0.25)")
387 id_p_on_arc2 = geompy.addToStudy(p_on_arc2, "Vertex on Arc at(100, -10, 10)" )
388 id_p_on_arc3 = geompy.addToStudy(p_on_arc3, "Vertex on Arc length 50 from Vertex X" )
390 id_p_on_l1l2 = geompy.addToStudy(p_on_l1l2, "Vertex on Lines Intersection")
392 id_tan_on_arc = geompy.addToStudy(tan_on_arc, "Tangent on Arc (0.7)")
393 id_tan_on_face = geompy.addToStudy(tan_on_face, "Tangent on Face")
395 id_Box = geompy.addToStudy(Box, "Box")
396 id_Box1 = geompy.addToStudy(Box1, "Box 10x20x30")
397 id_Box2 = geompy.addToStudy(Box2, "Box (10,20,30)-(15,25,35)")
398 id_Cylinder = geompy.addToStudy(Cylinder, "Cylinder")
399 id_Cyl1 = geompy.addToStudy(Cyl1, "Cylinder RH")
400 id_Cylinder1= geompy.addToStudy(Cylinder1,"CylinderA")
401 id_Cyl2 = geompy.addToStudy(Cyl2, "Cylinder RHA")
402 id_Sphere = geompy.addToStudy(Sphere, "Sphere Pnt R")
403 id_Sphere1 = geompy.addToStudy(Sphere1, "Sphere R")
404 id_Sphere2 = geompy.addToStudy(Sphere2, "Sphere")
405 id_Cone = geompy.addToStudy(Cone, "Cone")
406 id_Cone1 = geompy.addToStudy(Cone1, "Cone R1R2H")
407 id_Torus = geompy.addToStudy(Torus, "Torus")
408 id_Torus1 = geompy.addToStudy(Torus1, "Torus RR")
410 id_Common = geompy.addToStudy(Common, "Common")
411 id_Cut = geompy.addToStudy(Cut, "Cut")
412 id_Cut2 = geompy.addToStudy(Cut2, "Cut2")
413 id_Fuse = geompy.addToStudy(Fuse, "Fuse")
414 id_Section = geompy.addToStudy(Section, "Section")
416 id_Edge = geompy.addToStudy(Edge, "Edge")
417 id_Edge1 = geompy.addToStudy(Edge1, "Edge on Arc length 50 from Vertex Y")
418 id_Wire = geompy.addToStudy(Wire, "Wire")
419 id_Face = geompy.addToStudy(Face, "Face")
420 id_Face1 = geompy.addToStudy(Face1, "Face from two wires")
421 id_Face2 = geompy.addToStudy(Face2, "Face from Sketcher")
422 id_Face3 = geompy.addToStudy(Face3, "Face Height Width")
423 id_Face4 = geompy.addToStudy(Face4, "Face Plane_HW")
424 id_Face5 = geompy.addToStudy(Face5, "Face from surface and wire")
425 id_Face6 = geompy.addToStudy(Face6, "Face from edges with constraints")
426 id_Disk = geompy.addToStudy(Disk, "Disk PntVecR")
427 id_Disk2 = geompy.addToStudy(Disk2, "Disk Three Points")
428 id_Disk3 = geompy.addToStudy(Disk3, "Disk OXY Radius")
429 id_Shell = geompy.addToStudy(Shell, "Shell")
431 id_Isoline = geompy.addToStudy(Isoline, "Isoline")
433 id_p_on_face = geompy.addToStudy(p_on_face, "Vertex on Face (0.1, 0.8)")
434 id_p_on_face2 = geompy.addToStudy(p_on_face2, "Vertex on Face at(0., 0., 0.)")
435 id_p_on_face3 = geompy.addToStudy(p_on_face3, "Vertex inside Face")
437 id_Prism1 = geompy.addToStudy(Prism1, "Prism by Two Pnt")
438 id_Shell1 = geompy.addToStudy(Shell1, "Shell from Prism1 faces")
439 id_Solid = geompy.addToStudy(Solid, "Solid")
440 id_Solid1 = geompy.addToStudy(Solid_from_shells, "Solid1")
442 id_Compound = geompy.addToStudy(Compound, "Compound")
444 id_Plane2 = geompy.addToStudy(Plane2, "Plane on Face")
446 id_Copy = geompy.addToStudy(Copy, "Copy")
447 id_ThickShell = geompy.addToStudy(ThickShell, "ThickShell")
448 id_ThickSolid = geompy.addToStudy(ThickSolid, "ThickSolid")
450 id_Prism = geompy.addToStudy(Prism, "Prism")
451 id_Prism2Ways = geompy.addToStudy(Prism2Ways, "Prism2Ways")
452 id_PrismTwoPnt = geompy.addToStudy(PrismTwoPnt, "PrismTwoPnt")
453 id_PrismTwoPnt2Ways = geompy.addToStudy(PrismTwoPnt2Ways, "PrismTwoPnt2Ways")
454 id_PrismDXDYDZ = geompy.addToStudy(PrismDXDYDZ, "PrismDXDYDZ")
455 id_PrismDXDYDZ2Ways = geompy.addToStudy(PrismDXDYDZ2Ways, "PrismDXDYDZ2Ways")
456 id_Revolution = geompy.addToStudy(Revolution, "Revolution")
457 id_Revolution2Ways = geompy.addToStudy(Revolution2Ways, "Revolution2Ways")
458 id_Filling = geompy.addToStudy(Filling, "Filling")
459 id_Pipe = geompy.addToStudy(Pipe, "Pipe")
460 id_Sewing = geompy.addToStudy(Sewing, "Sewing")
462 import salome_version
463 if int(salome_version.getXVersion(), 16) >= int('0x060600', 16):
464 [Face5, Face6] = geompy.SubShapes(Box, [31, 33])
465 [b1_e1, b1_e2, b1_e3, b1_e4] = geompy.SubShapes(Box, [12, 22, 25, 29])
466 [b2_e1, b2_e2, b2_e3, b2_e4] = geompy.SubShapes(Box, [ 8, 18, 26, 30])
467 Path1 = geompy.RestorePath(Box, Face5, Face6)
468 Path2 = geompy.RestorePathEdges(Box, [b1_e1, b1_e2, b1_e3, b1_e4], [b2_e1, b2_e2, b2_e3, b2_e4])
470 id_Base1 = geompy.addToStudyInFather(Box, Face5, "Base1")
471 id_Base2 = geompy.addToStudyInFather(Box, Face6, "Base2")
472 id_Base1e1 = geompy.addToStudyInFather(Box, b1_e1, "Base1 Edge1")
473 id_Base1e2 = geompy.addToStudyInFather(Box, b1_e2, "Base1 Edge2")
474 id_Base1e3 = geompy.addToStudyInFather(Box, b1_e3, "Base1 Edge3")
475 id_Base1e4 = geompy.addToStudyInFather(Box, b1_e4, "Base1 Edge4")
476 id_Base2e1 = geompy.addToStudyInFather(Box, b2_e1, "Base2 Edge1")
477 id_Base2e2 = geompy.addToStudyInFather(Box, b2_e2, "Base2 Edge2")
478 id_Base2e3 = geompy.addToStudyInFather(Box, b2_e3, "Base2 Edge3")
479 id_Base2e4 = geompy.addToStudyInFather(Box, b2_e4, "Base2 Edge4")
480 id_Path1 = geompy.addToStudy(Path1, "Path1")
481 id_Path2 = geompy.addToStudy(Path2, "Path2")
484 id_Translation = geompy.addToStudy(Translation, "Translation")
485 id_TranslVect = geompy.addToStudy(TranslVect , "Translation along vector")
486 id_TranslVectD = geompy.addToStudy(TranslVectD, "Translation along vector with defined distance")
487 id_Rotation = geompy.addToStudy(Rotation, "Rotation")
488 id_RotatPnt = geompy.addToStudy(RotatPnt, "Rotation by three points")
489 id_Scale1 = geompy.addToStudy(Scale1, "Scale1")
490 id_Scale2 = geompy.addToStudy(Scale2, "Scale2")
491 id_Scale3 = geompy.addToStudy(Scale3, "Scale3")
492 id_Scale4 = geompy.addToStudy(Scale4, "Scale4")
493 id_Mirror = geompy.addToStudy(Mirror, "Mirror by Plane")
494 id_MirrorAxis = geompy.addToStudy(MirrorAxis, "Mirror by Axis")
495 id_MirrorPnt = geompy.addToStudy(MirrorPnt, "Mirror by Point")
496 id_Position = geompy.addToStudy(Position, "Positioned box")
497 id_Position2 = geompy.addToStudy(Position2, "Positioned box along path")
498 id_Offset = geompy.addToStudy(Offset, "Offset")
499 id_Orientation = geompy.addToStudy(Orientation, "Orientation")
500 id_ProjOnWire = geompy.addToStudy(ProjOnWire[1], "ProjOnWire")
501 id_ProjOnCyl = geompy.addToStudy(ProjOnCyl, "ProjOnCyl")
502 id_ExtEdge = geompy.addToStudy(ExtEdge, "ExtendedEdge")
503 id_ExtFace = geompy.addToStudy(ExtFace, "ExtendedFace")
504 id_Surface = geompy.addToStudy(Surface, "Surface From Face")
506 id_Fillet = geompy.addToStudy(Fillet, "Fillet")
507 id_Fillet2 = geompy.addToStudy(Fillet2, "Fillet2")
508 id_Fillet2d = geompy.addToStudy(Fillet2d, "Fillet2D")
510 id_Chamfer = geompy.addToStudy(Chamfer, "Chamfer on Edge")
511 id_Chamfer2 = geompy.addToStudy(Chamfer2, "Chamfer on Faces")
512 id_Chamfer3 = geompy.addToStudy(Chamfer3, "Chamfer on Edges")
513 id_Chamfer4 = geompy.addToStudy(Chamfer4, "Chamfer on Faces with params D Angle")
515 id_MultiTrans1D = geompy.addToStudy(MultiTrans1D, "MultiTrans1D")
516 id_MultiTrans2D = geompy.addToStudy(MultiTrans2D, "MultiTrans2D")
517 id_MultiRot1Dt = geompy.addToStudy(MultiRot1Dt, "MultiRot1D NbTimes")
518 id_MultiRot1Ds = geompy.addToStudy(MultiRot1Ds, "MultiRot1D ByStep")
519 id_MultiRot2Dt = geompy.addToStudy(MultiRot2Dt, "MultiRot2D NbTimes")
520 id_MultiRot2Ds = geompy.addToStudy(MultiRot2Ds, "MultiRot2D ByStep")
522 id_CDG = geompy.addToStudy(CDG, "CDG")
523 id_Archimede = geompy.addToStudy(Archimede, "Archimede")
525 id_Partition = geompy.addToStudy(Partition, "Partition")
526 id_Partition1 = geompy.addToStudy(Partition1, "Half Partition")
531 SubFace = geompy.SubShape(Box, geompy.ShapeType["FACE"], [2])
532 name = geompy.SubShapeName(SubFace, Box)
533 id_SubFace = geompy.addToStudyInFather(Box, SubFace, name)
535 # SubShapeSortedCentres
536 SubFaceS = geompy.SubShapeSortedCentres(Box, geompy.ShapeType["FACE"], [5])
537 nameS = geompy.SubShapeName(SubFaceS, Box)
538 id_SubFace = geompy.addToStudyInFather(Box, SubFaceS, nameS)
540 # GetExistingSubObjects
541 SubObjsAll = geompy.GetExistingSubObjects(Box, True)
542 print "For now, Box has the following created sub-objects:", SubObjsAll
545 SubGrpsAll = geompy.GetGroups(Box)
546 print "For now, Box has the following created groups:", SubGrpsAll
549 SubEdgeList = geompy.SubShapeAll(SubFace, geompy.ShapeType["EDGE"])
551 for SubEdge in SubEdgeList :
552 name = geompy.SubShapeName(SubEdge, SubFace)
553 id_SubEdge = geompy.addToStudyInFather(SubFace, SubEdge, name)
556 SubEdgeIDsList = geompy.SubShapeAllIDs(SubFace, geompy.ShapeType["EDGE"])
557 print "IDs of edges of SubFace:", SubEdgeIDsList, "(unsorted)"
558 group = geompy.CreateGroup(SubFace, geompy.ShapeType["EDGE"])
559 geompy.UnionIDs(group, SubEdgeIDsList)
560 geompy.addToStudyInFather(SubFace, group, "Group of all edges")
562 # SubShapeAllSortedCentresIDs
563 SubEdgeIDsList = geompy.SubShapeAllSortedCentresIDs(SubFace, geompy.ShapeType["EDGE"])
564 print "IDs of edges of SubFace:", SubEdgeIDsList, "(sorted)"
566 # GetSubShape and GetSubShapeID
567 for ind in SubEdgeIDsList:
568 edge = geompy.GetSubShape(SubFace, [ind])
569 ind_e = geompy.GetSubShapeID(SubFace, edge)
571 print "Error in GetSubShape or GetSubShapeID"
574 geompy.RestoreSubShapes(Copy)
575 geompy.RestoreSubShapes(RotatPnt, [], GEOM.FSM_Transformed)
576 geompy.RestoreSubShapes(Partition, [Box])
577 geompy.RestoreSubShapes(Partition1)
579 # GetSubShapeEdgeSorted
580 p1 = geompy.GetFirstVertex(Sketcher)
581 p2 = geompy.GetFirstVertex(Sketcher3d_1)
582 p3 = geompy.GetFirstVertex(Sketcher3d_2)
583 geompy.GetSubShapeEdgeSorted(Sketcher, p1, "OrderedEdges")
584 geompy.GetSubShapeEdgeSorted(Sketcher3d_1, p2, "OrderedEdges")
585 geompy.GetSubShapeEdgeSorted(Sketcher3d_2, p3, "OrderedEdges")
587 # GetSubShapesWithTolerance
588 geompy.GetSubShapesWithTolerance(Box, GEOM.FACE, GEOM.CC_GT, 1.e-8, "gt")
589 geompy.GetSubShapesWithTolerance(Box, GEOM.FACE, GEOM.CC_GE, 1.e-7, "ge")
590 geompy.GetSubShapesWithTolerance(Box, GEOM.FACE, GEOM.CC_LT, 2.e-7, "lt")
591 geompy.GetSubShapesWithTolerance(Box, GEOM.FACE, GEOM.CC_LE, 1.e-7, "le")
594 geompy.MakeExtraction(Box, [13], "Ext_no_face")
595 geompy.MakeExtraction(Box, [18], "Ext_no_edge")
596 geompy.MakeExtraction(Box, [16], "Ext_no_vertex")