From ce42c5177c20957f5103cebae0bd789207be2046 Mon Sep 17 00:00:00 2001 From: Peter Ludikovsky Date: Wed, 26 Jun 2024 09:12:05 +0200 Subject: [PATCH] Can Sleeve: Rundungen & Parameter --- Can Sleeve/Can Sleeve.scad | 106 ++++++++++++++++++++++++++----------- lib/defaults.scad | 5 ++ 2 files changed, 81 insertions(+), 30 deletions(-) create mode 100644 lib/defaults.scad diff --git a/Can Sleeve/Can Sleeve.scad b/Can Sleeve/Can Sleeve.scad index 8aca682..46ca6db 100644 --- a/Can Sleeve/Can Sleeve.scad +++ b/Can Sleeve/Can Sleeve.scad @@ -1,39 +1,85 @@ -$fa = $preview ? 12 : 1; -$fs = $preview ? 1 : 0.2; +// 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] -height=168; -diameter=67; -thickness=2.5; +// 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] -intersection(){ -union(){ - difference(){ - cylinder(h=(height+thickness-15),r=diameter/2+thickness,center=true); - translate([0,0,thickness/2+.1]) - cylinder(h=(height-15+.1),r=diameter/2,center=true); - translate([0,0,.6]) - difference(){ - cylinder(h=(height-15-1.2),r=diameter/2+thickness-.6,center=true); - cylinder(h=(height-15-1.0),r=diameter/2+.6,center=true); +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); } - } - - for(i=[-4:1:4]){ - translate([0,0,i*15]) + 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(){ - cylinder(h=2, r=diameter/2+thickness,center=true); - cylinder(h=2.1, r=diameter/2, center=true); + circle(thickness); + circle(thickness-wall); } - rotate_extrude() - translate([diameter/2,0,0]) - scale([.5,1,1]) - circle(r=1); + 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); + } } -if($preview){ - translate([0,20,0]) - cube([80,40,200], center=true); -} -} \ No newline at end of file diff --git a/lib/defaults.scad b/lib/defaults.scad new file mode 100644 index 0000000..7cc8377 --- /dev/null +++ b/lib/defaults.scad @@ -0,0 +1,5 @@ +nozzle = !is_undef(nozzle) ? nozzle : 0.4; +layer = !is_undef(layer) ? layer : 0.2; + +$fa = $preview ? 10 : 0.1; +$fs = $preview ? 1 : min(layer, nozzle/2); \ No newline at end of file