$fn = 128; eps = 0.01; infty = 200; can_d = 65 + 1.5; cone_h = 3; angle = 15; // from the vertical axis side_h = 25; wall = 1.5; side_w = 12; center_slot = 20; difference() { translate([0, 0, (can_d/2+wall)*sin(angle)]) rotate([0, angle, 0]) cylinder(r = can_d/2 + wall, h = side_h + wall); translate([0, 0, (can_d/2+wall)*sin(angle)]) rotate([0, angle, 0]) translate([0, 0, wall/cos(angle)]) { cylinder(r1 = can_d/2-cone_h, r2 = can_d/2, h = cone_h + eps); translate([0, 0, cone_h]) cylinder(r = can_d/2, h = side_h + eps); translate([-can_d/2-wall-eps, 0, side_h]) rotate([0, 90, 0]) scale([side_h/center_slot, 1, 1]) cylinder(r = center_slot, h = can_d + 2*wall + 2*eps); } translate([-infty/2, -infty/2, -infty]) cube(infty); } hull() { translate([0, 0, (can_d/2+wall)*sin(angle)]) rotate([0, angle, 0]) cylinder(r = can_d/2 + wall, h = eps); scale([cos(angle), 1, 1]) cylinder(r = can_d/2 + wall, h = wall); } translate([-(can_d/2+wall)*cos(angle), -side_w-wall-can_d/2, 0]) cube([(can_d+2*wall)*cos(angle)+wall*tan(angle), 2*side_w+2*wall+can_d, wall]);