module tapebase (width,depth,height,thickness){ difference(){ cube([width,depth,height],center=true); translate([0,thickness,thickness]) cube([width-thickness*2,depth-thickness*2,height-thickness*2],center=true); translate([0,-(depth/2-20-height/2),12]) cube([width,24,height],center=true); translate([0,(depth/2-10-10/2),(height-10)/2]) cube([width,10,10],center=true); } } module bearingholder(width,depth,height,br_outer,br_width,holer_thickness){ translate([0,depth/2-15,height/2-5]) rotate([0,90,0]){ difference(){ cylinder(h=br_width,r1=br_outer+holer_thickness,r2=br_outer+holer_thickness,center=true); cylinder(h=br_width,r1=br_outer,r2=br_outer,center=true); } } } module bearingshaft(width,depth,height,thickness,br_inner){ translate([0,depth/2-15,height/2-5]) rotate([0,90,0]){ union(){ cylinder(h=width-thickness*2,r1=br_inner,r2=br_inner,center=true); translate([0,0,(width-thickness*2)/2+thickness/2]) cube([10,10,thickness],center=true); translate([0,0,-((width-thickness*2)/2+thickness/2)]) cube([10,10,thickness],center=true); translate([2.5,0,(width-thickness*2)/2+5]) cube([15,15,2],center=true); translate([2.5,0,-((width-thickness*2)/2+5)]) cube([15,15,2],center=true); } } } tapebase(28,74,34,4); bearingholder(28,74,34,15,5,5); bearingshaft(28,74,34,4,4); translate([60,0,0]) tapebase(48,74,34,4); translate([60,0,0]) bearingholder(48,74,34,15,10,5); translate([60,0,0]) bearingshaft(48,74,34,4,4);