]> www.fi.muni.cz Git - things.git/commitdiff
firefly q6 case
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Tue, 25 Apr 2017 14:51:40 +0000 (16:51 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Mon, 22 May 2017 14:05:23 +0000 (16:05 +0200)
firefly-q6-case.scad [new file with mode: 0644]

diff --git a/firefly-q6-case.scad b/firefly-q6-case.scad
new file mode 100644 (file)
index 0000000..acc8ef6
--- /dev/null
@@ -0,0 +1,63 @@
+infty = 200;
+eps = 0.01;
+
+wall = 1.5;
+
+body_l = 70 + 0.5;
+body_w = 33 + 0.5;
+body_h = 28 + 0.5;
+corner_r = 8;
+corner_side_h = 5;
+
+hook_w = 3.5;
+hook_l = 6;
+hook_hole_l = 2;
+hook_hole_w = 1.5;
+
+// base plate
+difference() {
+       hull() {
+               for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1])
+                       translate([body_l/2 - corner_r,
+                               body_w/2 - corner_r, 0])
+                       cylinder(r = corner_r + wall, h = wall);
+       }
+       // translate([-body_l/2+corner_r + hook_l, -body_w/2+corner_r, -eps])
+       //      cube([body_l-2*corner_r-2*hook_l, body_w - 2*corner_r, wall +2*eps]);
+       translate([-body_l/2+corner_r, -body_w/2+corner_r, -eps])
+               cube([body_l-2*corner_r, body_w - 2*corner_r, wall +2*eps]);
+}
+
+// raised corner bottom
+for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1])
+       translate([body_l/2 - corner_r,
+               body_w/2 - corner_r, wall-eps])
+       difference() {
+               cylinder(r = corner_r + wall, h = wall+eps);
+               translate([-infty, -infty/2, -infty/2]) cube(infty);
+               translate([-infty/2, -infty, -infty/2]) cube(infty);
+       }
+
+
+// raised corner side
+for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1])
+       translate([body_l/2 - corner_r,
+               body_w/2 - corner_r, 2*wall-eps])
+       difference() {
+               cylinder(r = corner_r + wall, h = corner_side_h+eps);
+               translate([0, 0,-eps])
+                       cylinder(r = corner_r, h = infty);
+               translate([-infty, -infty/2, -infty/2]) cube(infty);
+               translate([-infty/2, -infty, -infty/2]) cube(infty);
+       }
+
+// rubber band hooks
+for (x = [-1, 1]) for (y = [-1, 1]) scale([x, y, 1])
+       difference() {
+               translate([body_l/2 - corner_r - hook_l,
+                       body_w/2 - corner_r, 0])
+                       cube([hook_l, hook_w + corner_r + wall, 2*wall]);
+               translate([body_l/2 - corner_r - hook_hole_l,
+                       body_w/2 + wall, -eps])
+                       cube([hook_hole_l + eps, hook_hole_w, 2*wall+2*eps]);
+       }