parametric realizations fall 2008

Entries tagged as ‘Hyunchang Cho’

Final Project Description

November 13, 2008 · Leave a Comment

We would like to make furniture which has various heights and curvatures on its surface. Initiating with the idea that different height and curvature can make various function, parametrically generated furniture allows continuous but function-various surface. It can be used as table, chair or shelve in each part.

We start to think about the rib structure rather than continuous section cut in a sense that it takes more strength with less material. If the rib-structuring method lets better strength, it is also possible that we can use lighter material and, accordingly, a different machine which is easy to deal with.

*Referencing Images

#1 from SoftOfficeNYC

9 101

#2 from SoftOfficeNYC

41 5

#3 from Matthias Pliessni

matthias-pliessnig matthias-pliessnig2

Categories: I+A+S
Tagged: ,

hyunchang cho-wk2

November 7, 2008 · Leave a Comment

lamp-wk2

Option Explicit
‘Script written by Hyunchang Cho
‘Script copyrighted by gsapp
‘Script version Thursday, November 06, 2008 2:30:34 AM

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, arrNewPte, arrNewPtf
 Dim 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,24)
   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*3/5)
    arrNewPtb = array(arrNewPta(0),arrNewPta(1),arrNewPta(2)-dblDist)
    arrNewPtf = Rhino.Polar (arrPt, k, (dblDist*1.5))
    arrNewPtc = array(arrNewPtf(0),arrNewPtf(1),arrNewPtf(2)-(dblDist*2))
    arrNewPtd = array(arrPt(0),arrPt(1),arrPt(2)-(dblDist*3))
    arrNewPte = array(arrPt(0),arrPt(1),arrPt(2)-(dblDist*5))    
    
    strCrva(counter) = Rhino.AddLine (arrPt, arrNewPta)
    strCrvb(counter) = Rhino.AddCurve (array(arrNewPta,arrNewPtb,arrNewPtc,arrNewPtd,arrNewPte))
    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),5)
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

Categories: Homework
Tagged:

Hyunchang Cho – rotating vase

October 29, 2008 · Leave a Comment

Option Explicit
‘Script written by HyunChang Cho
‘Script copyrighted by team H
‘Script version Tuesday, October 28, 2008 10:34:18 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*(j+2)), array(1,j*25,i*(j+2)), array(0,j*25+1,i*(j+2)))
   If i < j+3 Then
    strCrv(i) = Rhino.AddCircle (arrPlane, (15-i)/3)
    strInnerCrv(i) = Rhino.AddCircle (arrPlane, (15-i)/3-1)
    If i = 0 Then
     Call rhino.MoveObject (strInnerCrv(i),array(0,0,0),array(0,0,1))
    End If
   Else
    If i < 2*j Then
     strCrv(i) = Rhino.AddCircle (arrPlane, 2.0)
     strInnerCrv(i) = Rhino.AddCircle (arrPlane, 1.0)
    Else
    strCrv(i) = Rhino.AddCircle (arrPlane, i)
    strInnerCrv(i) = Rhino.AddCircle (arrPlane, i-1)
    End If
   End If 
   
   If i > 0 Then
    Call Rhino.MoveObject (strCrv(i), array(0,j*25,i*(j+2)), array(0,j*25+(j+2),i*(j+2)))
    Call Rhino.MoveObject (strInnerCrv(i), array(0,j*25,i*(j+2)), array(0,j*25+(j+2),i*(j+2)))
    Call Rhino.RotateObject (strCrv(i), array(0,j*25,i*(j+2)), 12*i*(j+1))
    Call Rhino.RotateObject (strInnerCrv(i), array(0,j*25,i*(j+2)), 12*i*(j+1))
   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

Categories: Homework
Tagged: