diff --git a/case/Makefile b/case/Makefile new file mode 100644 index 0000000..c8dd4c0 --- /dev/null +++ b/case/Makefile @@ -0,0 +1,4 @@ +default: adapter-case.stl + +%.stl: %.scad + openscad -o $@ $< diff --git a/case/adapter-case.scad b/case/adapter-case.scad index 7f66abe..3dadec5 100644 --- a/case/adapter-case.scad +++ b/case/adapter-case.scad @@ -1,16 +1,42 @@ -union() { - import("seeed_xaio_case.stl", convexity=3); - translate([-12.1, -2, 6]) cube([1.3, 4, 4]); // Plug up the component hole in the back +use - // Fill in the curved sides in front - translate([-13.5, -10.485, 0]) cube([5, 1.30, 10]); - translate([-13.5, 9.185, 0]) cube([5, 1.30, 10]); +// Make circles lovely and round +$fa = 1; $fs = 0.5; - // Big block for key - translate([-40, -10.485, 0]) cube([29, 10.485*2, 10]); - - difference() { - translate([-40, -10.485, 0]) cube([28, 10.485*2, 30]); +module stacker() { + translate([0, 0, -5]) { + difference() { + union() { + import("seeed_xaio_case.stl", convexity=3); + translate([-12.1, -2, 6]) cube([1.3, 4, 4]); // Plug up the component hole in the back + translate([11.45, 0, 5]) cube([1.3, 10, 4], center=true); // Plug up the USB hole + } + cube([30, 25, 10], center=true); + } } - +} + +difference() { + union() { + import("seeed_xaio_case.stl", convexity=3); + + translate([-12.1, -2, 6]) cube([1.3, 4, 4]); // Plug up the component hole in the back + + // Overlap these to get rid of the slots inside + translate([0, 0, 07.5]) stacker(); + translate([0, 0, 10.0]) stacker(); + translate([0, 0, 12.5]) stacker(); + translate([0, 0, 15.0]) stacker(); + translate([0, 0, 17.5]) stacker(); + translate([0, 0, 20.0]) stacker(); + } + + translate([10, -4.79, 4.79]) cube([5, 9.58, 3]); + translate([10, 0, 9]) cube([10, 18.36, 6], center=true); + + + translate([0, -9, 12]) rotate(90, [1, 0, 0]) tap("M4", turns=10); + translate([0, 12, 12]) rotate(90, [1, 0, 0]) tap("M4", turns=10); + + translate([0, 0, 18]) rotate(90, [0, 1, 0]) tap("M8", turns=10); //cylinder(h=50, r=4); }