Tag Archives: Therese Diede

FINAL PROJECT

Sina Mesdaghi

Therese Diede

Call Main()
Sub Main()
Dim i,j,d,k,p,q,u,v, arrPlane, Circle, strAttractor, strPath, extrude, arrPoint, arrPoints, intLoop, arrRndNumber, strPoints()
Dim UDomain, VDomain, UStep, VStep, dblDistance, arrAttractor, testDistance
Dim intU : intU = 100 ‘Horizontal
Dim intV : intV = 1 ‘Vertical
ReDim arrCrvPt(intU)
ReDim arrCrv(intV)
ReDim arrFrame(intU,intV)
ReDim arrPts(intU,intV)
ReDim arrPtNormal(intU,intV)
Dim dblMatThick : dblMatThick = 0.25
For q = 0 To 4
For p = 1 To 5
arrPlane = Rhino.PlaneFromPoints (Array(p*8,q*8,0), Array(p*8,q*8+1,0), Array(p*8+1,q*8,0))
circle = Rhino.AddCircle (arrPlane, 3.5)
strPath = Rhino.AddLine (Array(20,30,0), Array(20,30,dblMatThick/2))
extrude = Rhino.ExtrudeCurve (circle, strPath)
arrPoints = Rhino.DivideCurve (circle,(4+p*4))
intLoop = Random(0+p*3, UBound(arrPoints))
If intLoop < 2 Then intLoop = 2
For j = 0 To IntLoop
ReDim Preserve strPoints(j)
arrRndNumber = Random(0, UBound(arrPoints))
arrPoint = arrPoints(arrRndNumber)
strPoints(j) = Rhino.AddPoint (arrPoint)
Next
ReDim arrAttractors(UBound(strPoints))
d = (p+2)*20
k=0
For Each strAttractor In strPoints
arrAttractors(k) = Rhino.pointcoordinates (strAttractor)
k=k+1
Next
UDomain = Rhino.SurfaceDomain(extrude, 0)
VDomain = Rhino.SurfaceDomain(extrude, 1)
UStep = (UDomain(1) – UDomain(0)) / intU
VStep = (VDomain(1) – VDomain(0)) / intV
For j = 0 To intV
For i = 0 To intU
u = UDomain(0) + UStep * i
v = VDomain(0) + vStep * j
arrFrame(i,j) = Rhino.SurfaceFrame (extrude, Array(U,V))
dblDistance = d
For Each arrAttractor In arrAttractors
testDistance = Rhino.Distance (arrFrame(i,j)(0), arrAttractor)
If testDistance < dblDistance Then
dblDistance = testDistance
End If
Next
dblDistance = dblDistance/1
arrPtNormal(i,j) = Rhino.PointAdd(arrFrame(i,j)(0), Rhino.VectorScale (arrFrame(i,j)(3),dblDistance+(j*0.5)))
arrCrvPt(i) = arrPtNormal(i,j)
Next
arrCrv(j) = Rhino.AddCurve (arrCrvPt)
Next
Call Rhino.addLoftSrf (arrCrv)
Call Rhino.DeleteObjects (strPoints)
Call Rhino.DeleteObject (extrude)
Call Rhino.addLoftSrf (Array(circle,arrCrv(0)))
Call Rhino.SelectObject (arrCrv(1))
Call Rhino.Command (“PlanarSrf “)
Call Rhino.UnselectAllObjects
Call Rhino.MoveObject (circle, Array(0,0,0),Array(0,0,dblMatThick+0.1))
Call Rhino.OffsetCurve (circle, Array(0,0,0), 0.125)
Call Rhino.deleteObject (circle)
Call Rhino.deleteObjects (arrCrv)

Next
Next

End Sub

Function Random(nMin, nMax)
Random = Int((nMax – nMin)*Rnd + nMin)
End Function

final_render

final_process1

Therese Diede _ lights _wk2

Option Explicit
‘Script written by mark.bearak, adapted by therese.diede

‘Script copyrighted by dtls.Architecture

‘Script version Wednesday, November 5, 2008 10:30:00 PM

Call Delete()

Call Main()

Sub Main()

Dim arrLoc : arrLoc = Rhino.GetPoint (“Select your locator”)

