]> www.fi.muni.cz Git - things.git/blob - zaluzie-kryt.scad
switch holder.scad
[things.git] / zaluzie-kryt.scad
1 eps = 0.01;
2 infty = 100;
3
4 wall = 1.5;
5
6 inner_w = 44;
7 inner_d = 32;
8
9 inner_h = 9;
10
11 clip_w1 = 8;
12 clip_w2 = 7;
13 clip_h = 16;
14
15 hole_off = 12.5;
16 hole_l = 14.5;
17
18 left_edge_l = 22;
19 left_edge_h = 7.5;
20
21 right_edge_h = inner_h;
22
23 screw_base_h = inner_h + wall;
24 screw_base_d = 10;
25 screw_hole_d = 4;
26
27 difference() {
28         union() {
29                 // main body
30                 cube([inner_w + 2*wall, inner_d + wall, inner_h + wall]);
31                 // side top clip
32                 hull() {
33                         translate([0, 0, inner_h-eps])
34                                 cube([wall, clip_w1, eps]);
35                         translate([0, 0, inner_h+clip_h-eps])
36                                 cube([wall, clip_w2, eps]);
37                 }
38                 // screw base
39                 hull() {
40                         translate([inner_w/2 + wall - screw_base_d/2,
41                                 inner_d + wall - eps, 0])
42                                 cube([screw_base_d, eps, screw_base_h]);
43                         translate([inner_w/2 + wall, inner_d + wall + screw_base_d/2, 0])
44                                 cylinder(r = screw_base_d/2, h = screw_base_h);
45                 }
46         }
47         difference() {
48                 // inner space
49                 translate([wall, -eps, wall])
50                         cube([inner_w, inner_d+eps, inner_h+eps]);
51                 // left edge begin
52                 translate([wall, clip_w1, left_edge_h + wall])
53                 rotate([-90, 0, 0])
54                         cylinder(r = wall/2, h = hole_off-clip_w1, $fn = 4);
55                 // left edge end
56                 translate([wall, hole_off+hole_l, left_edge_h + wall])
57                 rotate([-90, 0, 0])
58                         cylinder(r = wall/2, h = left_edge_l + clip_w1 - hole_off -hole_l, $fn = 4);
59                 // right edge
60                 translate([inner_w + wall, clip_w1, right_edge_h + wall])
61                 rotate([-90, 0, 0])
62                         cylinder(r = wall/2, h = left_edge_l, $fn = 4);
63         }
64         translate([-eps, hole_off, wall])
65                 cube([wall+2*eps, hole_l, inner_h + eps]);
66         // screw hole
67         translate([inner_w/2 + wall, inner_d + wall + screw_base_d/2, -eps])
68                 cylinder(r = screw_hole_d/2, h = screw_base_h + 2*eps);
69 }
70