module triPrism(s = 2, h = 4) { difference() { cube([s, s, h]); translate([0, 0, -0.5]) rotate([0, 0, 30]) cube([1.5 * s, 1.5 * s, h + 1]); } } $fn=50; ep = 0.01; module industrialCenter() { // smokestacks sw = 2.5; sh = 17; translate([-1, sw / 2 - 0.1, 0]) cylinder(d=sw, 17); translate([-1, -sw / 2 + 0.1, 0]) cylinder(d=sw, 17); // base bw = 8; translate([0, -bw / 2, 0]) cube([15, bw, 8]); // roof for (i = [0:2]) { translate([5 * i, bw / 2, 8 - ep]) rotate([90, 0, 0]) triPrism(s = 5, h = 8); } } industrialCenter();