module stick_shuttle(l, r=4) { difference() { intersection() { rotate([0, 90, 0]) hull() { cylinder(r1=0.5, r2=r, h=r*2); translate([0, 0, l - r * 2]) cylinder(r1=r, r2=0.5, h=r*2); } translate([-1, -r-1, -r/2]) cube([l+2, (r+1) * 2, r]); } translate([r*2, 0, 0]) cylinder(r=r/2.5, h=r*2, center=true, $fn=10); translate([l - r*2, 0, 0]) cylinder(r=r/2.5, h=r*2, center=true, $fn=10); translate([0, -r/4, -r]) cube([r*2, r/2, r*2]); translate([l-r*2, -r/4, -r]) cube([r*2, r/2, r*2]); } }