use // 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]; 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 = $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() { 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();