Tuesday, September 23, 2008

ControlPointArrange

Option Explicit

Call ControlPointArrange()
Sub ControlPointArrange()

'arrCount will hold 2 values that we'll retrieve later
'arrPoints is an array to hold the u*v amount of grid points
Dim arrCount(1), arrPoints(35), nCount, i, j
arrCount(0) = 6
arrCount(1) = 6
nCount = 0

'since we're starting at 0, we need to subtract 1 from the initial count
'this For Next Loop creates the grid of points (not visible - arrPoints just holds the points)
'Call Rhino.AddPoints(arrPoints) to see them

For i = 0 To arrCount(0) - 1
For j = 0 To arrCount(1) - 1
arrPoints(nCount) = Array(i*2, j*4, 0)
nCount = nCount + 1
Next
Next

'Call Rhino.AddPoints(arrPoints)
Call Rhino.AddSrfPtGrid(arrCount, arrPoints)


'----------------------------------------------------------------------------------------

Dim strObject, n
Dim arrGrips(), arrPoint, intGrips

strObject = Rhino.GetObject("Select objects")
'must enable grips before they can be manipulated
'intGrips is used to select the Object Grips of strObject

Call Rhino.EnableObjectGrips(strObject)
intGrips = Rhino.SelectObjectGrips(strObject)

'we have to resize the Array arrGrips() since we didn't declare a size

ReDim Preserve arrGrips(intGrips)

'since we start at 0, and arrGrips holds 36 points, we need to subtract 1 from the Upper Boundary of arrGrips

For n = 0 To UBound(arrGrips) - 1

'arrGrips is an Array that will hold the locations of the Grips of strObject
arrGrips(n) = Rhino.ObjectGripLocation(strObject, n)
'once we have an array that holds the original locations of the Grips
'we use the same Method to modify the locations
arrPoint = Rhino.ObjectGripLocation(strObject,n,Array(arrGrips(n)(0), arrGrips(n)(1),3*Rnd))
Next
End Sub

No comments: