#coding:utf-8
import rhinoscriptsyntax as rs
def NormalSrf(Srf,intU,intV):
Udomain=rs.SurfaceDomain(Srf,0)
Vdomain=rs.SurfaceDomain(Srf,1)
stepU=(Udomain[1]-Udomain[0])/intU
stepV=(Udomain[1]-Udomain[0])/intV
ptMtx={}
for i in range(intU+1):
for j in range(intV+1):
u=Udomain[0]+stepU*i
v=Vdomain[0]+stepV*j
point=rs.EvaluateSurface(Srf,u,v)
rs.AddPoint(point)
ptMtx[(i,j)]=point
vecNormal=rs.SurfaceNormal(Srf,(u,v))
print(vecNormal)
#以直线显示曲面法线
vecNormal=rs.PointAdd(point,vecNormal*5)
rs.AddLine(point,vecNormal)
def main():
srf=rs.GetObject("select a surface",rs.filter.surface)
int_u=rs.GetInteger("input intervals in x direction",10)
int_v=rs.GetInteger("input intervals in y direction",10)
NormalSrf(srf,int_u,int_v)
main()