]> www.fi.muni.cz Git - things.git/blob - led-strip-end-slanted.scad
switch holder.scad
[things.git] / led-strip-end-slanted.scad
1 eps = 0.01;
2 infty = 100;
3
4 wall = 1.5;
5
6 magnet_w = 5 + 0.3;
7 magnet_l = 10 + 0.3;
8 magnet_h = 2.5;
9 magnet_clip_w = 0.5;
10
11 angle = 5;
12 angled_w = 3;
13
14 inner_bottom_l = 21;
15 inner_bottom_w = 2;
16 inner_bottom_off = 2.0;
17 inner_side_l = 4;
18 inner_side_w = wall;
19 inner_side_off = 1;
20 inner_h = 5;
21
22 outer_l = inner_bottom_l + 4;
23 outer_w = 10;
24
25 cable_h = 3;
26 cable_w = 5.5;
27
28 module body() {
29         difference() {
30                 // base plate
31                 cube([outer_l, outer_w, wall]);
32                 // cable hole
33                 translate([outer_l/2-cable_w/2, inner_bottom_off+inner_bottom_w, -eps])
34                         cube([cable_w, cable_h, wall+2*eps]);
35         }
36
37         // inner bottom
38         translate([outer_l/2-inner_bottom_l/2, inner_bottom_off, 0])
39                 cube([inner_bottom_l, inner_bottom_w, inner_h+wall]);
40         // inner sides
41         for (x = [-1, 1]) {
42                 translate([outer_l/2, inner_bottom_off+inner_bottom_w, 0])
43                 scale([x, 1, 1])
44                 translate([inner_bottom_l/2-inner_side_off-inner_side_w, 0, 0])
45                         cube([inner_side_w, inner_side_l, inner_h+wall]);
46         }
47
48         difference() {
49                 // angled outer bottom
50                 hull() {
51                         cube([outer_l, eps, 2*wall+magnet_w]);
52                         translate([0, -angled_w, 0])
53                         rotate([0, 0, -angle])
54                         cube([outer_l, eps, 2*wall+magnet_w]);
55                 }
56                 // magnet hole
57                 rotate([0, 0, -angle])
58                         translate([outer_l/2-magnet_l/2, -angled_w-eps, wall])
59                         difference() {
60                                 cube([magnet_l, magnet_h, magnet_w]);
61                                 for (z = [0, magnet_w])
62                                         translate([magnet_l/3, 0, z])
63                                         rotate([0, 90, 0])
64                                         cylinder(r=magnet_clip_w,
65                                                 h=magnet_l/3, $fn=4);
66                         }
67         }
68 }
69
70 body();
71
72