diff options
| author | Nikita Kostovsky <nikita@kostovsky.me> | 2026-01-06 16:18:12 +0100 |
|---|---|---|
| committer | Nikita Kostovsky <nikita@kostovsky.me> | 2026-01-06 16:18:12 +0100 |
| commit | e69aa61989896a6dfd65acb7753377eb69630203 (patch) | |
| tree | ea0f1dc6dba37cd42ca9a27ae902e88cd1828ecd /body/m12_lense_holder.scad | |
add openscad prototype for scanner body. draw m12 lense holder
Diffstat (limited to 'body/m12_lense_holder.scad')
| -rw-r--r-- | body/m12_lense_holder.scad | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/body/m12_lense_holder.scad b/body/m12_lense_holder.scad new file mode 100644 index 0000000..63df125 --- /dev/null +++ b/body/m12_lense_holder.scad @@ -0,0 +1,91 @@ +// calculate cylinder/circle "Fragments Number" based on diameter +function diameterToFn(d) = (d * PI * 3); + +// 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 +module m12_lense_holder_wo_holes() +{ + $S = $m12_lense_holder_size; + $cube_size = [$S, $S, $m12_lense_holder_bottom_h]; + + // 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 = $m12_lense_holder_top_h, 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 = $m12_lense_holder_bottom_h, + d = $m12_lense_holder_sh_outer_d); + + translate($m12_lense_holder_r_hole_offset) + cylinder( + $fn = diameterToFn($m12_lense_holder_sh_outer_d), + h = $m12_lense_holder_bottom_h, + d = $m12_lense_holder_sh_outer_d); + } +} + +module m12_lense_holder_holes() +{ + // 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();
\ No newline at end of file |
