]> www.fi.muni.cz Git - things.git/blob - 808-lens-holder-servo.scad
switch holder.scad
[things.git] / 808-lens-holder-servo.scad
1 infty = 100;
2 eps = 0.01;
3
4 wall = 1.5;
5
6 lens_size = 9.2;
7 lens_depth = 3;
8 lens_side = 0.9;
9 lens_angle = -10;
10
11 cable_w = 7;
12
13 servo_hole = 5.2;
14 servo_base_w = lens_size + 2*wall;
15 servo_base_l = 15 + servo_base_w/2;
16 servo_base_h = 2*wall;
17
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]);
21         // bottom
22         rotate([-lens_angle, 0, 0]) translate([-infty/2, -infty/2, -infty]) cube(infty);
23         // lens body
24         translate([-lens_size/2, wall, wall+(wall+lens_depth)*tan(-lens_angle)])
25                 cube([lens_size, lens_depth, lens_size + eps]);
26         // lens front
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]);
29         // cable hole
30         translate([-cable_w/2, wall, -eps])
31                 cube([cable_w, lens_depth+wall+eps, lens_size+wall+2*eps]);
32
33 }
34
35 difference() {
36         hull() {
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);
41         }
42                 
43         translate([0, -servo_base_l+servo_base_w/2, -eps])
44                 cylinder(r = servo_hole/2, h = servo_base_h + 2*eps);
45 }