As an academic task we were asked to design a water botlle made by injection molded pocess, for my design i proposed a bottle with fluid forms that would be similar to the ones we find in water in a natural enviorment, to achieve this forms i made a script in rhino that gererates diferent sections and the loft them togheter to generate a column with fluid forms , after that i altered the column using t-splines plug-in for rhino to obtain the final form , with the correct size and the exact volume needed for the project.
The material i proposed for my design is the PLA 700D (poliactide acid) wich is very similar to PET with the difference that PLA comes from corn wich is an abundant resource, this material also uses 50% less enegry to manufacture it compared to other polymers derived from oil . Using this materials not only represents a saving in energy but also a closed life cicle of product because once we use our bottle we can make composte with it and it can be used to make more corn wich will be used to make more bottles. For more information visit http://www.natureworksllc.com
An image of the molds proposed for manufacture
Script developded for the project.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Option Explicit
'Script written by Rodrigo Medina
'Script copyrighted by design playgrounds
'Script version thursday , 11 -04-08
Call BottleSurface()
Sub BottleSurface()
Dim i, IntUpper : IntUpper =18
Dim arrMajorPointb()
Dim arrMajorPointc()
Dim arrMajorPointd()
Dim arrMajorPointe()
Dim arrMajorPointf()
Dim arrMajorCross()
For i = 0 To IntUpper
ReDim Preserve arrMajorPointa(IntUpper)
ReDim Preserve arrMajorPointb(IntUpper)
ReDim Preserve arrMajorPointc(IntUpper)
ReDim Preserve arrMajorPointd(IntUpper)
ReDim Preserve arrMajorPointe(IntUpper)
ReDim Preserve arrMajorPointf(IntUpper)
ReDim Preserve arrMajorPointg(IntUpper)
ReDim Preserve arrMajorPointh(IntUpper)
ReDim Preserve arrMajorPointi(IntUpper)
ReDim Preserve arrMajorPointj(IntUpper)
ReDim Preserve arrMajorPointk(IntUpper)
ReDim Preserve arrMajorPointl(IntUpper)
ReDim Preserve arrMajorCross(IntUpper)
arrMajorPointa(i) = Rhino.PointCoordinates (Rhino.AddPoint(array (cos(i),sin(i),i)))
arrMajorPointb(i) = Rhino.PointCoordinates (Rhino.AddPoint (array(2,5,i)))
arrMajorPointc(i) = Rhino.PointCoordinates (Rhino.AddPoint (array(3,1.5,i)))
arrMajorPointd(i) = Rhino.PointCoordinates (Rhino.AddPoint (array(5,-sin(i),i)))
arrMajorPointe(i) = Rhino.PointCoordinates (Rhino.AddPoint (array(3,-1.5,i)))
arrMajorPointf(i) = Rhino.PointCoordinates (Rhino.AddPoint (array(3,-4,i)))
arrMajorPointg(i) = Rhino.PointCoordinates (Rhino.AddPoint (array(sin(i),-cos(i),i)))
arrMajorPointh(i) = Rhino.PointCoordinates (Rhino.AddPoint (array(-3,-4,i)))
arrMajorPointi(i) = Rhino.PointCoordinates (Rhino.AddPoint (array(-3,-1.5,i)))
arrMajorPointj(i) = Rhino.PointCoordinates (Rhino.AddPoint (array(-5,cos(i),i)))
arrMajorPointk(i) = Rhino.PointCoordinates (Rhino.AddPoint (array(-3,1.5,i)))
arrMajorPointl(i) = Rhino.PointCoordinates (Rhino.AddPoint (array(-3,4,i)))
arrMajorCross(i) = Rhino.AddCurve (Array(arrMajorPointa(i),arrMajorPointb(i),arrMajorPointc(i),arrMajorPointd(i),arrMajorPointe(i),arrMajorPointf(i),arrMajorPointg(i),arrMajorPointh(i),arrMajorPointi(i),arrMajorPointj(i),arrMajorPointk(i),arrMajorPointl(i),arrMajorPointa(i)),3)
Call Rhino.RotateObject(arrMajorCross(i),array(0,0,i),4*sin(i))
Next
Call Rhino.AddLoftSrf (arrMajorCross)
End Sub