$fa = 1; $fs = 0.2; latte_width = 2.4; latte_depth = 4.8; module schublade() { /* Seiten */ color("brown") { cube([1, 20, 20]); translate([19, 0, 0]) cube([1, 20, 20]); } /* Vorne & hinten */ color("darkred") { translate([1, 0, 0]) cube([18, 1, 20]); translate([1, 19, 0]) cube([18, 1, 20]); } /* Boden */ color([0.4, 0.2, 0.2]) translate([1, 1, 0]) cube([18, 18, 1]); /* Griff */ translate([10, 0, 10]) { color([0.4, 0.2, 0.2]) { rotate([90, 0, 0]) cylinder(h = 0.5, d = 1.5); translate([0, -1.5, 0]) sphere(d = 3, false); } } } module latte(length) { cube([latte_width, latte_depth, length]); } module regal() { /* Pfosten */ color("olive") { for (x = [0, 20 + latte_width]) { for (y = [0, 20 - latte_depth]) { translate([x, y, 0]) latte(165); } } } /* Querlatten */ color("darkgreen") { for (x = [0, 20 + latte_width]) { for (z = [20, 60, 150]) { translate([x, 20 - latte_depth, z]) rotate([90, 0, 0]) latte(20 - latte_depth * 2); } } } /* Böden */ color([0.2, 0.4, 0.2]) { for (z = [80, 101, 122, 143, 164]) translate([latte_width, 0, z]) cube([20, 20, 1]); } } regal(); translate([latte_width, -10, 81]) { schublade(); translate([0, 0, 21]) schublade(); translate([0, 0, 42]) schublade(); translate([0, 0, 63]) schublade(); }