$fn=50; //Barrel difference() { rotate([90,0,0]) cylinder(h=28,d1=5,d2=5, center=true); translate([0,-29/2,0]) rotate([90,0,0]) cylinder(h=10,d1=3,d2=3, center=true); } //head union(){ difference(){ hull() { rotate([90,0,0]){ translate([0,0,-25/2]) cylinder(h=2,d1=5,d2=5, center=true); } translate([0,29/2+19/2,0]){ rotate([0,90,0]) cylinder(h=2,d=19, center=true); } } translate([0,20,2.5]) rotate([0,90,0]) cylinder(h=10, d=7, center=true); translate([0,28,2.5]) rotate([0,90,0]) cylinder(h=10, d=7, center=true); translate([0,20,-2.5]) rotate([0,90,0]) cylinder(h=10, d=7, center=true); translate([0,28,-2.5]) rotate([0,90,0]) cylinder(h=10, d=7, center=true); } translate([0,24,0]) rotate([90,0,0]) cylinder(h=18, d1=2, d2=4.7, center=true); } //keyway difference(){ translate([0,(-28/2)+4/2,-5]) cube([2,3,7], center=true); translate([0,(-28/2),-3.5]) cube([5,5,1], center=true); translate([0,(-28/2),-6]) cube([5,5,2], center=true); }