include ; include ; module bearing_slot() { intersection() { difference() { translate([- frame_size / 2, - frame_size / 2, 1]) cube([frame_size, frame_size, 10]); cylinder(d = bushing_od, h = 6); cylinder(d = rail_diam, h = 12); } union() { cylinder(h = 12, d = frame_size); translate([-frame_size/2, 0, 0]) cube([frame_size, frame_size, frame_size]); } } } let($fn = 30) { translate([-28, 0, frame_size/2]) rotate([0,90,0]) bearing_slot(); translate([28, 0, frame_size/2]) rotate([0,-90,0]) bearing_slot(); idler_post(10); }