#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={}
normMtx={}
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))
vecNormal=rs.PointAdd(point,vecNormal*3)
normMtx[(i,j)]=vecNormal
for i in range(intU+1):
for j in range(intV+1):
if i>0 and j>0:
curvebottom=rs.AddCurve((ptMtx[(i,j)],ptMtx[(i-1,j)],
ptMtx[(i-1,j-1)],ptMtx[(i,j-1)],ptMtx[(i,j)]))
curvetop=rs.AddCurve((normMtx[(i,j)],normMtx[(i-1,j)],
normMtx[(i-1,j-1)],normMtx[(i,j-1)],no
RhinoPython生成阵列放样曲面
最新推荐文章于 2025-11-20 08:15:05 发布
此篇博客介绍如何使用Python的RhinoScriptSyntax库创建基于给定参数的表面轮廓,通过划分U和V方向的区间,并利用SurfaceNormal和AddLoftSrf函数实现曲面的自动 lofting。适合对GIS或CAD编程感兴趣的读者。


1099

被折叠的 条评论
为什么被折叠?



