diff options
author | Thomas Albers Raviola <thomas@thomaslabs.org> | 2024-11-21 15:13:52 +0100 |
---|---|---|
committer | Thomas Albers Raviola <thomas@thomaslabs.org> | 2024-11-21 15:13:52 +0100 |
commit | 871a8d65f0d92929f64b5feca51b892307bebca9 (patch) | |
tree | 10a8c4ece76530618c573cec80a0e25d047768f5 /cover.scad |
Initial commit
Diffstat (limited to 'cover.scad')
-rw-r--r-- | cover.scad | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/cover.scad b/cover.scad new file mode 100644 index 0000000..5615a66 --- /dev/null +++ b/cover.scad @@ -0,0 +1,50 @@ +// All dimensions are assumed to be given in millimeters + +width = 148; +height = 68; +depth = 2; + +function inches_to_mm(inches) = inches * 25.4; + +encoder_diameter = 7; + +keyboard_offset = 12.5; +encoder_vertical_offset = 12; + +vertical_sep = 61; + +inner_diameter = inches_to_mm(0.12); +display_width = inches_to_mm(3.8); +display_height = inches_to_mm(2.6); + +display_inner_width = 86; +display_inner_height = 2.2 * 25.4; + +display_offset = 21; + +switch_spacing = 12; + +key_offset = encoder_vertical_offset + 14; + +button_width = 5.5; + +difference() { + cube([width, height, depth]); + + // Display window + translate(v=[display_offset, (height - display_inner_height) / 2, -.1]){ + cube([display_inner_width, display_inner_height, depth + .2]); + } + + // Encoder + translate(v=[width - keyboard_offset, height - encoder_vertical_offset, depth / 2]){ + cylinder(h=depth + .2, d=encoder_diameter, center=true); + } + + // Buttons + for (i=[0:3]) { + translate(v=[width - keyboard_offset, height - key_offset - i * switch_spacing, depth / 2]){ + cube([button_width, button_width, depth + .2], center=true); + } + } +} |