RhinoPython镂空曲面

编程入门 行业动态 更新时间:2024-10-26 14:41:11

RhinoPython镂空<a href=https://www.elefans.com/category/jswz/34/1750153.html style=曲面"/>

RhinoPython镂空曲面

#coding:utf-8
import rhinoscriptsyntax as rsdef SrfPts(srf,intU,intV):ptDict={}#设定曲面的UV区间Udomain=rs.SurfaceDomain(srf,0)Vdomain=rs.SurfaceDomain(srf,1)print "Udomain:",Udomainprint "Vdomain:",Vdomain#设定曲面UV方向的步长stepU=(Udomain[1]-Udomain[0])/intUstepV=(Udomain[1]-Udomain[0])/intVprint "stepU:",stepUprint "stepV:",stepVfor i in range(intU+1):for j in range(intV+1):u=Udomain[0]+stepU*iv=Vdomain[0]+stepV*jpoint=rs.EvaluateSurface(srf,u,v)ptDict[(i,j)]=point# rs.AddPoint(point)for i in range(intU+1):for j in range(intV+1):if i>0 and j>0:center=findMidPt(ptDict[i,j],ptDict[i-1,j-1])curve1=rs.AddCurve((ptDict[i,j],center,ptDict[i,j-1]),3)curve2=rs.AddCurve((ptDict[i,j-1],center,ptDict[i-1,j-1]),3)curve3=rs.AddCurve((ptDict[i-1,j-1],center,ptDict[i-1,j]),3)curve4=rs.AddCurve((ptDict[i-1,j],center,ptDict[i,j]),3)outline=rs.JoinCurves([curve1,curve2,curve3,curve4],True)innerline=rs.AddCurve((ptDict[(i,j)],ptDict[(i,j-1)],ptDict[(i-1,j-1)],ptDict[(i-1,j)],ptDict[i,j]),3)rs.ScaleObject(innerline,center,(0.4,0.4,0.4))sweepline=rs.AddLine(ptDict[i,j-1],rs.CurveStartPoint(innerline))rs.AddSweep2([outline,innerline],[sweepline])rs.DeleteObject(sweepline)# rs.AddTextDot((i,j),ptDict[(i,j)])# rs.AddPoint(ptDict[i,j])def findMidPt(point1,point2):midPt=((point1[0]+point2[0])/2,(point1[1]+point2[1])/2,(point1[2]+point2[2])/2,)return midPtdef main():strSrf=rs.GetObject("select a surface",rs.filter.surface)intU=rs.GetInteger("How many u intervals",8)intV=rs.GetInteger("How many v intervals",8)# rs.HideObject(strSrf)SrfPts(strSrf,intU,intV)main()

 

更多推荐

RhinoPython镂空曲面

本文发布于:2024-02-26 09:47:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1702077.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:曲面   RhinoPython

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!