// Lego custom li-po battery box // (work in progress, not printable and not usable by now) // GPLv3, (c) Vitaliy Filippov, 2016 // 30x12x64 place for battery $fn = 40; term(); top(); color([0.5, 1, 0.5]) bottom(); module bottom() { union() { difference() { union() { translate([0, -48, -40]) cube(size=[16, 64, 32]); translate([0, -48+12, -6]) rotate([0, 90, 0]) cylinder(r=2, h=16); //rotate([45, 0, 0]) cube(size=[60, 3, 3], center=true); translate([8, -48+12, -8]) cube(size=[16, 3.6, 3], center=true); translate([0, -48+32, -6]) rotate([0, 90, 0]) cylinder(r=2, h=16); //rotate([45, 0, 0]) cube(size=[60, 3, 3], center=true); translate([8, -48+32, -8]) cube(size=[16, 3.6, 3], center=true); translate([0, -48+52, -6]) rotate([0, 90, 0]) cylinder(r=2, h=16); //rotate([45, 0, 0]) cube(size=[60, 3, 3], center=true); translate([8, -48+52, -8]) cube(size=[16, 3.6, 3], center=true); } translate([2, -48+2, -40+4]) cube(size=[12, 60, 60]); translate([1.6, -48+1.6, -40-0.1]) cube(size=[12.8, 60.8, 2+0.1]); } translate([8, -48+8, -40]) cylinder(r=3.2); translate([8, -48+16, -40]) cylinder(r=3.2); translate([8, -48+24, -40]) cylinder(r=3.2); translate([8, -48+32, -40]) cylinder(r=3.2); translate([8, -48+40, -40]) cylinder(r=3.2); translate([8, -48+48, -40]) cylinder(r=3.2); translate([8, -48+56, -40]) cylinder(r=3.2); } } module top() { difference() { translate([0, -48, -8]) cube(size=[16, 64, 8]); translate([2, -48+2, -8-0.1]) cube(size=[12, 60, 6+0.1]); translate([-1, -48+12, -6]) rotate([0, 90, 0]) cylinder(r=2, h=50); //rotate([45, 0, 0]) cube(size=[60, 3, 3], center=true); translate([-1, -48+12, -8]) cube(size=[60, 3.6, 3], center=true); translate([-1, -48+32, -6]) rotate([0, 90, 0]) cylinder(r=2, h=50); //rotate([45, 0, 0]) cube(size=[60, 3, 3], center=true); translate([-1, -48+32, -8]) cube(size=[60, 3.6, 3], center=true); translate([-1, -48+52, -6]) rotate([0, 90, 0]) cylinder(r=2, h=50); //rotate([45, 0, 0]) cube(size=[60, 3, 3], center=true); translate([-1, -48+52, -8]) cube(size=[60, 3.6, 3], center=true); } } module term() { difference() { union() { translate([4, 1.3, -0.1]) cube(size=[8, 6.8, 2+0.1]); translate([(16-11.2)/2, 1.7, -0.1]) cube(size=[11.2, 6, 2+0.1]); translate([(16-11.2)/2, 1.7+3, -0.1]) scale([(13-11.2)/2/3, 1, 1]) cylinder(r=3, h=2+0.1); translate([16-(16-11.2)/2, 1.7+3, -0.1]) scale([(13-11.2)/2/3, 1, 1]) cylinder(r=3, h=2+0.1); translate([12, 12, 0]) cylinder(r=4.9/2, h=2); translate([4, 12, 0]) cylinder(r=4.9/2, h=2); } translate([(16-10.5)/2, 1.7+1.7, -0.1]) cube(size=[10.5, 3, 2.2]); } color([1, 0, 0]) translate([16-4-3.8-1.8, 6.3, 0]) cube(size=[1.8+3, 1.1, 2.1]); color([0, 0, 0]) translate([4+0.8, 2.4, 0]) cube(size=[1.8+3, 1.1, 2.1]); }