]> www.fi.muni.cz Git - things.git/blob - led-arrow.scad
knife-stand: first try
[things.git] / led-arrow.scad
1 eps = 0.01;
2 infty = 100;
3
4 module chamber() {
5         hull() {
6                 for (i = [-1, 1]) {
7                         translate([-3, 0, 0.5])
8                                 scale([1.25, 1, 1])
9                                 cylinder(r1 = 8, r2 = 9, h = 4, $fn = 3);
10                         rotate([0, 35*i, 0]) {
11                                 translate([0, 0, 7])
12                                 rotate([0, 0, 45])
13                                 cylinder(r = 10/2, h = 4, $fn = 4);
14                         }
15                 }
16         }
17         for (i = [-1, 1]) {
18                         rotate([0, 35*i, 0])
19                                 translate([0, 0, 10])
20                                         cylinder(r = 6.0/2, h = 5, $fn = 6);
21                                 intersection() {
22                                 rotate([0, 35*i, 0])
23                                 translate([0, 0, 15-eps])
24                                         cylinder(r = 8/2, h = 10, $fn = 6);
25                                 translate([-30/2, -15/2, eps])
26                                         cube([30, 15, 15]);
27                                 }
28                 difference() {
29                         translate([-32/2, -16/2, 15])
30                                 cube([32, 16, 20]);
31                         
32                         translate([screw_x-12/2, screw_y-12/2,0])
33                                 cube([12, 12, infty]);
34                 }
35         }
36
37 }
38
39 screw_x = 5;
40 screw_y = 11;
41
42 module body() {
43         hull() {
44                 // top cube
45                 translate([-36/2, -20/2, 15])
46                         cube([36, 20, 5]);
47                 // bottom triangle
48                 translate([-3, 0, 0])
49                         scale([1.5, 1, 1])
50                         cylinder(r = 11, h = eps, $fn = 3);
51                 // screw base
52                 translate([screw_x-12/2, screw_y-12/2,17])
53                         cube([12, 12, 3]);
54         }
55 }
56
57 module light() {
58         difference() {
59                 body();
60                 chamber();
61                 // screw head hole
62                 translate([-4+screw_x, screw_y-8/2, 17-infty])
63                         cube([8, infty, infty]);
64                 // screw hole
65                 translate([screw_x-4, screw_y-4/2, -eps])
66                         cube([8, 4, infty]);
67
68                 // cable hole
69                 translate([-9-eps, 0, 17])
70                         cube([8, infty, infty]);
71
72                 // debug
73                 // translate([-infty/2, -infty, -infty/2]) cube(infty);
74         }
75 }
76
77 light();