Imagining to use the same size of base material, all the height of the base is same and not exceeding the limit of it. The vertical position of the neck (converging point) is climbing and the size of opening is getting smaller related to the distance from the converging point.
Explicit
‘Script added by EunKyoung.Kim
‘Script copyrighted by EK2
‘Script version Tuesday, October 28, 2008 4:31:06 PM
Call Cleareverything()
Call Main()
Sub Main()
Dim arrPlane, i, j, strCrv(), strInnerCrv(), strSrf1, strSrf2, arrLftSrf1, arrLftSrf2, arrLftSrf3
For j = 0 To 5
For i = 0 To 10
ReDim Preserve strCrv(i)
ReDim Preserve strInnerCrv(i)
arrPlane = Rhino.PlaneFromPoints (Array(0,j*25,i*5), Array(1,j*25,i*5), Array(0,j*25+1,i*5))
If i < j+1 Then
strCrv(i) = Rhino.AddCircle (arrPlane, (15-i)/2)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, (15-i)/2-1)
If i = 0 Then
Call Rhino.MoveObject (strInnerCrv(i),Array(0,0,0),Array(0,0,1))
End If
Else
If i = j+1 Or i = j+2 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 3.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 2.0)
Else
strCrv(i) = Rhino.AddCircle (arrPlane, i-(j+1))
strInnerCrv(i) = Rhino.AddCircle (arrPlane, i-(j+1)-1)
End If
End If
If i = 0 Then
strSrf1 = Rhino.AddPlanarSrf (strCrv)
strSrf2 = Rhino.AddPlanarSrf (strInnerCrv)
End If
If i = 10 Then
arrLftSrf1 = Rhino.AddLoftSrf (Array(strCrv(i),strInnerCrv(i)))
End If
Next
arrLftSrf2 = Rhino.AddLoftSrf (strCrv,,,1)
arrLftSrf3 = Rhino.AddLoftSrf (strInnerCrv,,,1)
Call Rhino.JoinSurfaces (Array(arrLftSrf1(0),arrLftSrf2(0),arrLftSrf3(0),strsrf1(0),strsrf2(0)),True)
Call Rhino.deleteobjects (strCrv)
Call Rhino.DeleteObjects (strInnerCrv)
Next
End Sub
Sub Cleareverything()
Call Rhino.Command(“SelAll”)
Call Rhino.Command(“delete”)
End Sub
Archives