Version: 9.15.0
GEOM_TestAll.py


GEOM_TestAll.py

0 def TestAll (geompy, math):
34  import GEOM
35 
36  #Create base Variables
37  nbtimes1 = 5 #Short
38  nbtimes2 = 5
39  mindeg = 2
40  maxdeg = 5
41  nbiter = 5
42  WantPlanarFace = 1 #True
43 
44  radius = 10. #Double
45  radius1 = 100.
46  radius2 = 200.
47  height = 200.
48  d1 = 10.
49  d2 = 10.
50  step1 = 250.
51  step2 = 250.
52  angle = 45.
53  angle1 = angle * math.pi / 180
54  angle2 = 2 * angle1
55  factor = 2.
56  tol3d = 0.0001
57  tol2d = 0.0001
58  weight = 1000000.
59  waterdensity = 1.
60  meshingdeflection = 0.01
61  trimsize = 1000.
62  precision = 0.00001
63 
64  #Create base points
65  p0 = geompy.MakeVertex(0. , 0. , 0. ) #(3 Doubles)->GEOM_Object
66  px = geompy.MakeVertex(100., 0. , 0. )
67  py = geompy.MakeVertex(0. , 100., 0. )
68  pz = geompy.MakeVertex(0. , 0. , 100.)
69  pxyz = geompy.MakeVertex(100., 100., 100.)
70 
71  p200 = geompy.MakeVertexWithRef(pxyz, 100., 100., 100.) #(GEOM_Object, 3 Doubles)->GEOM_Object
72 
73  #Create base directions
74  vx = geompy.MakeVector(p0, px) #(GEOM_Object, GEOM_Object)->GEOM_Object
75  vy = geompy.MakeVector(p0, py)
76  vz = geompy.MakeVector(p0, pz)
77  vxy = geompy.MakeVector(px, py)
78 
79  vxyz = geompy.MakeVectorDXDYDZ(100., 100., 100.) #(3 Doubles)->GEOM_Object

80 
81  #Create local coordinate systems
82  cs1 = geompy.MakeMarker(50,50,50, 1,0,0, 0,1,0) #(9 Doubles)->GEOM_Object
83  cs2 = geompy.MakeMarker(70,80,10, 1,0,1, 1,1,0) #(9 Doubles)->GEOM_Object
84  cs3 = geompy.MakeMarkerPntTwoVec(pz, vxy, vz) #(3 GEOM_Object)->GEOM_Object
85 
86  #Create base geometry 2D
87  Line = geompy.MakeLineTwoPnt(p0, pxyz) #(2 GEOM_Object)->GEOM_Object
88  Line1 = geompy.MakeLine(pz, vxy) #(2 GEOM_Object)->GEOM_Object
89  Line2 = geompy.MakeLineTwoPnt(pxyz, pz) #(2 GEOM_Object)->GEOM_Object
90  Plane = geompy.MakePlane(pz, vxyz, trimsize) #(2 GEOM_Object, Double)->GEOM_Object
91  Plane1 = geompy.MakePlaneThreePnt(px, pz, p200, trimsize) #(4 Doubles)->GEOM_Object
92  Plane2 = geompy.MakePlane2Vec(vx, vz, trimsize) #(2 GEOM_Object, Double)->GEOM_Object
93  Plane3 = geompy.MakePlaneLCS(cs1, trimsize, 3) #(1 GEOM_Object, 2 Double)->GEOM_Object

94 
95  Arc = geompy.MakeArc(py, pz, px) #(3 GEOM_Object)->GEOM_Object
96  Arc2 = geompy.MakeArcCenter(py, pz, px,0) #(3 GEOM_Object,Boolean)->GEOM_Object
97  Arc3 = geompy.MakeArcOfEllipse(p0, px, pz) #(3 GEOM_Object,Boolean)->GEOM_Object

98  Circle = geompy.MakeCircle(p0, vz, radius1) #(2 GEOM_Object, Double)->GEOM_Object
99  Circle1 = geompy.MakeCircleThreePnt(p0, pxyz, px) #(3 GEOM_Object)->GEOM_Object
100  Circle2 = geompy.MakeCircleCenter2Pnt(p0, pxyz, py) #(3 GEOM_Object)->GEOM_Object
101  Ellipse = geompy.MakeEllipse(p0, vy, radius2, radius1) #(2 GEOM_Object, 2 Doubles)->GEOM_Object
102  Polyline = geompy.MakePolyline([p0, pz, py, p200]) #(List of GEOM_Object)->GEOM_Object
103  Bezier = geompy.MakeBezier([p0, pz, p200, px]) #(List of GEOM_Object)->GEOM_Object
104  Interpol = geompy.MakeInterpol([px, py, p200, pxyz], True) #(List of GEOM_Object,Boolean)->GEOM_Object
105  InterpT1 = geompy.MakeInterpolWithTangents([px, py, pxyz], vx, vz) #(List of GO, GO, GO)->GEOM_Object
106  InterpT2 = geompy.MakeInterpolWithTangents([px, py, pxyz], vxy, vxyz) #(List of GO, GO, GO)->GEOM_Object
107  Sketcher = geompy.MakeSketcher("Sketcher:F -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WW",
108  [100,0,0, 1,1,1, -1,1,0]) #(String, List of Doubles)->GEOM_Object
109 
110  #Create 3D wires with 3D Sketcher
111  sk = geompy.Sketcher3D()
112  sk.addPointsAbsolute(0,0,0, 70,0,0)
113  sk.addPointsRelative(0, 0, 130)
114  sk.addPointRadiusAnglesRelative(100, 50, 0,"OXY")
115  sk.addPointRadiusAnglesRelative(130, 30, 80, "OXZ")
116  sk.addPointRadiusAnglesAbsolute(500, 60, 30,"OXY")
117  sk.addPointRadiusAngleHRelative(100, 50, 0,"OXY")
118  sk.addPointRadiusAngleHRelative(130, 30, 40, "OXZ")
119  sk.addPointRadiusAngleHAbsolute(800, 60, 30,"OXY")
120  sk.close()
121  Sketcher3d_1 = sk.wire()
122 
123  Sketcher3d_2 = geompy.Make3DSketcher([0,0,0, 50,50,50, 0,50,50, 10,0,0])
124 
125  #Create local coordinate system from shape
126  cs4 = geompy.MakeMarkerFromShape(Plane)
127 
128  #Test point on curve creation
129  p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25) #(GEOM_Object, Double)->GEOM_Object
130  p_on_arc2 = geompy.MakeVertexOnCurveByCoord(Arc, 100, -10, 10 ) #(GEOM_Object, Double)->GEOM_Object
131  p_on_arc3 = geompy.MakeVertexOnCurveByLength(Arc, 50, py) #(GEOM_Object, Double, GEOM_Object)->GEOM_Object

132 
133  #Test point on lines intersection
134  p_on_l1l2 = geompy.MakeVertexOnLinesIntersection(Line1, Line2) #(2 GEOM_Object)->GEOM_Object

135 
136  #Test tangent on curve creation
137  tan_on_arc = geompy.MakeTangentOnCurve(Arc, 0.7) #(GEOM_Object, Double)->GEOM_Object

138 
139  #Test tangent on face creation
140  tan_vertex_1 = geompy.MakeVertex(0, 0, 0)
141  tan_vertex_2 = geompy.MakeVertex(0, 90, 30)
142  tan_vertex_3 = geompy.MakeVertex(100, 90, 0)
143  tan_vertex_4 = geompy.MakeVertex(-100, 90, 0)
144  tan_curve = geompy.MakeInterpol([tan_vertex_4, tan_vertex_2, tan_vertex_3, tan_vertex_1], False)
145  tan_extrusion = geompy.MakePrismDXDYDZ(tan_curve, 0, 30, -60)
146  tan_on_face = geompy.MakeTangentPlaneOnFace(tan_extrusion, 0.7, 0.5, 150)
147 
148  #Create base geometry 3D
149  Box = geompy.MakeBoxTwoPnt(p0, p200) #(2 GEOM_Object)->GEOM_Object
150  Box1 = geompy.MakeBoxDXDYDZ(10, 20, 30) #(3 Doubles)->GEOM_Object
151  Box2 = geompy.MakeBox(10,20,30, 15,25,35) #(6 Doubles)->GEOM_Object
152  Cylinder = geompy.MakeCylinder(p0, vz, radius1, height) #(2 GEOM_Object, 2 Doubles)->GEOM_Object
153  Cyl1 = geompy.MakeCylinderRH(radius2, height) #(2 Doubles)->GEOM_Object
154  Cylinder1= geompy.MakeCylinderA(p0, vz, radius1, height, angle1) #(2 GEOM_Object, 3 Doubles)->GEOM_Object
155  Cyl2 = geompy.MakeCylinderRHA(radius2, height, angle2) #(3 Doubles)->GEOM_Object
156  Sphere = geompy.MakeSpherePntR(p0, radius1) #(GEOM_Object, Double)->GEOM_Object
157  Sphere1 = geompy.MakeSphereR(radius) #(Double)->GEOM_Object
158  Sphere2 = geompy.MakeSphere(50, 70, 30, radius) #(4 Doubles)->GEOM_Object
159  Cone = geompy.MakeCone(p0, vz, radius2, radius, height) #(2 GEOM_Object, 3 Doubles)->GEOM_Object
160  Cone1 = geompy.MakeConeR1R2H(radius1, radius, height) #(3 Doubles)->GEOM_Object
161  Torus = geompy.MakeTorus(p0, vz, radius2, radius) #(2 GEOM_Object, 2 Doubles)->GEOM_Object
162  Torus1 = geompy.MakeTorusRR(radius2, radius1) #(2 Doubles)->GEOM_Object
163 
164  #Boolean (Common, Cut, Fuse, Section)
165  Common = geompy.MakeBoolean(Box, Sphere, 1) #(2 GEOM_Object, Short)->GEOM_Object
166  Cut = geompy.MakeBoolean(Box, Sphere, 2)
167  Fuse = geompy.MakeBoolean(Box, Sphere, 3)
168  Section = geompy.MakeBoolean(Box, Sphere, 4)
169 
170  #Create base objects
171  Edge = geompy.MakeEdge(p0, pxyz) #(2 GEOM_Object)->GEOM_Object
172  Edge1 = geompy.MakeEdgeOnCurveByLength(Arc, 50, px) #(GEOM_Object, Double, GEOM_Object)->GEOM_Object
173  Wire = geompy.MakeWire([vxy, Arc]) #(List Of GEOM_Object)->GEOM_Object
174  Face = geompy.MakeFace(Wire, WantPlanarFace) #(GEOM_Object, Boolean)->GEOM_Object
175  Face1 = geompy.MakeFaceWires([Wire, Sketcher],
176  WantPlanarFace) #(List of GEOM_Object, Boolean)->GEOM_Object
177  Face2 = geompy.MakeFace(Sketcher, WantPlanarFace)
178  Face3 = geompy.MakeFaceHW (100., 200., 1) #(2 Doubles, 1 Int)->GEOM_Object
179  Face4 = geompy.MakeFaceObjHW (vz, 200., 100.) #(1 GEOM_Object, 2 Doubles)->GEOM_Object
180  Face5 = geompy.MakeFaceFromSurface(Face, Sketcher) #(2 GEOM_Objects)->GEOM_Object
181 
182  Cut2 = geompy.MakeCutList(Sphere1, [Box1], True)
183  #(List of GEOM_Object)->GEOM_Object
184  Face6 = geompy.MakeFaceWithConstraints([geompy.GetSubShape(Cut2, [5]), geompy.GetSubShape(Cut2, [3]),
185  geompy.GetSubShape(Cut2, [11]), geompy.GetSubShape(Cut2, [3]),
186  geompy.GetSubShape(Cut2, [13]), geompy.GetSubShape(Cut2, [3])])
187  Disk = geompy.MakeDiskPntVecR (p0, vz, radius) #(2 GEOM_Object, 1 Double)->GEOM_Object
188  Disk2 = geompy.MakeDiskThreePnt(p0, p200, pz) #(3 GEOM_Object)->GEOM_Object
189  Disk3 = geompy.MakeDiskR(100., 1) #(1 Doubles, 1 Int)->GEOM_Object
190  Shell = geompy.MakeShell([Face, Face1]) #(List of GEOM_Object)->GEOM_Object
191 
192  Prism1 = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
193  prism1_faces = geompy.SubShapeAllSortedCentres(Prism1, geompy.ShapeType["FACE"])
194  Shell1 = geompy.MakeShell([prism1_faces[0], prism1_faces[1],
195  prism1_faces[3], prism1_faces[4],
196  prism1_faces[5], prism1_faces[2]])
197  Solid = geompy.MakeSolid([Shell1]) #(List of GEOM_Object)->GEOM_Object
198 
199  Box1_translation = geompy.MakeTranslation(Box1, 10, 0, 0)
200  Box1_shell = geompy.SubShapeAllSorted(Box1, geompy.ShapeType["SHELL"])[0]
201  Box1_translation_shell = geompy.SubShapeAllSorted(Box1_translation, geompy.ShapeType["SHELL"])[0]
202 
203  Solid_from_shells = geompy.MakeSolidFromConnectedFaces([Box1_shell, Box1_translation_shell], 1) #(List of GEOM_Object, Boolean)->GEOM_Object
204 
205  # Create Isoline
206  Isoline = geompy.MakeIsoline(Face1, True, 0.5) #(1 GEOM_Object, Boolean, Double)->GEOM_Object
207 
208  ShapeListCompound = []
209  i = 0
210  while i <= 3 :
211  S = geompy.MakeTranslation(Arc, i * 100., i * 100., i * 100.)
212  ShapeListCompound.append(S)
213  i = i + 1
214  Compound = geompy.MakeCompound(ShapeListCompound) #(List of GEOM_Object)->GEOM_Object

