// Name on the can name = "Peter"; // 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> ; use <../lib/text_on.scad> ; // For the Preview Crosssection intersection() { // To remove unnecessary edges difference() { 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]) difference() { cylinder(h = thickness, r = can_dia / 2, center = true); rotate([180, 0, 0]) resize([can_dia * .9, can_dia * .9, 0], [true, true, false]) linear_extrude(height = thickness / 2 + .1) import(file = "1A_MainLogo_Cube_2021.svg", 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([.25, 1, 1]) circle(r = 1); } } text_on_cylinder(t = name, r = can_dia / 2 + thickness, h = can_height / 2, size = 10, center = true, cylinder_center = true, extrusion_height = wall, font = "Hack Nerd Font"); } translate([-1.4,2.1,0]) cylinder(h=can_height, r=2.1, center=true); } 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); } }