+ # GetShapesNearPoint(theShape, thePoint, theShapeType, theTolerance)
+ b0_faces_plus = geompy.GetShapesNearPoint(blocksComp, pb0_top_2_near, geompy.ShapeType["FACE"], 0.01)
+
+ geompy.addToStudyInFather(blocksComp, b0_faces_plus, "faces near point (40, 40, 40)")
+
+ # GetShapesOnPlane
+ faces_on_pln = geompy.GetShapesOnPlane(blocksComp, geompy.ShapeType["FACE"],
+ v_0pp, geompy.GEOM.ST_ONIN)
+ for face_i in faces_on_pln:
+ geompy.addToStudy(face_i, "Face on Plane (N = (0, 1, 1)) or below it")
+
+ # GetShapesOnPlaneIDs
+ faces_above_pln_ids = geompy.GetShapesOnPlaneIDs(blocksComp, geompy.ShapeType["FACE"],
+ v_0pp, geompy.GEOM.ST_OUT)
+ faces_above = geompy.CreateGroup(blocksComp, geompy.ShapeType["FACE"])
+ geompy.UnionIDs(faces_above, faces_above_pln_ids)
+ geompy.addToStudy(faces_above, "Group of faces above Plane (N = (0, 1, 1))")
+
+ # GetShapesOnPlaneWithLocation
+ Loc = geompy.MakeVertex(0, -50, 0)
+ edges_on_pln = geompy.GetShapesOnPlaneWithLocation(blocksComp, geompy.ShapeType["EDGE"],
+ v_y, Loc, geompy.GEOM.ST_ON)
+ for edge_i in edges_on_pln:
+ geompy.addToStudy(edge_i, "Edge on Plane (N = (0, -1, 0) & Location = (0, -50, 0)")
+
+ # GetShapesOnPlaneWithLocationIDs
+ edges_on_pln_ids = geompy.GetShapesOnPlaneWithLocationIDs(
+ blocksComp, geompy.ShapeType["EDGE"], v_y, Loc, geompy.GEOM.ST_ON)
+ group_edges_on_pln = geompy.CreateGroup(blocksComp, geompy.ShapeType["EDGE"])
+ geompy.UnionIDs(group_edges_on_pln, edges_on_pln_ids)
+ grname = "Group of edges on Plane (N = (0, -1, 0) & Location = (0, -50, 0))"
+ geompy.addToStudy(group_edges_on_pln, grname)
+
+ # GetShapesOnCylinder
+ edges_out_cyl = geompy.GetShapesOnCylinder(blocksComp, geompy.ShapeType["EDGE"],
+ vy, 55, geompy.GEOM.ST_OUT)
+ for edge_i in edges_out_cyl:
+ geompy.addToStudy(edge_i, "Edge out of Cylinder (axis = (0, 1, 0), r = 55)")
+
+ # GetShapesOnCylinderIDs
+ edges_in_cyl_ids = geompy.GetShapesOnCylinderIDs(blocksComp, geompy.ShapeType["EDGE"],
+ vy, 80, geompy.GEOM.ST_IN)
+ edges_in = geompy.CreateGroup(blocksComp, geompy.ShapeType["EDGE"])
+ geompy.UnionIDs(edges_in, edges_in_cyl_ids)
+ geompy.addToStudy(edges_in, "Group of edges inside Cylinder (axis = (0, 1, 0), r = 55)")
+
+ # GetShapesOnCylinderWithLocation
+ edges_out_cyl = geompy.GetShapesOnCylinderWithLocation(blocksComp, geompy.ShapeType["EDGE"],
+ vy, p11, 55, geompy.GEOM.ST_OUT)
+ for edge_i in edges_out_cyl:
+ geompy.addToStudy(edge_i, "Edge out of Cylinder (axis = (0, 1, 0), loc = (0, 0, 0), r = 55)")
+
+ # GetShapesOnCylinderWithLocationIDs
+ edges_in_cyl_ids = geompy.GetShapesOnCylinderWithLocationIDs(blocksComp, geompy.ShapeType["EDGE"],
+ vy, p11, 80, geompy.GEOM.ST_IN)
+ edges_in = geompy.CreateGroup(blocksComp, geompy.ShapeType["EDGE"])
+ geompy.UnionIDs(edges_in, edges_in_cyl_ids)
+ geompy.addToStudy(edges_in, "Group of edges inside Cylinder (axis = (0, 1, 0), loc = (0, 0, 0), r = 80)")
+
+ # GetShapesOnSphere
+ vertices_on_sph = geompy.GetShapesOnSphere(blocksComp, geompy.ShapeType["VERTEX"],
+ p0, 100, geompy.GEOM.ST_ON)
+ for vertex_i in vertices_on_sph:
+ geompy.addToStudy(vertex_i, "Vertex on Sphere (center = (0, 0, 0), r = 100)")
+
+ # GetShapesOnSphereIDs
+ vertices_on_sph_ids = geompy.GetShapesOnSphereIDs(blocksComp, geompy.ShapeType["VERTEX"],
+ p0, 100, geompy.GEOM.ST_ON)
+ vertices_on = geompy.CreateGroup(blocksComp, geompy.ShapeType["VERTEX"])
+ geompy.UnionIDs(vertices_on, vertices_on_sph_ids)
+ geompy.addToStudy(vertices_on, "Group of vertices on Sphere (center = (0, 0, 0), r = 100)")
+
+ # GetShapesOnQuadrangle
+
+ geompy.addToStudy(f12, "F12" )
+
+ bl = geompy.MakeVertex(10,-10, 0)
+ br = geompy.MakeVertex(40,-10, 0)
+ tr = geompy.MakeVertex(40, 20, 0)
+ tl = geompy.MakeVertex(10, 20, 0)
+ qe1 = geompy.MakeEdge(bl, br)
+ qe2 = geompy.MakeEdge(br, tr)
+ qe3 = geompy.MakeEdge(tr, tl)
+ qe4 = geompy.MakeEdge(tl, bl)
+ quadrangle = geompy.MakeWire([qe1, qe2, qe3, qe4])
+ geompy.addToStudy(quadrangle, "Quadrangle")
+
+ edges_onin_quad = geompy.GetShapesOnQuadrangle(f12, geompy.ShapeType["EDGE"],
+ tl, tr, bl, br, geompy.GEOM.ST_ONIN)
+ comp = geompy.MakeCompound(edges_onin_quad)
+ geompy.addToStudy(comp, "Edges of F12 ONIN Quadrangle")
+ if len( edges_onin_quad ) != 4:
+ print "Error in GetShapesOnQuadrangle()"
+
+ # GetShapesOnQuadrangleIDs
+ vertices_on_quad_ids = geompy.GetShapesOnQuadrangleIDs(f12, geompy.ShapeType["VERTEX"],
+ tl, tr, bl, br, geompy.GEOM.ST_ON)
+ vertices_on_quad = geompy.CreateGroup(f12, geompy.ShapeType["VERTEX"])
+ geompy.UnionIDs(vertices_on_quad, vertices_on_quad_ids)
+ geompy.addToStudy(vertices_on_quad, "Group of vertices on Quadrangle F12")
+
+ # GetShapesOnBox
+ edges_on_box = geompy.GetShapesOnBox(b0, part, geompy.ShapeType["EDGE"],
+ geompy.GEOM.ST_ON)
+ comp = geompy.MakeCompound(edges_on_box)
+ geompy.addToStudy(comp, "Edges of part ON box b0")
+ if len( edges_on_box ) != 12:
+ print "Error in GetShapesOnBox()"
+
+ # GetShapesOnBoxIDs
+ faces_on_box_ids = geompy.GetShapesOnBoxIDs(b0, part, geompy.ShapeType["FACE"],
+ geompy.GEOM.ST_ON)
+ faces_on_box = geompy.CreateGroup(part, geompy.ShapeType["FACE"])
+ geompy.UnionIDs(faces_on_box, faces_on_box_ids)
+ geompy.addToStudyInFather(part, faces_on_box, "Group of faces on box b0")
+
+ # Prepare arguments for GetShapesOnShape
+ sph1 = geompy.MakeSphere(50, 50, 50, 40)
+ sph2 = geompy.MakeSphere(50, 50, -50, 40)
+ pcyl = geompy.MakeVertex(50, 50, -50)
+ cyli = geompy.MakeCylinder(pcyl, vz, 40, 100)
+ fuse = geompy.MakeFuse(sph1, cyli)
+ sh_1 = geompy.MakeFuse(fuse, sph2)
+ # As after Fuse we have a compound, we need to obtain a solid from it
+ #shsh = geompy.SubShapeAll(fuse, geompy.ShapeType["SOLID"])
+ #sh_1 = shsh[0]
+ geompy.addToStudy(sh_1, "sh_1")
+
+ # GetShapesOnShape
+ faces_in_sh = geompy.GetShapesOnShape(sh_1, part, geompy.ShapeType["FACE"],
+ geompy.GEOM.ST_IN)
+ comp = geompy.MakeCompound(faces_in_sh)
+ geompy.addToStudy(comp, "Faces of part IN shape sh_1")
+ if len(faces_in_sh) != 11:
+ print "Error in GetShapesOnShape()"
+
+ # GetShapesOnShapeAsCompound
+ faces_in_sh_c = geompy.GetShapesOnShapeAsCompound(sh_1, part, geompy.ShapeType["FACE"],
+ geompy.GEOM.ST_IN)
+ geompy.addToStudy(faces_in_sh_c, "Faces of part IN shape sh_1 (as compound)")
+
+ # GetShapesOnShapeIDs
+ edges_in_sh_ids = geompy.GetShapesOnShapeIDs(sh_1, part, geompy.ShapeType["EDGE"],
+ geompy.GEOM.ST_IN)
+ edges_in_sh = geompy.CreateGroup(part, geompy.ShapeType["EDGE"])
+ geompy.UnionIDs(edges_in_sh, edges_in_sh_ids)
+ geompy.addToStudyInFather(part, edges_in_sh, "Group of edges in shape sh_1")
+ if len(edges_in_sh_ids) != 15:
+ print "Error in GetShapesOnShapeIDs()"
+
+ # Prepare arguments for GetInPlace and GetInPlaceByHistory
+ box5 = geompy.MakeBoxDXDYDZ(100, 100, 100)
+ box6 = geompy.MakeTranslation(box5, 50, 50, 0)
+
+ geompy.addToStudy(box5, "Box 5")
+ geompy.addToStudy(box6, "Box 6")
+
+ part = geompy.MakePartition([box5], [box6])
+ geompy.addToStudy(part, "Partitioned")
+
+ box5_faces = geompy.SubShapeAll(box5, geompy.ShapeType["FACE"])
+ box6_faces = geompy.SubShapeAll(box6, geompy.ShapeType["FACE"])
+
+ for ifa in range(6):
+ geompy.addToStudyInFather(box5, box5_faces[ifa], "Face" + `ifa + 1`)
+ geompy.addToStudyInFather(box6, box6_faces[ifa], "Face" + `ifa + 1`)