Tuesday, 5 February 2008

080205_Vertical Proliferation 2



















As promised, some improvements on the previous script; this time the "vertical proliferation" operates through a better control of the points defining the overall structure.Parameters: Number of floors, number of control points defining floor plates, number of points along the perimeter of each floor plate. The current set up allow for a more precise determination of the overall geometry as well as a better control on local manipulations. the points displaced at the perimeter of each floor can be used, in fact, to further articulate the skin.
These structures remind me some images of the Japanese Metabolism; in particular, projects like the 1961's Helix City by Kisho Kurokawa. In this case the helix became some slightly more complex parabolas; multiplying for sine or cosine functions the displacement of the control points of each floor plate increases the whirling rise. The results are some quite articulated, still symmetrical, vertical vortex structures.


































Call Main()
Sub Main()

Dim N
N = Rhino.GetInteger ("Number", 25, 1 )
Dim p
p= 2*Rhino.GetInteger ("Number", 3, 1)
Dim radius
radius= Rhino.GetInteger ("Number", 5, 1)

Dim Curve
Dim arrStoreys()
Dim arrPoints()
Dim Columns()
Dim arrCurve()
Dim x

Dim i, j
For i= 0 To N

For j=0 To p Step 2
ReDim Preserve arrPoints(j)
arrPoints(j) = array((radius*(N-i/2)/N)*(cos(2*Rhino.PI*j/p)),(radius*(N-i/2)/N)*(sin(2*Rhino.PI*j/p)), i)
If j+1 <>
















End If

Next

Call Rhino.AddPoints (arrPoints)
Curve = Rhino.Addcurve (arrPoints,1)

ReDim Preserve arrStoreys(i)
arrStoreys(i) = arrPoints

Next

For i=0 To N
ReDim Preserve Columns(i)
Columns(i) = (arrStoreys(i)(1))
Next
Call Rhino.Addpolyline (Columns)



End Sub















The script was developed in collaboration with eng. Carlo Diaco (openSystems)

0 comments: