summaryrefslogtreecommitdiff
path: root/body/m12_lense_holder.scad
blob: 64165a8f262af343e3aeb0194353b9bd52924c41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
use <helpers.scad>

// m12 cam holder size
$m12_lense_holder_size = 13;
// bottom part height
$m12_lense_holder_bottom_h = 3.5;
// top part height
$m12_lense_holder_top_h = 3.5;
// distance between holes centers
$m12_lense_holder_d_btw_holes = 18;
// screw holes outer diameter
$m12_lense_holder_sh_outer_d = 4;
// screw holes inner diameter
$m12_lense_holder_sh_inner_d = 1.5;
// left hole offset
$m12_lense_holder_l_hole_offset = [-$m12_lense_holder_d_btw_holes / 2, 0, 0];
// right hole offset
$m12_lense_holder_r_hole_offset = [$m12_lense_holder_d_btw_holes / 2, 0, 0];
// lense hole diameter
$m12_lense_holder_lense_hole_diameter = 12;

// m12 lense holder without holes
// th - height of top round part of m12 lense holder
//module m12_lense_holder_wo_holes(th = $m12_lense_holder_top_h)
module m12_lense_holder_wo_holes(
    th = $m12_lense_holder_top_h,
    bh = $m12_lense_holder_bottom_h)
{
    $S = $m12_lense_holder_size;
    $cube_size = [$S, $S, bh];

    rotate([-90, 0, 0])
    {
        // bottom cube
        translate([0, 0, $cube_size[2] / 2])
        cube($cube_size, center = true);
        
        // top cylinder
        translate([0, 0, $cube_size[2]])
        cylinder($fn=diameterToFn($S), h = th, d = $S);
        
        // screw holes, outer body to cut from
        hull()
        {
            translate($m12_lense_holder_l_hole_offset)
            cylinder(
                $fn = diameterToFn($m12_lense_holder_sh_outer_d),
                h = bh,
                d = $m12_lense_holder_sh_outer_d);

            translate($m12_lense_holder_r_hole_offset)
            cylinder(
                $fn = diameterToFn($m12_lense_holder_sh_outer_d),
                h = bh,
                d = $m12_lense_holder_sh_outer_d);
        }
    }
}


module m12_lense_holder_base()
{
    m12_lense_holder_wo_holes(th = 0.001, bh = 0.001);
}

module m12_lense_holder_holes()
{
    rotate([-90, 0, 0])
    {
        // left screw hole
        translate($m12_lense_holder_l_hole_offset)
        cylinder(
            $fn = diameterToFn($m12_lense_holder_sh_inner_d),
            h = $m12_lense_holder_bottom_h * 3,
            d = $m12_lense_holder_sh_inner_d,
            center = true);

        // right screw hole
        translate($m12_lense_holder_r_hole_offset)
        cylinder(
            $fn = diameterToFn($m12_lense_holder_sh_inner_d),
            h = $m12_lense_holder_bottom_h * 3,
            d = $m12_lense_holder_sh_inner_d,
            center = true);

        // lense hole
        cylinder(
            $fn = diameterToFn($m12_lense_holder_lense_hole_diameter),
            d = $m12_lense_holder_lense_hole_diameter,
            h = ($m12_lense_holder_bottom_h + $m12_lense_holder_top_h) * 3,
            center = true);
    }
}
   
module m12_lense_holder()
{
    difference()
    {
        
        m12_lense_holder_wo_holes();
        m12_lense_holder_holes();
    }
}

//m12_lense_holder();
//m12_lense_holder_wo_holes();