]> www.fi.muni.cz Git - things.git/blob - led-torch.scad
18650 LED torch - first version
[things.git] / led-torch.scad
1 infty = 200;
2 eps = 0.01;
3
4 wall = 1;
5
6 led_d = 10 + 0.5;
7 int_d = 19/cos(30);
8 barrier_h = 8;
9 body_l = 70 + barrier_h;
10
11 difference() {
12         cylinder(r = int_d/2 + wall/cos(30), $fn = 6, h = body_l);
13         translate([0, 0, wall])
14         cylinder(r = int_d/2, $fn = 6, h = body_l);
15         // hole for LED
16         translate([0, 0, -eps])
17                 cylinder(r = led_d/2, h = infty);
18 }
19
20 // battery front end stop
21 translate([0, 0, barrier_h-wall])
22 intersection() {
23         cylinder(r = int_d/2 + wall/(2*cos(30)), $fn = 6, h = wall);
24         for (angle = [0:360/3:360]) rotate ([0, 0, angle])
25                 translate([led_d/2+wall, -infty/2, -eps])
26                         cube(infty);
27 }
28
29 // rear end clip
30 clip_l = 2;
31 clip_w = 0.8;
32 clip_dist = 3;
33
34 for (angle = [0:60:360]) rotate([0, 0, angle])
35 translate([-clip_l/2, int_d*cos(30)/2+wall, body_l - clip_dist]) {
36         scale([1, 1, 3])
37         rotate([0, 90, 0])
38                 cylinder(r = clip_w, h = clip_l, $fn = 4);
39 }
40
41 // lid
42
43 lid_d = int_d + 2*wall/cos(30) + 2*clip_w/cos(30);
44 lid_h = clip_dist + 3*wall+3*clip_w;
45
46 translate([0, int_d + 5, 0])
47 difference() {
48         cylinder(r = lid_d/2 + wall/cos(30), $fn = 6, h = lid_h);
49         difference() {
50                 translate([0, 0, wall])
51                         cylinder(r = lid_d/2, $fn = 6, h = lid_h);
52                 for (angle = [0:180:360]) rotate([0, 0, angle])
53                 translate([-clip_l/2, lid_d*cos(30)/2, clip_dist + 2*wall]) {
54                         scale([1, 1, 3])
55                         rotate([0, 90, 0])
56                         cylinder(r = clip_w, h = clip_l, $fn = 4);
57                 }
58         }
59 }