Option Explicit 'Script written by 'Script copyrighted by 'Script version Monday, February 02, 2009 8:11:02 PM Call Main() Sub Main() Call Rhino.EnableRedraw(False) Call epicycloid(2, 4, 100) Call Rhino.EnableRedraw(True) End Sub Function epicycloid(a, b, count) epicycloid = Null 'a = radius: t = turns Dim i, q, t, m, x, y, z, arrOutput ReDim arrOutput(count) q=0 m= a*b For i = 0 To 1 Step 1/count t = 2*PI*i x = (m+a)*cos(t)-a*cos((m + a)*t/a) y = (m+a)*sin(t)-a*sin((m + a)*t/a) z = 0 arrOutput(q) = array(x,y,z) Call Rhino.addpoint(arrOutput(q)) q=q+1 Next epicycloid = arrOutput End Function