RADIUS=5; HEIGHT=5; CUT_DEPTH=2; NOTCH_HEIGHT=1; NOTCH_RADIUS=RADIUS+0.5; BOTTOM_HEIGHT=1; BOTTOM_RADIUS=RADIUS+1; $fn = 36; translate([0, 0, BOTTOM_HEIGHT]) intersection() { difference() { // inner shaft and nose union() { cylinder(h=HEIGHT, r=RADIUS); translate([0, 0, HEIGHT]) cylinder(h=NOTCH_HEIGHT, r=NOTCH_RADIUS); } // cuttin' middle cube translate([0, 0, HEIGHT/2]) cube([HEIGHT, HEIGHT*3, HEIGHT*2], center = true); } // surrounding cube translate([0, 0, HEIGHT/2]) cube([HEIGHT*3, HEIGHT, HEIGHT*2], center = true); } // ground plate cylinder(h=BOTTOM_HEIGHT, r=BOTTOM_RADIUS);