Option Explicit Call PointSpiral() Sub PointSpiral() Dim arrPoint(2) Dim t, pi: pi = Rhino.Pi Dim strObject, dblSize Dim arrCorn(7) dblSize = Rhino.GetReal("Input the Size of the box", 2) If (VarType(dblSize) = vbNull Or (dblSize <= 0)) Then Exit Sub ' This is an array - a list of points. ' These points define the corners of a box (size x size x size) ' the centre of the base of the box is 0,0,0 arrCorn(0) = Array(((-1*dblSize)/2),((-1*dblSize)/2),0) arrCorn(1) = Array((dblSize/2),((-1*dblSize)/2),0) arrCorn(2) = Array((dblSize/2),(dblSize/2),0) arrCorn(3) = Array(((-1*dblSize)/2),(dblSize/2),0) arrCorn(4) = Array(((-1*dblSize)/2),((-1*dblSize)/2),dblSize) arrCorn(5) = Array((dblSize/2),((-1*dblSize)/2),dblSize) arrCorn(6) = Array((dblSize/2),(dblSize/2),dblSize) arrCorn(7) = Array(((-1*dblSize)/2),(dblSize/2),dblSize) ' strObject is the temporary "identifier" for the box. It is its current name. strObject = Rhino.AddBox (arrCorn) Call Rhino.EnableRedraw(False) ' This statement turns off the refresh of graphics between each iteration of the loop. ' With this set to False the script will run faster, but there will not be any "animation" of the process. For t = 0 To 60 Step 0.5 strObject = Rhino.AddBox (arrCorn) Rhino.ScaleObject strObject, Array(0,0,0), array(t,1,1) arrPoint(0) = (t * Sin(t)) arrPoint(1) = (t * Cos(t)) arrPoint(2) = 0 Call Rhino.Print(Rhino.Pt2Str(arrPoint, 3)) Rhino.MoveObject strObject, Array(0,0,0), arrPoint 'Call Rhino.AddPoint(arrPoint) Next Call Rhino.EnableRedraw(True) End Sub