215 
216  #Test point on surface creation
217  p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8) #(GEOM_Object, Double, Double)->GEOM_Object

218  p_on_face2 = geompy.MakeVertexOnSurfaceByCoord(Face, 0., 0., 0.) #(GEOM_Object, Double, Double, Double)->GEOM_Object

219  p_on_face3 = geompy.MakeVertexInsideFace(Face) #(GEOM_Object)->GEOM_Object
220 
221  # Test plane from existing face creation
222  Plane2 = geompy.MakePlaneFace(Face, trimsize) #(GEOM_Object, Double)->GEOM_Object
223 
224  #ShapeList for Sewing
225  S = geompy.MakeRotation(Face, vxy, angle1)

226 
227  #Test Line on Faces Intersection
228  Line3 = geompy.MakeLineTwoFaces(prism1_faces[0], prism1_faces[1]) #(2 GEOM_Object)->GEOM_Object

229 
230  #Create advanced objects
231  Prism = geompy.MakePrismVecH(Face, vz, 100.0) #(2 GEOM_Object, Double)->GEOM_Object
232  Prism2Ways = geompy.MakePrismVecH2Ways(Face, vz, 10.0) #(2 GEOM_Object, Double)->GEOM_Object
233  PrismTwoPnt = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
234  PrismTwoPnt2Ways = geompy.MakePrism2Ways(Face2, p0, pxyz) #(3 GEOM_Object)->GEOM_Object
235  PrismDXDYDZ = geompy.MakePrismDXDYDZ(Face2, 10, 20, 100)#(2 GEOM_Object, Double)->GEOM_Object
236  PrismDXDYDZ2Ways = geompy.MakePrismDXDYDZ2Ways(Face, 30, -20, 200)#(2 GEOM_Object, Double)->GEOM_Object
237  Revolution = geompy.MakeRevolution(Face, vxy, angle2) #(2 GEOM_Object, Double)->GEOM_Object
238  Revolution2Ways = geompy.MakeRevolution2Ways(Face, vxy, angle1) #(2 GEOM_Object, Double)->GEOM_Object
239  Filling = geompy.MakeFilling(Compound, mindeg, maxdeg,
240  tol2d, tol3d, nbiter) #(GEOM_Object, 4 Doubles, Short)->GEOM_Object
241  Pipe = geompy.MakePipe(Wire, Edge) #(2 GEOM_Object)->GEOM_Object
242  Sewing = geompy.MakeSewing([Face, S], precision) #(List Of GEOM_Object, Double)->GEOM_Object
243  ThickSolid = geompy.MakeCopy(Box)
244  faces = geompy.SubShapeAllSortedCentres(Box, geompy.ShapeType["FACE"])
245  shell = geompy.MakeShell([faces[0], faces[1], faces[2]])
246  faceIDs = geompy.SubShapeAllSortedCentresIDs(ThickSolid, geompy.ShapeType["FACE"])
247  ThickShell = geompy.MakeThickSolid(shell, 50) #(GEOM_Object, Double)->GEOM_Object
248  geompy.Thicken(ThickSolid, 50, [faceIDs[0], faceIDs[1]]) #(GEOM_Object) modification

