diff --git a/lipo.scad b/lipo.scad new file mode 100644 index 0000000..e74ae58 --- /dev/null +++ b/lipo.scad @@ -0,0 +1,69 @@ +// 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]); +}