From: Jan "Yenya" Kasprzak Date: Tue, 25 Apr 2017 14:51:40 +0000 (+0200) Subject: firefly q6 case X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=111da30f7470f37bfde48c5e7a51743b2afc0653;p=things.git firefly q6 case --- diff --git a/firefly-q6-case.scad b/firefly-q6-case.scad new file mode 100644 index 0000000..acc8ef6 --- /dev/null +++ b/firefly-q6-case.scad @@ -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]); + }