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