// Can height can_height = 168;// [115:330mL,168:500mL,135:Energy Drink,180:Energy Drink L,146:Soda Sleek] // Can width can_dia = 67;// [67:330mL,67:500mL,53:Energy Drink,63:Energy Drink L,58:Soda Sleek] // Lip height lip = 15; // Total wall thickness thickness = 2.5; // Inner/Outer Wall thickness wall = 0.8;//[0.1:0.1:2.4] // Interior ribs ribs = 7;// [1:1:9] include <../lib/defaults.scad>; // For the Preview Crosssection intersection() { // To remove unnecessary edges union() { // Primary Cylinder, inner & outer wall translate([0,0,thickness/2]) union(){ difference() { cylinder(h = can_height-lip-2*thickness, r = can_dia / 2 + thickness, center = true); cylinder(h = can_height-lip-2*thickness + .1, r = can_dia / 2+thickness-wall, center = true); } difference() { cylinder(h = can_height-lip-2*thickness, r = can_dia / 2 +wall, center = true); cylinder(h = can_height-lip-2*thickness + .1, r = can_dia / 2, center = true); } } // Rounded lip translate([0,0,(can_height-lip-thickness)/2]) rotate_extrude() translate([(can_dia+thickness)/2,0,0]) intersection() { circle(thickness/2); translate([-(thickness+1)/2,0,0]) square(thickness+1); } // Bottom translate([0,0,-(can_height-lip-3*thickness)/2]) rotate_extrude() translate([can_dia/2,0,0]) intersection(){ union(){ difference(){ circle(thickness); circle(thickness-wall); } circle(wall); rotate([0,0,45]) square([thickness-2*wall,thickness*2-wall],center=true); } translate([0,-thickness,0]) square(thickness); } translate([0,0,-(can_height-lip-2*thickness)/2]) cylinder(h=thickness, r=can_dia/2, center=true); // // Ribs for structural strengt & grip for(i = [-((ribs - 1) / 2):((ribs - 1) / 2)]) { translate([0, 0, i * (can_height-lip) / (ribs + 1)]) union() { difference() { cylinder(h = 2, r = can_dia / 2 + thickness, center = true); cylinder(h = 2.1, r = can_dia / 2, center = true); } rotate_extrude() translate([can_dia / 2, 0, 0]) scale([.5, 1, 1]) circle(r = 1); } } } if ($preview) { translate([0, 5+can_dia/4, 0]) cube([can_dia+10, 10+can_dia/2, can_height+10], center = true); translate([0,0,(thickness+lip)/2]) %cylinder(h=can_height,d=can_dia,center=true); } }