module triPrism(s = 2, h = 4) { difference() { cube([s, s, h]); translate([0, 0, -0.5]) rotate([0, 0, 45]) cube([1.5 * s, 1.5 * s, h + 1]); } } $fn=50; ep = 0.01; module antiAir() { // base cylinder(d = 12, h = 1); for (i = [0:3]) { color("LightCoral") rotate([0, 15, 90 * i]) translate([-0.5, -1.5, 1.5]) cube([5.5, 3, 1]); } // central column translate([-1.5, -1, 2]) cube([3, 2, 4]); // body color("LightSeaGreen") translate([-3.25, 1.5, 3]) rotate([90, 0, 0]) triPrism(s=5, h=3); color("Coral") translate([0, 1.75, 4.25]) rotate([90, 0, 0]) cylinder(d=2, h=3.5); intersection() { color("LightSteelBlue") translate([-8, -1.5, 0]) rotate([0, 45, 0]) cube([2.5, 3, 20]); rotate([0, -45, 0]) scale([1.3, 0.75, 1]) translate([2.5, 0, 0]) cylinder(d=7, h=8); } // main barrel translate([-4.5, 0, 3.25]) rotate([0, 45, 0]) cylinder(d=1.6, h=16); // decorations color("Cornsilk") translate([0, 0, 7.5]) rotate([0, 45, 0]) cylinder(d=3, h=0.6); color("Cornsilk") translate([-3.5, 0, 4]) rotate([0, 45, 0]) cylinder(d=3, h=0.6); color("MistyRose") for (i = [0:1]) { translate([-3.25, 1.5 - 3*i, 3.25]) rotate([0, 45, 0]) cylinder(d=1, h=6); } } antiAir();