Wednesday, July 9, 2014

Day 317 - Vaas Vase

Zydac's stunning Delta Vase model on Thingiverse, which was based on architect Van Shundel Huis' Delta Vass piece. It's a really cool shape, with three angled planes making a "Y" at the base and a triangle at the top:


Thingiverse link: http://www.thingiverse.com/make:88109

Settings: Printed on a MakerBot Replicator Mini with .3mm layer height but otherwise default settings. It took a long time, maybe over three hours? However I could print it full size and it is big enough to be a small windowsill planter.

Technical notes, Rhino/Grasshopper flavor: I came across this model while looking for some demo Grasshopper files to use in Rhino, to use in the unlikely event that I have enough free time this summer to learn how to use either of those things. Zydac was kind enough to include the Rhino 3D file and Grasshopper script with their model. Thank you Zydac, I will learn from this sometime in the future, I hope!

UPDATE: kitwallace has now designed a Customizable Delta Vase model with just a few lines of OpenSCAD code. Since it's in the Customizer we can "View Source" to see what he did. The side module takes a hull of four small spheres to make one of the faces of the vase, and the delta_vase module rotates and copies that face to make the vase. The The ground module just snips off the bottom so the model lies flat on the platform.

/* parametric Delta vase inspired by 
   http://www.thingiverse.com/thing:150482
   from the original design by Mart van Schijndel

   generalised to n sides

   Each side is constructed by hulling spheres positioned 
   at the corners of the plane of the face.  Three of the
   points are straightforward to position but the fourth
   needs to be placed so that the bottom edge is parallel
   to the top edge,
*/

// length of top edge
top=40;
// length of bottom edge
bottom=20;
// height of vase
height=50;
// wall thickness
thickness=1;
// number of sides
nsides=3;

module side(angle,top,bottom,height,thickness) {
   hull() {
        translate([top,0,height]) sphere(thickness);  
        rotate([0,0,angle])
            translate([top,0,height]) sphere(thickness);
        translate([0,0,0]) sphere(thickness);
        rotate([0,0,angle+(180-angle)/2])
            translate([bottom,0,0]) sphere(thickness);
    }
}

module delta_vase(nsides,top,bottom,height,thickness) {
    assign(angle=360/nsides)
    for (i = [0:nsides-1])
      rotate([0,0,i*angle])
         side(angle,top,bottom,height,thickness);
}

module ground(size=50) {
   translate([0,0,-size]) cube(2*size,center=true);
}

$fn=15;

difference()  {
  delta_vase(nsides,top,bottom,height,thickness);
  ground();
}