evaluate Surface: UV grid [class 20091208/11]
script below evaluates a surface and creates a UV point grid on it.
Option Explicit
'Script written by onur yuce gun
'Script copyrighted by
'Script version Friday, December 11, 2009 11:25:09 AM
Call Main()
Sub Main()
'get input surface
Dim srf
srf = Rhino.GetObject("select surface",8)
'get the division numbers for U and v directions
Dim uRes
Dim vRes
uRes = rhino.GetInteger ("enter u division number",10)
vRes = rhino.GetInteger ("enter v division number",10)
'call the function to evaluate the surface
Dim uvPt
uvPt = srfPt(srf, uRes, vRes)
End Sub
Function srfPt(iSrf, iUNum, iVNum) 'inputs
'define domain variables
Dim domU_iSrf
Dim domV_iSrf
'find surface domain
domU_iSrf = Rhino.SurfaceDomain (iSrf,0)
domV_iSrf = Rhino.SurfaceDomain (iSrf,1)
'define uv parameter variables
Dim uParam
Dim vParam
Dim uvParam
'define variable For surface points
Dim pt
'convert pt into an array
ReDim pt(iuNum, ivNum)
'evaluate the surface
'at given parameters
'to generate a UV grid
Dim i,j
For i = 0 To iuNum
For j = 0 To ivNum
uParam = (domU_iSrf(1)/iuNum)*i
vParam = (domV_iSrf(1)/ivNum)*j
uvParam = Array(uParam,vParam)
pt(i,j) = rhino.EvaluateSurface (iSrf, uvParam)
rhino.AddPoint pt(i,j)
Next
Next
srfPt = pt
End Function
Advertisement
