X-Git-Url: http://git.scottworley.com/tattlekey/blobdiff_plain/38453ccc892d675b75bb7d9c9d48151c2affea0b..HEAD:/housing/tattlekey.scad diff --git a/housing/tattlekey.scad b/housing/tattlekey.scad index 4567a3d..1f5ea4c 100644 --- a/housing/tattlekey.scad +++ b/housing/tattlekey.scad @@ -5,8 +5,10 @@ key_interface_corner_r = 5; key_interface_thickness = 1.484; // Chosen to let board fit inside -housing_inner_h = 8; +housing_inner_h = 6; housing_inner_w = 21; +housing_flat = 8; +housing_extra_l = 10; thickness = 1.7; @@ -17,6 +19,7 @@ extra_flare = wiring_l; pico_board_l = 51.0; pico_board_w = 21.0; +pico_board_h = 1.0; pico_total_h = 3.7; $fs = .1; @@ -30,10 +33,9 @@ module pico_hole(d, x, y) { cylinder(h=slop, d = d); } -module pico_board(gap = 0) { - board_h = 1.0; - translate([-gap, -gap, -gap]) - cube([pico_board_l + 2*gap, pico_board_w + 2*gap, board_h + 2*gap]); +module pico_board(length = pico_board_l, gap = 0) { + translate([-gap - length + pico_board_l, 0, -gap]) + cube([length + 2*gap, pico_board_w, pico_board_h + 2*gap]); } module pico_w(hole_d = 2.1) { @@ -112,19 +114,23 @@ module key_interface() { } module housing_shape(outline = thickness) { - inner_squish = housing_inner_h / housing_inner_w; housing_w = housing_inner_w + 2 * outline; housing_h = housing_inner_h + 2 * outline; - squish = housing_h / housing_w; + squish = housing_h / (housing_w - housing_flat); scale([1, squish]) - circle(d = housing_w); + minkowski() { + circle(d = housing_w - housing_flat); + square([housing_flat, epsilon], center=true); + } } -module housing(length = pico_board_l - extra_flare) { +module housing() { + length = pico_board_l - extra_flare; + translate([-housing_extra_l, 0, 0]) rotate([90, 0, 0]) rotate([0, 90, 0]) - linear_extrude(length) + linear_extrude(length + housing_extra_l) difference() { housing_shape(); housing_shape(0); @@ -153,7 +159,7 @@ module flare() { } module at_board() { - translate([0, -pico_board_w/2, -1]) + translate([0, -pico_board_w/2, -pico_board_h]) children(); } @@ -166,7 +172,7 @@ module tattlekey_case() { flare(); } at_board() - pico_board(board_gap); + pico_board(slop, board_gap); } }