At the rs.MeshMeshIntersection help file, there stands, that this function returns “None” when not successful (I guess this means too: when two meshes do not intersect?), or on error.
But when I took a look at the mesh.py file, looks like when two meshes do not intersect, this function returns an empty list, not None:
def MeshMeshIntersection(mesh1, mesh2, tolerance=None): """Calculates the intersections of a mesh object with another mesh object Parameters: mesh1, mesh2 = identifiers of meshes tolerance[opt] = the intersection tolerance Returns: List of 3d point arrays that define the vertices of the intersection curves """ mesh1 = rhutil.coercemesh(mesh1, True) mesh2 = rhutil.coercemesh(mesh2, True) if tolerance is None: tolerance = Rhino.RhinoMath.ZeroTolerance polylines = Rhino.Geometry.Intersect.Intersection.MeshMeshAccurate(mesh1, mesh2, tolerance) if polylines: return list(polylines) return  # this line
Or did I get it all wrong?