diff --git a/Can Sleeve/Can Sleeve.scad b/Can Sleeve/Can Sleeve.scad index a537a1b..062559c 100644 --- a/Can Sleeve/Can Sleeve.scad +++ b/Can Sleeve/Can Sleeve.scad @@ -15,84 +15,86 @@ 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>; +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]) + 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/2,0,0]) - intersection(){ - union(){ - difference(){ - circle(thickness); - circle(thickness-wall); + 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([0, 0, 45]) + square([thickness - 2 * wall, thickness * 2 - wall], center = true); } - rotate_extrude() - translate([can_dia / 2, 0, 0]) - scale([.5, 1, 1]) - circle(r = 1); + 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); } - } - 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"); + + // + // 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); + } + } + } + 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"); } 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); + 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); } }