Tuesday, May 6, 2014

Day 253 - Dining chairs and kitchen stool

Continuing our 1:50 scale miniature furniture collection, today we added dining room chairs and four-legged stools.  The picture below shows what the dining area will look like in our new apartment.


Thingiverse link: COMING SOON with full customizable set when we're done.

Settings: Printed on a MakerBot Replicator 2 with .3mm/low resolution, no raft and no support.

Technical notes, OpenSCAD flavor: The code for these models starts with the parameters and cubiod module from Day 248, with the following code for the simple module that builds the chairs.  In this design I assume that the seat is always just under halfway the full height of the chair.  The model outputs upright chairs, so before printing you should lie them on their sides to eliminate the need for supports.

/////////////////////////////////////////////////////////////
// module for chairs ////////////////////////////////////////

module chair(depth,length,height){
scale(s)
union(){
// top of chair
translate([0,0,height*.4]) 
      cuboid(depth,length,height*.1,sharp);
// back
cuboid(depth*.15,length,height,sharp);
// front
translate([depth*.85,0,0]) 
      cuboid(depth*.15,length,height*.5,sharp);
}
}

The module for the stools makes a round top and four cylindrical legs. The legs have to be much wider than they would be in real life or else the models are too fragile at 1:50 scale. It looks natural enough when it is printed, however.

/////////////////////////////////////////////////////////////
// module for stools ////////////////////////////////////////

module stool(radius,height){
scale(s)
union(){
// top
cylinder(r=radius,h=height*.1);
// legs
rotate(0,[0,0,1])
translate([radius*.6,0,0]) 
cylinder(r=radius*.3,h=height);
rotate(90, [0,0,1])
translate([radius*.6,0,0]) 
cylinder(r=radius*.3,h=height);
rotate(180, [0,0,1])
translate([radius*.6,0,0]) 
cylinder(r=radius*.3,h=height);
rotate(270, [0,0,1])
translate([radius*.6,0,0]) 
cylinder(r=radius*.3,h=height);
}
}