23 rotate([lens_up_angle, 0, 0])
24 translate([-lens_size/2-wall, 0, 0])
25 cube([lens_size+2*wall, 2*wall+lens_depth, wall+lens_size/2]);
27 rotate([0, 0, slot_angle])
28 translate([-stem_w-wall-slot_x_off, -slot_l, 0])
29 cube([stem_w + 2*wall, slot_l, wall + lens_size/2]);
31 translate([-infty/2, -infty/2, 0])
32 cube([infty, infty, wall+lens_size/2]);
39 rotate([lens_up_angle, 0, 0])
40 translate([-lens_size/2, wall, wall+(wall+lens_depth)*tan(-lens_angle)])
41 cube([lens_size, lens_depth, lens_size + eps]);
43 rotate([lens_up_angle, 0, 0])
44 translate([-lens_size/2+lens_side, wall, wall+(wall+lens_depth)*tan(-lens_angle)])
45 cube([lens_size-2*lens_side, lens_depth+wall+eps, lens_size + wall + 2*eps]);
47 translate([-cable_w/2, wall, -eps])
48 cube([cable_w, lens_depth+wall+eps, lens_size+wall+2*eps]);
49 rotate([0, 0, slot_angle])
50 rotate([0, slot_y_angle, 0])
51 translate([-stem_w-slot_x_off, -infty/2, lens_size/2-1.5-infty])
52 cube([stem_w, infty, infty]);