Make shelf more changeable.

This commit is contained in:
tastytea 2020-08-01 02:37:16 +02:00
parent 0bf96f8783
commit 9cf3439106
Signed by: tastytea
GPG Key ID: CFC39497F1B26E07
1 changed files with 34 additions and 22 deletions

View File

@ -13,15 +13,17 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* A shelf with cubical drawers. Units are supposed to be cm. The drawers begin
* 80cm above the ground. You will need 1 kind of lath, 1 kind of board,
* handles, a saw and a few screws for this build.
/* A shelf with cubical drawers. Units are supposed to be cm. You will need 1
* kind of lath, 1 kind of board, handles, a saw, a drill and a few screws for
* this build.
*/
$fa = 1;
$fs = 0.2;
drawer_size = 20; /* Cube */
drawer_size = 20; /* Cube */
drawers_number = 4; /* Number of drawers */
drawers_begin = 80; /* Begin rendering drawers at this height */
lath_width = 2.4; /* x */
lath_depth = 4.8; /* y */
@ -90,6 +92,8 @@ module lath(length)
module shelf()
{
function post_height() = drawers_begin + (drawer_size * drawers_number)
+ (board_height * drawers_number + 1);
/* Posts */
color("olive")
{
@ -99,7 +103,7 @@ module shelf()
{
translate([x, y, 0])
{
lath(80 + (drawer_size * 4) + (board_height * 5));
lath(post_height());
}
}
}
@ -110,7 +114,8 @@ module shelf()
{
for (x = [0, drawer_size + lath_width])
{
for (z = [drawer_size, 60, 150])
/* Bottom */
for (z = [drawer_size:40:drawers_begin - lath_depth])
{
translate([x, drawer_size - lath_depth, z])
{
@ -120,15 +125,25 @@ module shelf()
}
}
}
/* Top */
translate(
[x, drawer_size - lath_depth, post_height() - lath_depth - 10])
{
rotate([90, 0, 0])
{
lath(drawer_size - lath_depth * 2);
}
}
}
}
/* Bottoms */
function bottom_pos(number) =
80 + (drawer_size * number) + (board_height * number);
drawers_begin + (drawer_size * number) + (board_height * number);
color([0.2, 0.4, 0.2])
{
for (number = [0:4])
for (number = [0:drawers_number])
translate([lath_width, 0, bottom_pos(number)])
{
cube([drawer_size, drawer_size, board_height]);
@ -136,21 +151,18 @@ module shelf()
}
}
shelf();
translate([lath_width, -10, 80 + board_height])
translate([5, 0, 0])
{
drawer();
translate([0, 0, drawer_size + board_height])
shelf();
translate([lath_width, -10, drawers_begin + board_height])
{
drawer();
}
translate([0, 0, (drawer_size * 2) + (board_height * 2)])
{
drawer();
}
translate([0, 0, (drawer_size * 3) + (board_height * 3)])
{
drawer();
for (number = [0:drawers_number - 1])
{
translate([0, 0, (drawer_size * number) + (board_height * number)])
{
drawer();
}
}
}
}