249  Copy = geompy.MakeCopy(Box) #(GEOM_Object)->GEOM_Object

250 
251  #Transform objects
252  Translation = geompy.MakeTranslationTwoPoints(Box, px, pz) #(3 GEOM_Object)->GEOM_Object
253  TranslVect = geompy.MakeTranslationVector(Box, vxyz) #(2 GEOM_Object)->GEOM_Object
254  TranslVectD = geompy.MakeTranslationVectorDistance(Box, vxyz, 50.0) #(2 GEOM_Object)->GEOM_Object
255  Rotation = geompy.MakeRotation(Box, vz, angle1) #(2 GEOM_Object, Double)->GEOM_Object
256  RotatPnt = geompy.MakeRotationThreePoints(Box, px, py, pz) #(4 GEOM_Object)->GEOM_Object

257 
258  #Scale by factor relatively given point
259  Scale1 = geompy.MakeScaleTransform(Box, pxyz, factor) #(2 GEOM_Object, Double)->GEOM_Object
260  #Scale by factor relatively the origin of global CS
261  Scale2 = geompy.MakeScaleTransform(Box, None, factor) #
262  #Scale along axes of global CS by different factors. Scale relatively given point
263  Scale3 = geompy.MakeScaleAlongAxes(Box, pxyz, 1.5, 0.5, 3) #(2 GEOM_Object, 3 Doubles)->GEOM_Object
264  #Scale along axes of global CS by different factors. Scale relatively the origin of global CS
265  Scale4 = geompy.MakeScaleAlongAxes(Box, None, 1.5, 0.5, 3) #

266 
267  Mirror = geompy.MakeMirrorByPlane(Box, Plane) #(2 GEOM_Object)->GEOM_Object
268  MirrorAxis = geompy.MakeMirrorByAxis(Box, Line1) #
269  MirrorPnt = geompy.MakeMirrorByPoint(Box, p200) #
270  Position = geompy.MakePosition(Box, cs1, cs2) #(3 GEOM_Object)->GEOM_Object
271  Position2 = geompy.PositionAlongPath(Box, Arc, 0.5, 1, 0) #(2 GEOM_Object, 1 Double, 2 Bool)->GEOM_Object
272  Offset = geompy.MakeOffset(Box, 10.) #(GEOM_Object, Double)->GEOM_Object
273  ProjOnWire = geompy.MakeProjectionOnWire(p0, Wire)
274  ProjOnCyl = geompy.MakeProjectionOnCylinder(Wire, 100)

275  Orientation = geompy.ChangeOrientation(Box)

276  ExtEdge = geompy.ExtendEdge(Edge1, -0.3, 1.3)
277  ExtFace = geompy.ExtendFace(Face5, -0.3, 1.3, -0.1, 1.1)

278  Surface = geompy.MakeSurfaceFromFace(Face5)

279 
280  #IDList for Fillet/Chamfer
281  prism_edges = geompy.ExtractShapes(Prism, geompy.ShapeType["EDGE"], True)
282 
283  for anEdge in prism_edges:
284  eid = geompy.GetSubShapeID(Prism, anEdge)
285  sse = geompy.GetSubShape(Prism, [eid])
286 
287  sse_id = geompy.GetSubShapeID(Prism, sse)
288  if sse_id != eid:
289  print("Error: GetSubShape() or GetSubShapeID() has failed!")
290 
291  IDlist_e = []
292  IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[0]))
293  IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[1]))
294  IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[2]))
295 
296  prism_faces = geompy.ExtractShapes(Prism, geompy.ShapeType["FACE"], True)
297 
298  f_ind_1 = geompy.GetSubShapeID(Prism, prism_faces[0])
299  f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
300 
301  IDlist_f = [f_ind_1, f_ind_2]

