/****************************************************************** * * * FlowFlexure Microscope: tube holder * * * * (c) Sebastian Wendel, 2023 * * Released under the CERN Open Hardware License * * * ******************************************************************/ $fn = 100; case_thickness = 3; tube_count = 3; tube_radius = 15; tube_height = 20; module hook() { translate([ 23.5, -(tube_height + case_thickness * 1.5), tube_height - case_thickness ]) rotate([ 0, 90, 0 ]) { linear_extrude(tube_height) { square([ tube_height - case_thickness, case_thickness ]); rotate([ 0, 0, 90 ]) square([ case_thickness * 2.5, case_thickness ]); } } } module tube_holes(radius = tube_radius) { circle(radius); translate([ (tube_radius * 2) + case_thickness, 0, 0 ]) circle(radius); translate([ ((tube_radius * 2) + case_thickness) * 2, 0, 0 ]) circle(radius); } module tube_holder_base() { difference() { hull() { tube_holes(tube_radius + (case_thickness)); } tube_holes(); } } module tube_holder() { linear_extrude(tube_height) { tube_holder_base(); } hook(); } tube_holder();