11 body_x = led_d + 2*led_x + 15;
13 top_off = body_d*tan(led_angle);
14 body_y = led_d + 2*top_off + 5*wall;
15 base_w = led_d + 4*wall;
19 // screw_y = led_d/2+screw_head/2+wall;
20 screw_x = body_x/2 +wall + screw_head/2;
28 for (i = [-1, 1]) translate([i*led_x, 0, 0])
29 cylinder(r = base_w/2, h = eps);
30 // translate([-led_x-led_d/2-wall, -led_d/2-wall, 0])
31 // cube([2*led_x + led_d + 2*wall, led_d+2*wall, eps]);
32 translate([-body_x/2, -body_y/2, body_d-screw_wall])
33 cube([body_x, body_y, screw_wall]);
34 for (i = [-1, 1]) scale([i, 1, 1]) {
35 translate([screw_x-screw_head/2, -screw_head/2-wall, body_d-screw_wall])
36 cube([screw_head, screw_head+2*wall, screw_wall]);
37 translate([screw_x-screw_head/2, -screw_head/2-wall, 0])
38 cube([screw_head/2, screw_head+2*wall, eps]);
47 rotate([led_angle, 0, 0]) {
48 translate([i*led_x, 0, led_depth])
49 cylinder(r = led_d/2+wall/2, h = eps);
51 translate([-body_x/2+wall, -body_y/2+wall, body_d-screw_wall])
52 cube([body_x-2*wall, body_y-2*wall, screw_wall+eps]);
55 rotate([led_angle, 0, 0])
56 translate([i*led_x, 0, led_depth])
57 cylinder(r = led_d/2+wall/2, h = infty);
64 rotate([led_angle, 0, 0])
65 translate([i*led_x, 0, -infty/2])
66 cylinder(r = led_d/2, h = infty);
70 // translate([-screw_head/2-wall, screw_y-screw_head/2-wall, 0])
71 // cube([screw_head+2*wall, screw_head+2*wall, infty]);
73 for (i = [-1, 1]) scale([i, 1, 1]) {
75 translate([screw_x-screw_head/2, -screw_head/2, -eps])
76 cube([screw_head+wall, screw_head, body_d-screw_wall]);
78 translate([screw_x-screw_d/2, -screw_head/2, -eps])
79 cube([screw_d, screw_head, infty]);
82 translate([-led_x, 0, 0])
84 translate([-infty, -cable_w/2, body_d-cable_h])
85 cube([infty, cable_w, cable_h+eps]);