Saturday, May 3, 2014

Day 250: Billy bookcases

Most of our furniture consists of bookcases, and our go-to bookcases are from IKEA's Billy bookcase series. The Billys currently come in short and tall flavors, both of which can be either wide or thin, with one option for a deeper bookcase:


These take almost no time at all to print, so you can make lots of them to see what combinations might fit and look best in your space:



Settings: Printed on a Replicator 2 on .3mm/low setting, at 1:50 scale. 

Technical notes, OpenSCAD flavor: The code for these bookcases uses the scaling factors and cuboid module from Day 248. The bookcase models are made by making a cuboid shape to enclose the bookcase, taking away the inside, and then adding shelves. The most difficult part was getting the shelf heights and gaps right so that the code can accept any number of shelves and return an evenly-spaced bookcase. We decided to make these with no backs, but it would be easy to add backs to these if desired. They print lying down so that no supports are needed.

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

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

The current line of Billy bookcases can then be made with the following renders (uncomment whichever one you want to make):

// wide short billy
//bookcase(depth=11,length=31.5,height=41.75,shelves=3);

// wide tall billy
//bookcase(depth=11,length=31.5,height=79.5,shelves=6);

// wide tall deep billy
//bookcase(depth=15.375,length=31.5,height=79.5,shelves=6);

// thin short billy
//bookcase(depth=11,length=15.75,height=41.75,shelves=3);

// thin tall billy
//bookcase(depth=11,length=15.75,height=79.5,shelves=6);

No comments:

Post a Comment