302 
303  #Local operations
304  Fillet2d = geompy.MakeFillet2D(Face3, radius, [4, 7, 9]) #(GEOM_Object, Double, ListOfLong)->GEOM_Object
305  Fillet = geompy.MakeFillet (Prism, radius, geompy.ShapeType["EDGE"],
306  IDlist_e) #(GEOM_Object, Double, Short, ListOfLong)->GEOM_Object
307  Fillet2 = geompy.MakeFilletR1R2 (Prism, 7., 13., geompy.ShapeType["EDGE"],
308  IDlist_e) #(GEOM_Object, Double, Double, Short, ListOfLong)->GEOM_Object
309  Chamfer = geompy.MakeChamferEdge(Prism, d1, d2,
310  f_ind_1, f_ind_2) #(GEOM_Object, 2 Doubles, 2 Long)->GEOM_Object
311  Chamfer2 = geompy.MakeChamferFaces(Prism, d1, d2,
312  IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
313  Chamfer3 = geompy.MakeChamferEdges(Prism, d1, d2,
314  IDlist_e) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
315  Chamfer4 = geompy.MakeChamferFacesAD(Prism, d1, 20. * math.pi / 180.,
316  IDlist_f) #(GEOM_Object, 2 Doubles, ListOfLong)->GEOM_Object
317  #End of Local operations

318 
319  #Create Patterns
320  MultiTrans1D = geompy.MakeMultiTranslation1D(Fillet, vz, step1, nbtimes1)
321  MultiTrans2D = geompy.MakeMultiTranslation2D(Fillet, vz, step1, nbtimes1, vy, step2, nbtimes2)
322  MultiRot1Dt = geompy.MultiRotate1DNbTimes(Chamfer, vx, nbtimes1)
323  MultiRot1Ds = geompy.MultiRotate1DByStep(Chamfer, vx, math.pi/4., nbtimes1)
324  MultiRot2Dt = geompy.MultiRotate2DNbTimes(Chamfer, vx, nbtimes1, step1, nbtimes2)
325  MultiRot2Ds = geompy.MultiRotate2DByStep(Chamfer, vx, angle1, nbtimes1, step1, nbtimes2)

326 
327  #Create Information objects
328  CDG = geompy.MakeCDG(Prism) #(GEOM_Object)->GEOM_Object
329  Archimede = geompy.Archimede(Box, weight, waterdensity,
330  meshingdeflection) #(GEOM_Object, 3 Doubles)->GEOM_Object
331  mindist = geompy.MinDistanceComponents(TranslVect, Mirror) #(2 GEOM_Object)->4 Doubles
332  print("Minumal distance between TranslVect and Mirror is", mindist[0], end=' ')
333  print("by components:", mindist[1], ",", mindist[2], ",", mindist[3])
334  CheckShape = geompy.CheckShape(Prism) #(GEOM_Object)->Boolean
335  print("CheckShape(Prism) = ", CheckShape)

336 
337  #Partition objects
338  Partition = geompy.MakePartition([Box], [Plane]) #(2 Lists Of GEOM_Object)->GEOM_Object
339  Partition1 = geompy.MakeHalfPartition(Box, Plane) #(2 GEOM_Object)->GEOM_Object

340 
341  #Add In Study
342  id_p0 = geompy.addToStudy(p0, "Vertex 0")
343  id_px = geompy.addToStudy(px, "Vertex X")
344  id_py = geompy.addToStudy(py, "Vertex Y")
345  id_pz = geompy.addToStudy(pz, "Vertex Z")
346  id_pxyz = geompy.addToStudy(pxyz, "Vertex XYZ")
347  id_p200 = geompy.addToStudy(p200, "Vertex 200")
348 
349  id_vx = geompy.addToStudy(vx, "Vector X")
350  id_vy = geompy.addToStudy(vy, "Vector Y")
351  id_vz = geompy.addToStudy(vz, "Vector Z")
352  id_vxy = geompy.addToStudy(vxy, "Vector XY")
353  id_vxyz = geompy.addToStudy(vxyz, "Vector XYZ")
354 
355  id_cs1 = geompy.addToStudy(cs1, "CS 50,50,50, 1,0,0, 0,1,0")
356  id_cs2 = geompy.addToStudy(cs2, "CS 70,80,10, 1,0,1, 1,1,0")
357  id_cs3 = geompy.addToStudy(cs3, "CS: pz, vxy, vz")
358  id_cs4 = geompy.addToStudy(cs4, "CS: Plane")
359 
360  id_Line = geompy.addToStudy(Line, "Line")
361  id_Line1 = geompy.addToStudy(Line1, "Line by point and vector")
362  id_Line3 = geompy.addToStudy(Line3, "Line on Two Faces Intersection")
363  id_Plane = geompy.addToStudy(Plane, "Plane")
364  id_Plane1 = geompy.addToStudy(Plane1, "Plane by 3 points")
365  id_Plane2 = geompy.addToStudy(Plane2, "Plane by 2 vectors")
366  id_Plane3 = geompy.addToStudy(Plane3, "Plane by LCS")
367 
368  id_Arc = geompy.addToStudy(Arc, "Arc")
369  id_Arc2 = geompy.addToStudy(Arc2, "Arc2")
370  id_Arc3 = geompy.addToStudy(Arc3, "Arc3")
371  id_Circle = geompy.addToStudy(Circle, "Circle")
372  id_Circle1 = geompy.addToStudy(Circle1, "Circle by 3 points")
373  id_Circle2 = geompy.addToStudy(Circle2, "Circle by center and 2 points")
374  id_Ellipse = geompy.addToStudy(Ellipse, "Ellipse")
375  id_Polyline = geompy.addToStudy(Polyline, "Polyline")
376  id_Bezier = geompy.addToStudy(Bezier, "Bezier")
377  id_Interpol = geompy.addToStudy(Interpol, "Interpol")
378  id_InterpT1 = geompy.addToStudy(InterpT1, "InterpT1")
379  id_InterpT2 = geompy.addToStudy(InterpT2, "InterpT2")
380  id_Sketcher = geompy.addToStudy(Sketcher, "Sketcher")
381 
382  id_Sketcher3d_1 = geompy.addToStudy(Sketcher3d_1, "Sketcher 3D by interface")
383  id_Sketcher3d_2 = geompy.addToStudy(Sketcher3d_2, "Sketcher 3D by list")
384 
385  id_p_on_arc = geompy.addToStudy(p_on_arc, "Vertex on Arc (0.25)")
386  id_p_on_arc2 = geompy.addToStudy(p_on_arc2, "Vertex on Arc at(100, -10, 10)" )
387  id_p_on_arc3 = geompy.addToStudy(p_on_arc3, "Vertex on Arc length 50 from Vertex X" )
388 
389  id_p_on_l1l2 = geompy.addToStudy(p_on_l1l2, "Vertex on Lines Intersection")
390 
391  id_tan_on_arc = geompy.addToStudy(tan_on_arc, "Tangent on Arc (0.7)")
392  id_tan_on_face = geompy.addToStudy(tan_on_face, "Tangent on Face")
393 
394  id_Box = geompy.addToStudy(Box, "Box")
395  id_Box1 = geompy.addToStudy(Box1, "Box 10x20x30")
396  id_Box2 = geompy.addToStudy(Box2, "Box (10,20,30)-(15,25,35)")
397  id_Cylinder = geompy.addToStudy(Cylinder, "Cylinder")
398  id_Cyl1 = geompy.addToStudy(Cyl1, "Cylinder RH")
399  id_Cylinder1= geompy.addToStudy(Cylinder1,"CylinderA")
400  id_Cyl2 = geompy.addToStudy(Cyl2, "Cylinder RHA")
401  id_Sphere = geompy.addToStudy(Sphere, "Sphere Pnt R")
402  id_Sphere1 = geompy.addToStudy(Sphere1, "Sphere R")
403  id_Sphere2 = geompy.addToStudy(Sphere2, "Sphere")
404  id_Cone = geompy.addToStudy(Cone, "Cone")
405  id_Cone1 = geompy.addToStudy(Cone1, "Cone R1R2H")
406  id_Torus = geompy.addToStudy(Torus, "Torus")
407  id_Torus1 = geompy.addToStudy(Torus1, "Torus RR")
408 
409  id_Common = geompy.addToStudy(Common, "Common")
410  id_Cut = geompy.addToStudy(Cut, "Cut")
411  id_Cut2 = geompy.addToStudy(Cut2, "Cut2")
412  id_Fuse = geompy.addToStudy(Fuse, "Fuse")
413  id_Section = geompy.addToStudy(Section, "Section")
414 
415  id_Edge = geompy.addToStudy(Edge, "Edge")
416  id_Edge1 = geompy.addToStudy(Edge1, "Edge on Arc length 50 from Vertex Y")
417  id_Wire = geompy.addToStudy(Wire, "Wire")
418  id_Face = geompy.addToStudy(Face, "Face")
419  id_Face1 = geompy.addToStudy(Face1, "Face from two wires")
420  id_Face2 = geompy.addToStudy(Face2, "Face from Sketcher")
421  id_Face3 = geompy.addToStudy(Face3, "Face Height Width")
422  id_Face4 = geompy.addToStudy(Face4, "Face Plane_HW")
423  id_Face5 = geompy.addToStudy(Face5, "Face from surface and wire")
424  id_Face6 = geompy.addToStudy(Face6, "Face from edges with constraints")
425  id_Disk = geompy.addToStudy(Disk, "Disk PntVecR")
426  id_Disk2 = geompy.addToStudy(Disk2, "Disk Three Points")
427  id_Disk3 = geompy.addToStudy(Disk3, "Disk OXY Radius")
428  id_Shell = geompy.addToStudy(Shell, "Shell")
429 
430  id_Isoline = geompy.addToStudy(Isoline, "Isoline")
431 
432  id_p_on_face = geompy.addToStudy(p_on_face, "Vertex on Face (0.1, 0.8)")
433  id_p_on_face2 = geompy.addToStudy(p_on_face2, "Vertex on Face at(0., 0., 0.)")
434  id_p_on_face3 = geompy.addToStudy(p_on_face3, "Vertex inside Face")
435 
436  id_Prism1 = geompy.addToStudy(Prism1, "Prism by Two Pnt")
437  id_Shell1 = geompy.addToStudy(Shell1, "Shell from Prism1 faces")
438  id_Solid = geompy.addToStudy(Solid, "Solid")
439  id_Solid1 = geompy.addToStudy(Solid_from_shells, "Solid1")
440 
441  id_Compound = geompy.addToStudy(Compound, "Compound")
442 
443  id_Plane2 = geompy.addToStudy(Plane2, "Plane on Face")
444 
445  id_Copy = geompy.addToStudy(Copy, "Copy")
446  id_ThickShell = geompy.addToStudy(ThickShell, "ThickShell")
447  id_ThickSolid = geompy.addToStudy(ThickSolid, "ThickSolid")
448 
449  id_Prism = geompy.addToStudy(Prism, "Prism")
450  id_Prism2Ways = geompy.addToStudy(Prism2Ways, "Prism2Ways")
451  id_PrismTwoPnt = geompy.addToStudy(PrismTwoPnt, "PrismTwoPnt")
452  id_PrismTwoPnt2Ways = geompy.addToStudy(PrismTwoPnt2Ways, "PrismTwoPnt2Ways")
453  id_PrismDXDYDZ = geompy.addToStudy(PrismDXDYDZ, "PrismDXDYDZ")
454  id_PrismDXDYDZ2Ways = geompy.addToStudy(PrismDXDYDZ2Ways, "PrismDXDYDZ2Ways")
455  id_Revolution = geompy.addToStudy(Revolution, "Revolution")
456  id_Revolution2Ways = geompy.addToStudy(Revolution2Ways, "Revolution2Ways")
457  id_Filling = geompy.addToStudy(Filling, "Filling")
458  id_Pipe = geompy.addToStudy(Pipe, "Pipe")
459  id_Sewing = geompy.addToStudy(Sewing, "Sewing")
460 
461  import salome_version
462  if int(salome_version.getXVersion(), 16) >= int('0x060600', 16):
463  [Face5, Face6] = geompy.SubShapes(Box, [31, 33])
464  [b1_e1, b1_e2, b1_e3, b1_e4] = geompy.SubShapes(Box, [12, 22, 25, 29])
465  [b2_e1, b2_e2, b2_e3, b2_e4] = geompy.SubShapes(Box, [ 8, 18, 26, 30])
466  Path1 = geompy.RestorePath(Box, Face5, Face6)
467  Path2 = geompy.RestorePathEdges(Box, [b1_e1, b1_e2, b1_e3, b1_e4], [b2_e1, b2_e2, b2_e3, b2_e4])
468 
469  id_Base1 = geompy.addToStudyInFather(Box, Face5, "Base1")
470  id_Base2 = geompy.addToStudyInFather(Box, Face6, "Base2")
471  id_Base1e1 = geompy.addToStudyInFather(Box, b1_e1, "Base1 Edge1")
472  id_Base1e2 = geompy.addToStudyInFather(Box, b1_e2, "Base1 Edge2")
473  id_Base1e3 = geompy.addToStudyInFather(Box, b1_e3, "Base1 Edge3")
474  id_Base1e4 = geompy.addToStudyInFather(Box, b1_e4, "Base1 Edge4")
475  id_Base2e1 = geompy.addToStudyInFather(Box, b2_e1, "Base2 Edge1")
476  id_Base2e2 = geompy.addToStudyInFather(Box, b2_e2, "Base2 Edge2")
477  id_Base2e3 = geompy.addToStudyInFather(Box, b2_e3, "Base2 Edge3")
478  id_Base2e4 = geompy.addToStudyInFather(Box, b2_e4, "Base2 Edge4")
479  id_Path1 = geompy.addToStudy(Path1, "Path1")
480  id_Path2 = geompy.addToStudy(Path2, "Path2")
481  pass
482 
483  id_Translation = geompy.addToStudy(Translation, "Translation")
484  id_TranslVect = geompy.addToStudy(TranslVect , "Translation along vector")
485  id_TranslVectD = geompy.addToStudy(TranslVectD, "Translation along vector with defined distance")
486  id_Rotation = geompy.addToStudy(Rotation, "Rotation")
487  id_RotatPnt = geompy.addToStudy(RotatPnt, "Rotation by three points")
488  id_Scale1 = geompy.addToStudy(Scale1, "Scale1")
489  id_Scale2 = geompy.addToStudy(Scale2, "Scale2")
490  id_Scale3 = geompy.addToStudy(Scale3, "Scale3")
491  id_Scale4 = geompy.addToStudy(Scale4, "Scale4")
492  id_Mirror = geompy.addToStudy(Mirror, "Mirror by Plane")
493  id_MirrorAxis = geompy.addToStudy(MirrorAxis, "Mirror by Axis")
494  id_MirrorPnt = geompy.addToStudy(MirrorPnt, "Mirror by Point")
495  id_Position = geompy.addToStudy(Position, "Positioned box")
496  id_Position2 = geompy.addToStudy(Position2, "Positioned box along path")
497  id_Offset = geompy.addToStudy(Offset, "Offset")
498  id_Orientation = geompy.addToStudy(Orientation, "Orientation")
499  id_ProjOnWire = geompy.addToStudy(ProjOnWire[1], "ProjOnWire")
500  id_ProjOnCyl = geompy.addToStudy(ProjOnCyl, "ProjOnCyl")
501  id_ExtEdge = geompy.addToStudy(ExtEdge, "ExtendedEdge")
502  id_ExtFace = geompy.addToStudy(ExtFace, "ExtendedFace")
503  id_Surface = geompy.addToStudy(Surface, "Surface From Face")
504 
505  id_Fillet = geompy.addToStudy(Fillet, "Fillet")
506  id_Fillet2 = geompy.addToStudy(Fillet2, "Fillet2")
507  id_Fillet2d = geompy.addToStudy(Fillet2d, "Fillet2D")
508 
509  id_Chamfer = geompy.addToStudy(Chamfer, "Chamfer on Edge")
510  id_Chamfer2 = geompy.addToStudy(Chamfer2, "Chamfer on Faces")
511  id_Chamfer3 = geompy.addToStudy(Chamfer3, "Chamfer on Edges")
512  id_Chamfer4 = geompy.addToStudy(Chamfer4, "Chamfer on Faces with params D Angle")
513 
514  id_MultiTrans1D = geompy.addToStudy(MultiTrans1D, "MultiTrans1D")
515  id_MultiTrans2D = geompy.addToStudy(MultiTrans2D, "MultiTrans2D")
516  id_MultiRot1Dt = geompy.addToStudy(MultiRot1Dt, "MultiRot1D NbTimes")
517  id_MultiRot1Ds = geompy.addToStudy(MultiRot1Ds, "MultiRot1D ByStep")
518  id_MultiRot2Dt = geompy.addToStudy(MultiRot2Dt, "MultiRot2D NbTimes")
519  id_MultiRot2Ds = geompy.addToStudy(MultiRot2Ds, "MultiRot2D ByStep")
520 
521  id_CDG = geompy.addToStudy(CDG, "CDG")
522  id_Archimede = geompy.addToStudy(Archimede, "Archimede")
523 
524  id_Partition = geompy.addToStudy(Partition, "Partition")
525  id_Partition1 = geompy.addToStudy(Partition1, "Half Partition")

526 
527  #Decompose objects
528 
529  # SubShape
530  SubFace = geompy.SubShape(Box, geompy.ShapeType["FACE"], [2])
531  name = geompy.SubShapeName(SubFace, Box)
532  id_SubFace = geompy.addToStudyInFather(Box, SubFace, name)

533 
534  # SubShapeSortedCentres
535  SubFaceS = geompy.SubShapeSortedCentres(Box, geompy.ShapeType["FACE"], [5])
536  nameS = geompy.SubShapeName(SubFaceS, Box)

537  id_SubFace = geompy.addToStudyInFather(Box, SubFaceS, nameS)
538 
539  # GetExistingSubObjects
540  SubObjsAll = geompy.GetExistingSubObjects(Box, True)
541  print("For now, Box has the following created sub-objects:", SubObjsAll)
542 
543  # GetGroups
544  SubGrpsAll = geompy.GetGroups(Box)
545  print("For now, Box has the following created groups:", SubGrpsAll)
546 
547  # SubShapeAll
548  SubEdgeList = geompy.SubShapeAll(SubFace, geompy.ShapeType["EDGE"])
549  i=0
550  for SubEdge in SubEdgeList :
551  name = geompy.SubShapeName(SubEdge, SubFace)
552  id_SubEdge = geompy.addToStudyInFather(SubFace, SubEdge, name)
553 
554  # SubShapeAllIDs
555  SubEdgeIDsList = geompy.SubShapeAllIDs(SubFace, geompy.ShapeType["EDGE"])
556  print("IDs of edges of SubFace:", SubEdgeIDsList, "(unsorted)")
557  group = geompy.CreateGroup(SubFace, geompy.ShapeType["EDGE"])
558  geompy.UnionIDs(group, SubEdgeIDsList)
559  geompy.addToStudyInFather(SubFace, group, "Group of all edges")
560 
561  # SubShapeAllSortedCentresIDs
562  SubEdgeIDsList = geompy.SubShapeAllSortedCentresIDs(SubFace, geompy.ShapeType["EDGE"])
563  print("IDs of edges of SubFace:", SubEdgeIDsList, "(sorted)")
564 
565  # GetSubShape and GetSubShapeID
566  for ind in SubEdgeIDsList:
567  edge = geompy.GetSubShape(SubFace, [ind])
568  ind_e = geompy.GetSubShapeID(SubFace, edge)
569  if ind_e != ind:
570  print("Error in GetSubShape or GetSubShapeID")
571 
572  # RestoreSubShapes
573  geompy.RestoreSubShapes(Copy)
574  geompy.RestoreSubShapes(RotatPnt, [], GEOM.FSM_Transformed)
575  geompy.RestoreSubShapes(Partition, [Box])
576  geompy.RestoreSubShapes(Partition1)

577 
578  # GetSubShapeEdgeSorted
579  p1 = geompy.GetFirstVertex(Sketcher)
580  p2 = geompy.GetFirstVertex(Sketcher3d_1)
581  p3 = geompy.GetFirstVertex(Sketcher3d_2)
582  geompy.GetSubShapeEdgeSorted(Sketcher, p1, "OrderedEdges")
583  geompy.GetSubShapeEdgeSorted(Sketcher3d_1, p2, "OrderedEdges")
584  geompy.GetSubShapeEdgeSorted(Sketcher3d_2, p3, "OrderedEdges")

585 
586  # GetSubShapesWithTolerance
587  geompy.GetSubShapesWithTolerance(Box, GEOM.FACE, GEOM.CC_GT, 1.e-8, "gt")
588  geompy.GetSubShapesWithTolerance(Box, GEOM.FACE, GEOM.CC_GE, 1.e-7, "ge")
589  geompy.GetSubShapesWithTolerance(Box, GEOM.FACE, GEOM.CC_LT, 2.e-7, "lt")
590  geompy.GetSubShapesWithTolerance(Box, GEOM.FACE, GEOM.CC_LE, 1.e-7, "le")

591 
592  # MakeExtraction
593  geompy.MakeExtraction(Box, [13], "Ext_no_face")
594  geompy.MakeExtraction(Box, [18], "Ext_no_edge")
595  geompy.MakeExtraction(Box, [16], "Ext_no_vertex")

596 
597  # CurvatureOnFace
598  Cylinder_1 = geompy.MakeCylinderRH(100, 50, 'Cylinder_r100_h150')
599  [Face_1,Face_2,Face_3] = geompy.ExtractShapes(Cylinder_1, geompy.ShapeType["FACE"], True, "Face")
600  curvature_1 = geompy.CurvatureOnFace(Face_2, px, vy, 'curvature_cyl_px_vy')
601  assert(abs(geompy.BasicProperties(curvature_1)[0] - 100) < 1e-07)
602  curvature_zero = geompy.CurvatureOnFace(Face_2, px, vz)
603  assert(geompy.MeasuOp.GetErrorCode() == "ZERO_CURVATURE")
604  assert(not curvature_zero)
605  isExcept = False
606  try:
607  # p0 is on cylinder axis, projection should fail
608  geompy.CurvatureOnFace(Face_2, p0, vy)
609  except:
610  isExcept = True
611  assert(isExcept)
612 
613  print("DONE")