diff --git a/scad/drawer-slide-support.scad b/scad/drawer-slide-support.scad new file mode 100644 index 0000000..113a127 --- /dev/null +++ b/scad/drawer-slide-support.scad @@ -0,0 +1,45 @@ +$fn=24; +length = 60; + +module screwHole() { + color("blue") union() { + translate([2.1, 5.1, 0]) cylinder(r = 2.1, h = 6); + translate([2.1, 2.1, 0]) cylinder(r = 2.1, h = 6); + translate([0, 2.1, 0]) cube([4.2, 3, 6]); + } +} + +difference() { + union() { + // channel + cube([30, 13, length + 10]); + + // angled support + translate([16, 9, -8]) rotate([0, -17, 0]) cube([30, 4, length + 10]); + + // base + cube([50, 32, 4]); + } + + union() { + // bottom flush-cut + translate([-10, -10, -20]) cube([60, 40, 20]); + + // X-side flush-cut + translate([-8, -2, -length * 0.05]) cube([8, 20, length * 1.1]); + + // channel interior + translate([3, 3, 4]) cube([23, 9, length]); + + // channel side cutaway + translate([4, 8, 4]) cube([20, 9, length]); + + // screw holes + translate([4.2, 32 - 7.2 - 4, -1]) screwHole(); + translate([50 - 8.4, 32 - 7.2 - 4, -1]) screwHole(); + translate([25 + 4.2, 32 - 5.7 - 4, -1]) rotate([0, 0, 90]) screwHole(); + + // top flush-cut + color("red") translate([-10, -8, length]) cube([60, 40, length / 2]); + } +}