35 def TestExportImport (geompy, shape):
37 print(
"Test Export/Import ...", end=
' ')
39 with tempfile.TemporaryDirectory()
as tmpDir:
41 fileExportImportBREP = os.path.join(tmpDir,
"testExportImportBREP.brep")
42 fileExportImportIGES = os.path.join(tmpDir,
"testExportImportIGES.iges")
43 fileExportImportSTEP = os.path.join(tmpDir,
"testExportImportSTEP.step")
46 geompy.ExportBREP(shape, fileExportImportBREP)
47 geompy.ExportIGES(shape, fileExportImportIGES)
48 geompy.ExportSTEP(shape, fileExportImportSTEP)
51 ImportBREP = geompy.ImportBREP(fileExportImportBREP)
52 ImportIGES = geompy.ImportIGES(fileExportImportIGES)
53 ImportSTEP = geompy.ImportSTEP(fileExportImportSTEP)
55 geompy.addToStudy(ImportBREP,
"ImportBREP")
56 geompy.addToStudy(ImportIGES,
"ImportIGES")
57 geompy.addToStudy(ImportSTEP,
"ImportSTEP")
60 if geompy.GetIGESUnit(fileExportImportIGES) !=
"M":
61 ImportIGES_scaled = geompy.ImportIGES(fileExportImportIGES,
True)
62 geompy.addToStudy(ImportIGES_scaled,
"ImportIGES_scaled")
65 if geompy.GetSTEPUnit(fileExportImportSTEP) !=
"M":
66 ImportSTEP_scaled = geompy.ImportSTEP(fileExportImportSTEP,
True)
67 geompy.addToStudy(ImportSTEP_scaled,
"ImportSTEP_scaled")
72 aStream = shape.GetShapeStream()
73 aNewShape = geompy.RestoreShape(aStream)
74 geompy.addToStudy(aNewShape,
"aNewShape")
79 def TestOtherOperations (geompy, math):
82 vx = geompy.MakeVectorDXDYDZ( 1, 0, 0)
83 vy = geompy.MakeVectorDXDYDZ( 0, 1, 0)
84 vz = geompy.MakeVectorDXDYDZ( 0, 0, 1)
86 v_y = geompy.MakeVectorDXDYDZ( 0, -1, 0)
88 p11 = geompy.MakeVertex( 0, 0, 0)
89 p12 = geompy.MakeVertex(30, 0, 0)
90 p13 = geompy.MakeVertex(30, 30, 0)
91 p14 = geompy.MakeVertex( 0, 30, 0)
93 p21 = geompy.MakeVertex(10, 10, 0)
94 p22 = geompy.MakeVertex(20, 10, 0)
95 p23 = geompy.MakeVertex(20, 20, 0)
96 p24 = geompy.MakeVertex(10, 20, 0)
98 e11 = geompy.MakeEdge(p11, p12)
99 e12 = geompy.MakeEdge(p12, p13)
100 e13 = geompy.MakeEdge(p13, p14)
101 e14 = geompy.MakeEdge(p14, p11)
103 e21 = geompy.MakeEdge(p21, p22)
104 e22 = geompy.MakeEdge(p22, p23)
105 e23 = geompy.MakeEdge(p23, p24)
106 e24 = geompy.MakeEdge(p24, p21)
108 w1 = geompy.MakeWire([e11, e12, e13, e14])
109 w2 = geompy.MakeWire([e21, e22, e23, e24])
110 w3 = geompy.MakeTranslation(w2, 0, 0, 10)
112 id_w1 = geompy.addToStudy(w1,
"Outside Wire")
113 id_w2 = geompy.addToStudy(w2,
"Inside Wire")
114 id_w3 = geompy.addToStudy(w3,
"Inside Wire, translated along OZ")
130 p1 = geompy.MakeVertex(60, 120, 0)
131 p2 = geompy.MakeVertex( 0, 0, 0)
132 v = geompy.MakeVector(p1, p2)
135 cylinder = geompy.MakeCylinder(p1, v, radius1, height)
136 Sphere = geompy.MakeSphereR(100)
138 Common1 = geompy.MakeCommon (Box, Sphere)
139 Cut1 = geompy.MakeCut (Box, Sphere)
140 Fuse1 = geompy.MakeFuse (Box, Sphere)
141 Section = geompy.MakeSection (Box, Sphere)
142 Common2 = geompy.MakeCommonList([Box, Sphere, cylinder])
143 Cut2 = geompy.MakeCutList (Box, [Sphere, cylinder])
144 Fuse2 = geompy.MakeFuseList ([Box, Sphere, cylinder])
146 id_Common1 = geompy.addToStudy(Common1,
"Common_1")
147 id_Cut1 = geompy.addToStudy(Cut1,
"Cut_1")
148 id_Fuse1 = geompy.addToStudy(Fuse1,
"Fuse_1")
149 id_Section = geompy.addToStudy(Section,
"Section")
150 id_Common2 = geompy.addToStudy(Common2,
"Common_2")
151 id_Cut2 = geompy.addToStudy(Cut2,
"Cut_2")
152 id_Fuse2 = geompy.addToStudy(Fuse2,
"Fuse_2")
298 Group_1 = geompy.CreateGroup(Box, geompy.ShapeType[
"FACE"])
299 geompy.UnionIDs(Group_1, [13, 23])
300 Group_2 = geompy.CreateGroup(Box, geompy.ShapeType[
"FACE"])
301 geompy.UnionIDs(Group_2, [3, 27])
302 Group_3 = geompy.CreateGroup(Box, geompy.ShapeType[
"FACE"])
303 geompy.UnionIDs(Group_3, [33, 23])
304 Group_4 = geompy.CreateGroup(Box, geompy.ShapeType[
"FACE"])
305 geompy.UnionIDs(Group_4, [31, 27])
307 geompy.addToStudyInFather(Box, Group_1,
'Group_1')
308 geompy.addToStudyInFather(Box, Group_2,
'Group_2')
309 geompy.addToStudyInFather(Box, Group_3,
'Group_3')
310 geompy.addToStudyInFather(Box, Group_4,
'Group_4')
313 Group_U_1_2 = geompy.UnionGroups(Group_1, Group_2)
314 Group_UL_3_4 = geompy.UnionListOfGroups([Group_3, Group_4])
316 geompy.addToStudyInFather(Box, Group_U_1_2,
'Group_U_1_2')
317 geompy.addToStudyInFather(Box, Group_UL_3_4,
'Group_UL_3_4')
320 Group_I_1_3 = geompy.IntersectGroups(Group_1, Group_3)
321 Group_IL_1_3 = geompy.IntersectListOfGroups([Group_1, Group_3])
323 geompy.addToStudyInFather(Box, Group_I_1_3,
'Group_I_1_3')
324 geompy.addToStudyInFather(Box, Group_IL_1_3,
'Group_IL_1_3')
327 Group_C_2_4 = geompy.CutGroups(Group_2, Group_4)
328 Group_CL_2_4 = geompy.CutListOfGroups([Group_2], [Group_4])
330 geompy.addToStudyInFather(Box, Group_C_2_4,
'Group_C_2_4')
331 geompy.addToStudyInFather(Box, Group_CL_2_4,
'Group_CL_2_4')
333 GroupType = geompy.GetType(CreateGroup)
334 assert (GroupType == geompy.ShapeType[
"FACE"])
337 p0 = geompy.MakeVertex(0, 0, 0)
338 b0 = geompy.MakeBox(-50, -50, -50, 50, 50, 50)
339 s0 = geompy.MakeSphereR(100)
341 id_b0 = geompy.addToStudy(b0,
"b0")
342 id_s0 = geompy.addToStudy(s0,
"s0")
344 v_0pp = geompy.MakeVectorDXDYDZ( 0, 1, 1)
345 v_0np = geompy.MakeVectorDXDYDZ( 0, -1, 1)
346 v_p0p = geompy.MakeVectorDXDYDZ( 1, 0, 1)
347 v_p0n = geompy.MakeVectorDXDYDZ( 1, 0, -1)
348 v_pp0 = geompy.MakeVectorDXDYDZ( 1, 1, 0)
349 v_pn0 = geompy.MakeVectorDXDYDZ( 1, -1, 0)
351 pln_0pp = geompy.MakePlane(p0, v_0pp, 300)
352 pln_0np = geompy.MakePlane(p0, v_0np, 300)
353 pln_p0p = geompy.MakePlane(p0, v_p0p, 300)
354 pln_p0n = geompy.MakePlane(p0, v_p0n, 300)
355 pln_pp0 = geompy.MakePlane(p0, v_pp0, 300)
356 pln_pn0 = geompy.MakePlane(p0, v_pn0, 300)
358 part_objs = [b0, pln_0pp, pln_0np, pln_p0p, pln_p0n, pln_pp0, pln_pn0]
359 part_tool_1 = geompy.MakePartition(part_objs, KeepNonlimitShapes=1)
360 geompy.addToStudy(part_tool_1,
"part_tool_1")
362 pt_pnt_1 = geompy.MakeVertex( 55, 0, 55)
363 pt_pnt_2 = geompy.MakeVertex( 0, 55, 55)
364 pt_pnt_3 = geompy.MakeVertex(-55, 0, 55)
365 pt_pnt_4 = geompy.MakeVertex( 0, -55, 55)
366 pt_pnt_5 = geompy.MakeVertex( 55, 55, 0)
367 pt_pnt_6 = geompy.MakeVertex( 55, -55, 0)
368 pt_pnt_7 = geompy.MakeVertex(-55, 55, 0)
369 pt_pnt_8 = geompy.MakeVertex(-55, -55, 0)
370 pt_pnt_9 = geompy.MakeVertex( 55, 0, -55)
371 pt_pnt_10 = geompy.MakeVertex( 0, 55, -55)
372 pt_pnt_11 = geompy.MakeVertex(-55, 0, -55)
373 pt_pnt_12 = geompy.MakeVertex( 0, -55, -55)
375 pt_face_1 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_1)
376 pt_face_2 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_2)
377 pt_face_3 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_3)
378 pt_face_4 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_4)
379 pt_face_5 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_5)
380 pt_face_6 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_6)
381 pt_face_7 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_7)
382 pt_face_8 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_8)
383 pt_face_9 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_9)
384 pt_face_10 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_10)
385 pt_face_11 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_11)
386 pt_face_12 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_12)
388 part_tools = [pt_face_1, pt_face_4, pt_face_7, pt_face_10,
389 pt_face_2, pt_face_5, pt_face_8, pt_face_11,
390 pt_face_3, pt_face_6, pt_face_9, pt_face_12, b0]
391 part_tool = geompy.MakeCompound(part_tools)
392 geompy.addToStudy(part_tool,
"part_tool")
393 part = geompy.MakePartition([s0], [part_tool])
394 geompy.addToStudy(part,
"part")
397 anIDs = geompy.GetFreeFacesIDs(part)
398 freeFaces = geompy.GetSubShape(part, anIDs)
400 geompy.addToStudy(freeFaces,
"freeFaces")
404 tools = [pln_pp0, pln_pn0, pln_p0p, pln_p0n]
405 Partition_1 = geompy.MakePartition([Sphere], tools, [], [], geompy.ShapeType[
"SOLID"], 0, [])
406 geompy.addToStudy(Partition_1,
"Partition_1")
408 faces = geompy.SubShapeAllSortedCentres(Partition_1, geompy.ShapeType[
"FACE"])
414 geompy.addToStudyInFather(Partition_1, Face_1,
"Face_1")
415 geompy.addToStudyInFather(Partition_1, Face_2,
"Face_2")
416 geompy.addToStudyInFather(Partition_1, Face_3,
"Face_3")
418 Vector_5 = geompy.MakeVectorDXDYDZ(0, 20, 0)
419 geompy.addToStudy(Vector_5,
"Vector_5")
421 Rotation_1 = geompy.MakeRotation(Face_1, Vector_5, 90*math.pi/180.0)
422 Rotation_2 = geompy.MakeRotation(Face_1, Vector_5, 180*math.pi/180.0)
423 Rotation_3 = geompy.MakeRotation(Face_1, Vector_5, 270*math.pi/180.0)
425 geompy.addToStudy(Rotation_1,
"Rotation_1")
426 geompy.addToStudy(Rotation_2,
"Rotation_2")
427 geompy.addToStudy(Rotation_3,
"Rotation_3")
429 Vector_6 = geompy.MakeVectorDXDYDZ(0, 0, 20)
430 geompy.addToStudy(Vector_6,
"Vector_6")
432 Rotation_4 = geompy.MakeRotation(Face_1, Vector_6, 90*math.pi/180.0)
433 Rotation_5 = geompy.MakeRotation(Face_1, Vector_6, -90*math.pi/180.0)
434 geompy.addToStudy(Rotation_4,
"Rotation_4")
435 geompy.addToStudy(Rotation_5,
"Rotation_5")
437 Shell_1 = geompy.MakeShell([Face_1, Rotation_1, Rotation_2, Rotation_3, Rotation_4, Rotation_5])
438 Solid_1 = geompy.MakeSolid([Shell_1])