hole_dia = 14; hole_depth = 29; wall_thickness = 3; screw_hole_dia = 4; screw_hole_chamfer = 2; module slot(width, height) { radius = width / 2; squ_height = height-2*radius; union(){ square(size=[width, squ_height], center=true); translate([0,squ_height/2,0]) circle(r=radius); translate([0,-squ_height/2,0]) circle(r=radius); } } module sector(radius, angles, fn = 24) { r = radius / cos(180 / fn); step = -360 / fn; points = concat([[0, 0]], [for(a = [angles[0] : step : angles[1] - 360]) [r * cos(a), r * sin(a)] ], [[r * cos(angles[1]), r * sin(angles[1])]] ); difference() { circle(radius, $fn = fn); polygon(points); } } module holder() { inner_radius = 10.5; round_radius = 3; minkowski() { difference(){ circle(r=inner_radius+round_radius+0.1); circle(r=inner_radius+round_radius); sector(inner_radius+round_radius+2, [-30, 210]); } circle(r=round_radius, $fn=25); } } module safety() { } linear_extrude(wall_thickness){ slot(30, 60); } my_offset = -13; translate([0,my_offset,wall_thickness]) linear_extrude(wall_thickness) holder($fn=100); color("lavender") { translate([0,my_offset,4]) circle(r=10); }