$fn = 80; // Hexagon module hex(size, height) for (i = [0, 120, 240]) rotate([0, 0, i]) cube([size, sqrt(3)*size, height], center=true); rotate([30, 0, 0]) { // Barrel hex(2, 15); // Tip translate([0, 0, 5]) intersection() { cylinder(h=8, r1=3, r2=0); hex(2, 20); } // Ferrule translate([0, 0, -10]) union() { cylinder(h=4, r=2); // Ferrule ribs for (i = [1, 2, 3]) translate([0, 0, i]) rotate_extrude() translate([1.6, 0, 0]) circle(r=0.5); // Ferrule rounded ends for (i = [0, 4]) translate([0, 0, i]) rotate_extrude() translate([1.5, 0, 0]) circle(r=0.5); } // Eraser translate([0, 0, -14]) intersection() { translate([0, 0, 2.7]) sphere(3); translate([0, 0, ]) cylinder(h=4, r=1.9); } }