Thursday, December 28, 2006

061228_rh4_flat panels onto nurbs surfaces...

Speculation onto temporary structures within low budget...
Problematic: descriptive geometry of complex curvature with flat panels...
Test protocol: plot within specific sequence (even numbers) flat planes, look at neighbors nearest points, and describe components via nurbs crv and planar srf...
Parameters: density, sequences, components...
Challenge: connexions has to be addressed as tolerance...
In process...

Tips'n tricks: very similar start as David Rutten code plotting flat planes onto nurbs surfaces...

Call WhoFramedTheSurface()
Sub WhoFramedTheSurface()
Dim idSurface : idSurface = Rhino.GetObject("Surface to frame", 8, True, True)
If IsNull(idSurface) Then Exit Sub

Dim intCount : intCount = Rhino.GetInteger("Number of iterations per direction", 20, 2)
If IsNull(intCount) Then Exit Sub

Dim uDomain : uDomain = Rhino.SurfaceDomain(idSurface, 0)
Dim vDomain : vDomain = Rhino.SurfaceDomain(idSurface, 1)
Dim uStep : uStep = (uDomain(1) - uDomain(0)) / intCount
Dim vStep : vStep = (vDomain(1) - vDomain(0)) / intCount

Dim u, v
Dim pt
Dim srfFrame

Call Rhino.EnableRedraw(False)
For u = uDomain(0) To uDomain(1) Step uStep
For v = vdomain(0) To vDomain(1) Step vStep
pt = Rhino.EvaluateSurface(idSurface, Array(u, v))

If Rhino.Distance(pt, Rhino.BrepClosestPoint(idSurface, pt)(0)) < 0.1 Then
srfFrame = Rhino.SurfaceFrame(idSurface, Array(u, v))
Call Rhino.AddPlaneSurface(srfFrame(0), _
Rhino.PointAdd(srfFrame(0), srfFrame(1)), _
Rhino.PointAdd(srfFrame(0), srfFrame(2)))
End If
Call Rhino.EnableRedraw(True)
End Sub

Enjoy and custom...