14 servo_base_w = lens_size + 2*wall;
15 servo_base_l = 15 + servo_base_w/2;
16 servo_base_h = 2*wall;
18 rotate([lens_angle, 0, 0]) difference() {
19 translate([-lens_size/2-wall, 0, 0])
20 cube([lens_size+2*wall, 2*wall+lens_depth, wall+lens_size]);
22 rotate([-lens_angle, 0, 0]) translate([-infty/2, -infty/2, -infty]) cube(infty);
24 translate([-lens_size/2, wall, wall+(wall+lens_depth)*tan(-lens_angle)])
25 cube([lens_size, lens_depth, lens_size + eps]);
27 translate([-lens_size/2+lens_side, wall, wall+(wall+lens_depth)*tan(-lens_angle)])
28 cube([lens_size-2*lens_side, lens_depth+wall+eps, lens_size + wall + 2*eps]);
30 translate([-cable_w/2, wall, -eps])
31 cube([cable_w, lens_depth+wall+eps, lens_size+wall+2*eps]);
37 translate([-servo_base_w/2, -servo_base_l+servo_base_w/2, 0])
38 cube([servo_base_w, servo_base_l-servo_base_w/2+wall+eps, servo_base_h]);
39 translate([0, -servo_base_l+servo_base_w/2, 0])
40 cylinder(r = servo_base_w/2, h = servo_base_h);
43 translate([0, -servo_base_l+servo_base_w/2, -eps])
44 cylinder(r = servo_hole/2, h = servo_base_h + 2*eps);