def bbx(shape: TopoDS_Shape, tol=TOLERANCE): bbox = Bnd_Box() bbox.SetGap(tol) brepbndlib_Add(shape, bbox) # print(bbox.IsVoid()) if bbox.IsVoid() is True: return None return bbox
def get_boundingbox(shape: TopoDS_Shape, tol=TOLERANCE): """ :param shape: TopoDS_Shape such as TopoDS_Face :param tol: tolerance :return: [xmin, ymin, zmin, xmax, ymax, zmax] """ bbox = Bnd_Box() bbox.SetGap(tol) brepbndlib_Add(shape, bbox) # print(bbox.IsVoid()) if bbox.IsVoid() is True: return None # xmin, ymin, zmin, xmax, ymax, zmax = bbox.Get() cmin = bbox.CornerMin() cmax = bbox.CornerMax() xmin, ymin, zmin = cmin.X(), cmin.Y(), cmin.Z() xmax, ymax, zmax = cmax.X(), cmax.Y(), cmax.Z() return xmin, ymin, zmin, xmax, ymax, zmax