/* Linear units are mm */ ext_dia = 32.0; int_dia = 8.0; h = 9; mnth_dia = 3.2; mnth_ins_dia = 6.0; mnth_ins_h = 2.0; mnth_center_r = 45.0; mnth_num = 5; mnta_w = 15.0; mnta_h = 6.0; bearing_od = 19.0; bearing_h = 6.0; $fn = 64; translate([0, 0, h]) rotate(180, [0, 1, 0]) difference() { union() { cylinder(d=ext_dia, h=h); for (alpha = [0 : 360/mnth_num : 359.9999]) { rotate(alpha-180, [0,0,1]) { translate([0, -mnta_w/2, 0]) cube([mnth_center_r, mnta_w, mnta_h]); translate([mnth_center_r, 0, 0]) cylinder(d=mnta_w, h=mnta_h); } } } cylinder(d=int_dia, h=h); for (alpha = [0 : 360/mnth_num : 359.9999]) { rotate(alpha, [0, 0, 1]) translate([-mnth_center_r, 0, 0]) union() { cylinder(d=mnth_dia, h=mnta_h); translate([0, 0, mnta_h-mnth_ins_h]) cylinder(d=mnth_ins_dia, h=mnth_ins_h); } } cylinder(d=bearing_od, h=bearing_h); }