mead-horn: note dependency on dotscad
[clinton/3d-models.git] / ble arcade controller / spinner-panel.scad
CommitLineData
ba3e2455
CE
1// simple spinner control for a 5 3/8 inch by 8 1/2 inch project box
2// from the craft store.
3
4
5panel_height = (5 + 1/2) * 25.4;
6panel_width = (8 + 5/8) * 25.4;
7wall_width = 7.5;
8
9
10
11button_d = (1 + 1/8) * 25.4;
12button_spacing = 36; // based on https://www.slagcoin.com/joystick/layout.html
13$button_d = button_d;
14
15module line (pos0, pos1, width=0.5) {
16 hull () {
17 translate (pos0) circle (width);
18 translate (pos1) circle (width);
19 }
20}
21
22module button (bezel = $button_d+4, lines=true) {
23 if (lines) {
24 line ([-bezel/2, 0], [bezel/2, 0]);
25 line ([0, -bezel/2], [0, bezel/2]);
26 }
27// line ();
28 difference () {
29 circle (d=$button_d);
30 circle (d=$button_d-2);
31 }
32 circle (d = $button_d/4);
33 %circle(d=bezel);
34}
35
36module panel_layout () {
37 // buttons
38 translate ([panel_width/5, panel_height/2]) {
39 translate ([0, 0]) button ();
40 translate ([button_spacing, -button_spacing/2]) button ();
41 }
42
43 // spinner
44 translate ([panel_width-panel_width/5, panel_height-panel_height/4]) {
45 translate ([0, 0]) button ();
46 }
47
48
49}
50
51module panel_outline () {
52 difference () {
53 square ([panel_width, panel_height]);
54 translate ([wall_width/2, wall_width/2]) square ([panel_width-wall_width, panel_height-wall_width]);
55 }
56}
57
58union () {
59 panel_outline ();
60 panel_layout ();
61}
62
63
64
65// centering aid for drilling pilot hole
66
67module template_button (bezel = $button_d+4) {
68 difference () {
69 circle (d=$button_d);
70 circle (d = 3);
71 }
72
73}
74
75//linear_extrude (3) template_button ($fa=0.1, $fs=0.1);