module printable_small_gears(ratio=2){
// check the ratio gives an integer number of teeth
assert(floor(n_teeth_small_gear(ratio))==n_teeth_small_gear(ratio),"The number of teeth on the small gear is not integer");
// Calculate the spacing from the gear pitch radius.
// Add 4mm of clearance
spacing = small_gear_pitch_radius(ratio) + small_gear_pitch_radius(ratio=2) + 4;
// x and y gears
repeat([0, 2*spacing, 0], 2, center=true){
// 3.15 is a trade off. Firm to push on some printers that print
// the gears loose. Should be press fit with a small clamp/vice
// if the printer prints tight. All are then locked with two screws
// Can be adjusted for printers outside this range.
small_gear(flat_shaft_w=3.15, ratio=ratio);
}
// z gear
small_gear(flat_shaft_w=3.15, ratio=2);
}