- scale([1, outer_squish])
- circle(d = housing_outer_w);
- scale([1, inner_squish])
- circle(d = housing_inner_w);
+ housing_shape();
+ housing_shape(0);
+ }
+}
+
+module flare_shape(outline, extra_len) {
+ hull() {
+ at_key()
+ key_interface_shape(epsilon + extra_len, outline);
+ translate([pico_board_l-extra_flare, 0, 0])
+
+ translate([-extra_len, 0, 0])
+ rotate([90, 0, 0])
+ rotate([0, 90, 0])
+ linear_extrude(epsilon+extra_len)
+ housing_shape(outline);
+ }
+}
+
+module flare() {
+ difference() {
+ flare_shape(thickness, 0);
+ flare_shape(0, epsilon);
+ }
+}
+
+module at_board() {
+ translate([0, -pico_board_w/2, -1])
+ children();
+}
+
+module tattlekey_case() {
+ key_interface();
+
+ difference() {
+ union() {
+ housing();
+ flare();
+ }
+ at_board()
+ pico_board(board_gap);