import rhinoscriptsyntax as rs

idSurface = rs.GetObject("Surface to frame", 8, True, True)
intCount = rs.GetInteger("Number of iterations per direction", 20, 2)
uDomain = rs.SurfaceDomain(idSurface, 0)
vDomain = rs.SurfaceDomain(idSurface, 1)
uStep = (uDomain[1] - uDomain[0]) / intCount
vStep = (vDomain[1] - vDomain[0]) / intCount
rs.EnableRedraw(False)
for u in range(uDomain[0],uDomain[1], uStep):
    for v in range(vdomain[0],vDomain[1],vStep):
        pt = rs.EvaluateSurface(idSurface, [u, v])
        if rs.Distance(pt, rs.BrepClosestPoint(idSurface, pt)[0]) < 0.1:
            srfFrame = rs.SurfaceFrame(idSurface, [u, v])
            rs.AddPlaneSurface(srfFrame, 1.0, 1.0)
rs.EnableRedraw(True)