parametric lace shelving system_heath west

the following slides make up the presentation for the two-thirds review of the anzalone & tiazzoldi studio, which will be presented wednesday, novemeber 5th. we; sam, karen, jay, and myself are building, at full scale, 8′ x 12′, a shelving system within a lace pattern. the primary material is limited to wood, secondary materials consit of waterjet cut aluminum, for connection plates within the modules. the rhinoscript i am using to address design issues responds not only to material thicknesses, but also to programmatic intentions, which consists of height, width, depth, transparency, opacity, and shelving availabilty for storage. as a spatial divider, portions of the lace will become intentionally too small for any form of storage, underlining the ability of lace aesthetic to produce ‘other’ functions, such as atmospheres from light and shadows. this will derive from an internal lighting system that is under development.




081105_connection reveal

081105_assembly photos_a





081105_new patterns_a


Option Explicit
‘Script written by mark bearak & heath west
‘Script version 11 03 2008 16:30:55

Call SubdivideCrvs()
Sub SubdivideCrvs()
Dim dblDist, strCrv, arrExpCrvs, arrDirection, arrpts, i, intDivPt, strTempLn, arrCCX,j,k,l, arrPt(), arrCrvCnt, arrAttPt
Dim arrLoc : arrLoc = Rhino.GetObjects (“select the points”, 1)
Dim arrCrvs : arrCrvs = Rhino.GetObjects (“select the polygons to fracture”, 4)

For Each strCrv In arrCrvs
arrAttPt = Rhino.PointCoordinates(arrLoc(0))
arrCrvCnt = Rhino.CurveAreaCentroid (strCrv)
dblDist = Rhino.Distance (arrCrvCnt(0),arrAttPt)
dblDist = dblDist/2.1
arrDirection =  Array(0,0,0)
Dim intPts : intPts = 30
arrpts = Rhino.DivideCurve (strCrv,intPts)

For l = 0 To dblDist+1
intDivPt = fix(RandomNumber(1, intPts-1))
strTempLn = Rhino.AddLine (array(arrpts(intDivpt)(0)-100,arrpts(intDivpt)(1),arrpts(intDivpt)(2)),array(arrpts(intDivpt)(0)+100,arrpts(intDivpt)(1),arrpts(intDivpt)(2)))
arrCCX = Rhino.CurveCurveIntersection (strTempLn,strCrv)

For k = 0 To UBound(arrCCX)
ReDim Preserve arrPt(k)
arrPt(k) = arrCCX(k,1)
Call Rhino.AddCurve (arrPt)
Dim arrOffset: arrOffset = Rhino.OffsetCurve (strCrv, arrDirection, 0.04,,3)
Call Rhino.ObjectColor(arrCrvs, RGB(127, 255, 0))
Call Rhino.DeleteObject (strTempLn)
Call Rhino.Command (“seldup “)
Call Rhino.Command (“delete “)
Call Rhino.DeleteObjects(arrCrvs)
End Sub

Function RandomNumber(nMin, nMax)

RandomNumber = Null

If Not IsNumeric(nMin) Then Exit Function
If Not IsNumeric(nMax) Then Exit Function

If nMin >= nMax Then Exit Function

RandomNumber = Int((nMax – nMin + 1) * Rnd + nMin)

End Function


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s