Dim dblWidth : dblWidth = Rhino.GetReal (“how wide Is your material”,.125)

Dim arrPt, i, j, k, dblDist, arrNewPta, arrNewPtb, arrNewPtc, arrNewPtd, strCrva(), strCrvb(), counter, arrFinalCrvsa, arrFinalCrvsb

Dim strSrfa, arrSrfsa, strSrfb, arrSrfsb, strUnrollSrf

For i = 0 To 72 Step 24

For j = 0 To 168 Step 24

arrPt = Array(i,j,120)

dblDist = Rhino.Distance (arrLoc, arrPt)

dblDist = dblDist/12

If dblDist > 8.5 Then dblDist = 8.5

If dblDist < 2 Then dblDist = 2

counter = 0

For k = -180 To 90 Step 90

ReDim Preserve strCrva(counter)

ReDim Preserve strCrvb(counter)

arrNewPta = Rhino.Polar (arrPt, k, dblDist)

arrNewPtb = Array(arrNewPta(0),arrNewPta(1),arrNewPta(2)-(dblDist*4))

arrNewPtc = Array(arrPt(0),arrPt(1),arrPt(2)-(dblDist*4))

arrNewPtd = Array(arrPt(0),arrPt(1),arrPt(Sin(i/24))-(dblDist*4))

strCrva(counter) = Rhino.AddLine (arrPt, arrNewPta)

strCrvb(counter) = Rhino.AddCurve (Array(arrNewPta,arrNewPtb,arrNewPtc,arrNewPtd))

counter = counter+1

Next

arrFinalCrvsa = Rhino.JoinCurves (Array(strCrva(0),strCrvb(0),strCrva(2),strCrvb(2)),True)

arrFinalCrvsb = Rhino.JoinCurves (Array(strCrva(1),strCrvb(1),strCrva(3),strCrvb(3)),True)

arrSrfsa = Rhino.AddPlanarSrf (arrFinalCrvsa)

For Each strSrfa In arrSrfsa

Call Rhino.SelectObject (strSrfa)

Call Rhino.Command (“unrollsrf e=n enter”)

Call Rhino.UnselectAllObjects

strUnrollSrf = Rhino.FirstObject

Call Unrolla(strUnrollSrf, Array(i*2,j*2),dblWidth)

Next

arrSrfsb = Rhino.AddPlanarSrf (arrFinalCrvsb)

For Each strSrfb In arrSrfsb

Call Rhino.SelectObject (strSrfb)

Call Rhino.Command (“unrollsrf e=n enter”)

Call Rhino.UnselectAllObjects

strUnrollSrf = Rhino.FirstObject

Call Unrollb(strUnrollSrf, Array(i*2,(j*2)-17),dblWidth)

Next

Next

Next

End Sub

Sub Delete()

Call Rhino.Command (“selall “)

Call Rhino.Command (“delete “)

End Sub

Function Unrolla(strSrf,arrLoc,dblWidth)

Dim arrBoundingBox, strCrv, strCrvb, arrCrvs

arrBoundingBox = Rhino.BoundingBox (strSrf)

arrCrvs = Rhino.DuplicateSurfaceBorder (strSrf)

Call Rhino.DeleteObject (strSrf)

strCrv = Rhino.AddLine (Array(arrBoundingBox(0)(0),(arrBoundingBox(0)(1)+arrBoundingBox(3)(1))/2),Array((arrBoundingBox(0)(0)+arrBoundingBox(1)(0))/2,(arrBoundingBox(1)(1)+arrBoundingBox(2)(1))/2))

Call Rhino.MoveObject (strCrv, Array(0,0),Array(arrLoc(0),arrLoc(1)+dblWidth/2))

strCrvb = Rhino.CopyObject (strCrv, Array(0,0),Array(0,0-(dblWidth)))

Call Rhino.MoveObjects (arrCrvs, Array(0,0),arrLoc)

Call Rhino.addLine (Rhino.CurveStartPoint (strCrv),Rhino.CurveStartPoint (strCrvb))

Call Rhino.addLine (Rhino.CurveEndPoint (strCrv),Rhino.CurveEndPoint (strCrvb))

Call Rhino.AddText (arrLoc(0)/48 & arrLoc(1)/48, Array(arrLoc(0),(arrLoc(1))-25,0),6)

End Function

Function Unrollb(strSrf,arrLoc,dblWidth)

Dim arrBoundingBox, strCrv, strCrvb, arrCrvs

arrBoundingBox = Rhino.BoundingBox (strSrf)

arrCrvs = Rhino.DuplicateSurfaceBorder (strSrf)

Call Rhino.DeleteObject (strSrf)

strCrv = Rhino.AddLine (Array(arrBoundingBox(1)(0),(arrBoundingBox(0)(1)+arrBoundingBox(3)(1))/2),Array((arrBoundingBox(0)(0)+arrBoundingBox(1)(0))/2,(arrBoundingBox(1)(1)+arrBoundingBox(2)(1))/2))

Call Rhino.MoveObject (strCrv, Array(0,0),Array(arrLoc(0),arrLoc(1)+dblWidth/2))

strCrvb = Rhino.CopyObject (strCrv, Array(0,0),Array(0,0-(dblWidth)))

Call Rhino.MoveObjects (arrCrvs, Array(0,0),arrLoc)

Call Rhino.addLine (Rhino.CurveStartPoint (strCrv),Rhino.CurveStartPoint (strCrvb))

Call Rhino.addLine (Rhino.CurveEndPoint (strCrv),Rhino.CurveEndPoint (strCrvb))

 

 

End Function

td_lights_wk2

final project proposal

We have two ideas for a final project.

1. First is to write a script for the prototype urban fabric with parameters related to light, relationship between buildings, and parkspace. The final project would be a 1:250 model of the urban fabric. The material would be 3-D printed plastic plus laser-cut plexiglass for hybrid circulation.

2. Second is to script a set of kitchen table ware, morphing a plate into a bowl into a cup into a wine glass.

Therese Diede _ vase _wk1

Option Explicit
‘Script written by Mark Bearak, adapted by Therese Diede
‘Script copyrighted by dtls.Architecture
‘Script version Tuesday, October 28, 2008 5:25:04 PM

Call Main()
Sub Main()
Dim arrPlane, i, j, strCrv(), strInnerCrv(), strSrf1, strSrf2, arrLftSrf1, arrLftSrf2, arrLftSrf3
For j = 0 To 5
For i = 0 To 15
ReDim Preserve strCrv(i)
ReDim Preserve strInnerCrv(i)
arrPlane = Rhino.PlaneFromPoints (Array(0,j*25,i*(j+1)), Array(1,j*25,i*(j+1)), Array(0,j*25+1,i*(j+1)))
If i < j-2 Then
strCrv(i) = Rhino.AddEllipse (arrPlane, 9.0, 12.0)
strInnerCrv(i) = Rhino.AddEllipse (arrPlane, 8.0, 11.0)
If i = 0 Then
Call Rhino.MoveObject (strInnerCrv(i),Array(0,0,0),Array(0,0,1))
End If
Else
strCrv(i) = Rhino.AddEllipse (arrPlane, 20.0, 15.0)
strInnerCrv(i) = Rhino.AddEllipse (arrPlane, 19.0, 14.0)
End If
If i = j-2 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 4.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 3.0)
End If
If i = j-1 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 4.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 3.0)
End If
If i = j Then
strCrv(i) = Rhino.AddCircle (arrPlane, 4.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 3.0)
End If
If i = j+1 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 4.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 3.0)
End If
If i = j+2 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 4.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 3.0)
End If
If i = j+3 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 4.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 3.0)
End If
If i = j+4 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 4.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 3.0)
End If
If i = j+5 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 8.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 7.0)
End If
If i = j+6 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 12.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 11.0)
End If
If i = j+7 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 22.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 21.0)
End If
If i = j+8 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 22.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 21.0)
End If
If i = j+9 Then
strCrv(i) = Rhino.AddCircle (arrPlane, 22.0)
strInnerCrv(i) = Rhino.AddCircle (arrPlane, 21.0)
End If
If i = 0 Then
strSrf1 = Rhino.AddPlanarSrf (strCrv)
strSrf2 = Rhino.AddPlanarSrf (strInnerCrv)
End If
If i = 15 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