]> www.fi.muni.cz Git - things.git/blob - switch-holder.scad
switch holder.scad
[things.git] / switch-holder.scad
1 include <yenyalib.scad>
2
3 $fn = 128;
4
5 wall = 1.67;
6
7 switch_d = 13.4; // zvenku 17.5, hloubka i s kontakty 12.5
8 switch_cut = 0.8;
9
10 body_w = 30;
11 body_h = 60;
12 body_depth = 30;
13 bottom_depth = 15;
14
15 bottom_r = 12;
16 screw_d = 3.5;
17
18 difference() {
19         hull() {
20                 Tx(-body_w/2) cube([body_w, eps, body_depth]);
21                 Mx() Tx(body_w/2-bottom_r) Ty(body_h - bottom_r) union() {
22                         cylinder(r1 = bottom_r-wall/2, r2=bottom_r,h = wall);
23                         Tz(wall)
24                                 cylinder(r = bottom_r, h = bottom_depth-wall);
25                 }
26         }
27         Tz(wall) hull() {
28                 Tx(-body_w/2+wall) Ty(wall)
29                         cube([body_w-2*wall, eps, body_depth]);
30                 Mx() Tx(body_w/2-bottom_r) Ty(body_h - bottom_r)
31                         cylinder(r = bottom_r-wall, h = body_depth);
32         }
33         // sw1
34         for (y = [0.3*body_h, 0.75*body_h]) Ty(y) difference() {
35                 Tz(-eps)
36                         cylinder(r = switch_d/2, h = wall + 2*eps);
37                 Tz(-2*eps) Tx(switch_d/2-switch_cut) Ty(-switch_d/2)
38                         cube([switch_cut+eps, switch_d, wall + 4*eps]);
39         }
40         for (z = [body_depth/4, 3*body_depth/4+wall],
41                 x = [-body_w/4, body_w/4])
42                 translate([x, -eps, z]) Rx(-90)
43                 cylinder(r = screw_d/2, h = wall + 2*eps, $fn = 6);
44 }