ep = 0.01; $fn = 128; difference() { union() { difference() { // main cylinder stack color("SkyBlue") union() { translate([0, 0, 6.5]) cylinder(d = 27, h = 13, center = true); translate([0, 0, 1]) cylinder(d = 29, h = 2, center = true); } color("LavenderBlush") union() { // cut away the interior translate([0, 0, 5]) cylinder(d = 25, h = 10.01, center = true); // square off the sides translate([-10, 13.5, -1]) cube([20, 10, 15]); translate([-10, -23.5, -1]) cube([20, 10, 15]); } } // add internal indexing ridges color("LightSteelBlue") union() { translate([-1.5, 12, 0]) cube([3, 1.25, 6]); translate([-1.5, -13.25, 0]) cube([3, 1.25, 6]); } } color("DarkSeaGreen") union() { // punch out the side holes translate([0, 0, 3.1]) rotate([90, 0, 0]) cylinder(d = 2.2, h = 30, center=true); translate([0, 0, 4.3]) rotate([90, 0, 0]) cylinder(d = 2.2, h = 30, center=true); translate([-1.1, -15, 3]) cube([2.2, 30, 1.5]); // chamfer the top difference() { translate([0, 0, 10]) cylinder(d2 = 26, d1 = 34, h = 6); translate([0, 0, 9.99]) cylinder(d2 = 16, d1 = 28, h = 6.02); } // emboss hope logo translate([-11, -11.25, 12.6]) scale([0.35, 0.35, 1]) linear_extrude(1) import("HFF_standalone_H_RGB.svg"); } }