// 0 = all, 1=only the bracket export_set = 0; laser_pen_diam = 15; holder_spacing=60; holder_len = 18; holder_width = 5; holder_height = laser_pen_diam + 4; holder_back_len = holder_spacing + holder_width + 10; module pad(l,h,z) { linear_extrude(height = z, center = false, convexity = 10, twist = 0) { polygon(points = [ [0,0], [0,l], [h,0]]); } } module screw_hole(y,z) { translate(v=[-9,y,z]) rotate(a=90, v=[0,1,0]){ cylinder(h=2.5, d=1.8*3.2, $fn=6); } translate(v=[-20,y,z]){ rotate(a=90, v=[0,1,0]){ cylinder(h=30, d=3.2,$fn=10); } } } //module pico_haut(){ //translate(v=[holder_len/2,0,5]){ // rotate(a=90, v=[1,0,0]) { // cylinder(h=holder_width, // d=2,center=true, $fn=20); // } // } //} module start_stop_cyl(){ translate(v=[holder_len/2-.5, 0, 4]){ rotate(a=90, v=[1,0,0]) { cylinder(h=holder_width, d=1.8,center=true, $fn=20); } } translate(v=[0, 0, -holder_height/2+.5]){ rotate(a=90, v=[1,0,0]) { cylinder(h=holder_width, d=1.8,center=true, $fn=20); } } } module holder_base(){ union(){ hull(){ translate(v=[holder_len/2-1, 0, holder_height/2]){ rotate(a=90, v=[1,0,0]) { cylinder(h=holder_width, d=2,center=true, $fn=20); } } translate(v=[-holder_len/2, 0, holder_height/2,]){ rotate(a=90, v=[1,0,0]) { cylinder(h=holder_width, d=2,center=true, $fn=20); } } translate(v=[-holder_len/2, 0, -holder_height/2]){ rotate(a=90, v=[1,0,0]) { cylinder(h=holder_width, d=2,center=true, $fn=20); } } start_stop_cyl(); } translate(v=[-7,0,4]) pad(6,5,5); translate(v=[-7,0,-7]) pad(6,5,5); rotate(a=180, v=[1,0,0]) translate(v=[-7,0,-8]) pad(6,5,5); rotate(a=180, v=[1,0,0]) translate(v=[-7,0,4]) pad(6,5,5); } } module holder(pos_y) { translate(v=[0,pos_y,0]){ union(){ difference() { holder_base(); translate(v=[2,0,-1]){ rotate(a=90, v=[1,0,0] ){ cylinder(h = holder_width+1, d = laser_pen_diam, center = true, $fn=30); } } translate(v=[holder_len/3,0,-holder_height/4]) { #cube([holder_len/2+3, holder_width+1, holder_height/2+7], center=true); } } start_stop_cyl(); } } } difference(){ union(){ holder(0); if (export_set == 0) { holder(holder_spacing); translate(v=[-holder_len/2,holder_spacing/2,0]){ cube([5,holder_back_len,21], center=true); } } // // translate(v=[-holder_len/2,holder_spacing/2,-3]){ // cube([5,holder_spacing+holder_width,20], center=true); // } } screw_hole(10,5); screw_hole(10,-5); screw_hole(50,5); screw_hole(50,-5); }