MakerHome

One 3D print every day for a year

Day 232

Bookcasemaker

Continuing our moving series, today we made an OpenSCAD module for making the most important type of furniture at all: bookcases! Here we have some Bondes (now discontinued, sadly) and Hemnes from IKEA, as well as a low TV stand:

Thingiverse: http://www.thingiverse.com/make:77833

Settings: MakerWare .3mm/low on a Replicator 2 with the bookcases on their backs so that support is not required.

Technical notes, OpenSCAD flavor: Again we continue from the previous day’s code. The interesting thing today is that we added a parameter for number of shelves and used a for() loop to put them in. The tricky part was handling the translation correctly while putting in those shelves.

/////////////////////////////////////////////////////////////
// module for making bookcases //////////////////////////////

module bookcase(depth,length,height,shelves){
 difference(){
  // body of the bookcase
  hull(){
   translate(s*[0,0,0]) sphere(tiny);
   translate(s*[length,0,0]) sphere(tiny);
   translate(s*[length,height,0]) sphere(tiny);
   translate(s*[0,height,0]) sphere(tiny);
   translate(s*[0,0,depth]) sphere(tiny);
   translate(s*[length,0,depth]) sphere(tiny);
   translate(s*[length,height,depth]) sphere(tiny);
   translate(s*[0,height,depth]) sphere(tiny);
  }
  // minus an inside
  translate(s*[.1*length,.1*length,-depth/2])
   cube(s*[.8*length,height-.2*length,2*depth]);
 }
 // put in some shelves
 for (i = [1:1:shelves-1]){
  translate(s*[0,i*(height-.1*length)/shelves,0])
  cube(s*[length,.1*length,depth]);
 }
}