108 lines
2.7 KiB
OpenSCAD
108 lines
2.7 KiB
OpenSCAD
|
/***************************************************************
|
||
|
Parameterized Battery pack with electrical connections
|
||
|
(c) 2010 Juan Gonzalez-Gomez (Obijuan) juan@iearobotics.com
|
||
|
This design is derived from the Battery comparment generator
|
||
|
(c) Nikolaus Gradwohl (guru (at) local-guru.net)
|
||
|
http://www.thingiverse.com/thing:5051
|
||
|
Other contributors:
|
||
|
* Chris Thompson (http://eagleapex.com/): Connection in series along the case
|
||
|
-----------------------------------------------------------
|
||
|
The nuts (two per battery) are embedded into the battery pack.
|
||
|
The screws (two per battery) are inserted from the outside and
|
||
|
touch the batteries.
|
||
|
-----------------------------------------------------------
|
||
|
GPL LICENCE
|
||
|
****************************************************************/
|
||
|
|
||
|
//-- Battery sizes
|
||
|
|
||
|
AA = [ 14.5, 50.5 ];
|
||
|
AAA = [ 10.5,44.5 ];
|
||
|
C = [ 26.2, 50 ];
|
||
|
D = [ 34.2, 61.5 ];
|
||
|
|
||
|
// CHOOSE BATTERY TYPE AND COUNT
|
||
|
typ = AA;
|
||
|
num =3;
|
||
|
|
||
|
|
||
|
//---------------------------------
|
||
|
//-- Battery pack parameters
|
||
|
//-- Can be set by the user
|
||
|
//---------------------------------
|
||
|
|
||
|
//-- Battery pack thickness
|
||
|
bottom_thick=1.5;
|
||
|
fr_thick=3.5; //-- Front and rear parts
|
||
|
side_thick=2; //-- Side part
|
||
|
|
||
|
//-- Distance beween batteries
|
||
|
distance_bat=1;
|
||
|
|
||
|
//-- Nut parameters
|
||
|
nut_h = 2.5;
|
||
|
nut_radius = 6.4/2;
|
||
|
nut_drill = 3.1;
|
||
|
|
||
|
//------------------------------
|
||
|
//-- IMPLEMENTATION
|
||
|
//------------------------------
|
||
|
//-- Battery dimensions: width, height and length. Change ser for batteries in series along the case.
|
||
|
|
||
|
ser=1;
|
||
|
w=typ[0];
|
||
|
h=w;
|
||
|
l=typ[1]*ser;
|
||
|
|
||
|
//-- Dimensions of the inner part of the compartiment
|
||
|
ip_l = l;
|
||
|
ip_w = w + (w+distance_bat)*(num-1);
|
||
|
ip_h = h;
|
||
|
|
||
|
//-- Dimensions of the mother cube
|
||
|
mc_l = ip_l+2*fr_thick;
|
||
|
mc_w = ip_w+2*side_thick;
|
||
|
mc_h = ip_h+bottom_thick;
|
||
|
|
||
|
//-- The process of building the battery pack is just substracting
|
||
|
//-- things to the mother cube
|
||
|
rotate([0,0,90])
|
||
|
difference() {
|
||
|
//-- The mother cube
|
||
|
translate([0,0,-bottom_thick/2])
|
||
|
cube(size=[mc_l, mc_w, mc_h],center=true);
|
||
|
|
||
|
//-- Array of batteries
|
||
|
translate([0,0,h/2])
|
||
|
cube(size=[ip_l,ip_w,ip_h],center=true);
|
||
|
|
||
|
translate([0,-mc_w/2+w/2+side_thick,0])
|
||
|
for ( i = [0:num-1] ) {
|
||
|
|
||
|
translate([0,i*(w+distance_bat),0])
|
||
|
union() {
|
||
|
translate([0,0,h/2])
|
||
|
cube(size=[l,w,h],center=true);
|
||
|
|
||
|
rotate([0,90,0])
|
||
|
cylinder(r=w/2, h=l-0.01, center=true, $fn=50);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//-- Array of contacts
|
||
|
translate([0,-mc_w/2+w/2+side_thick,0])
|
||
|
for ( i = [0:num-1] ) {
|
||
|
//-- Drills
|
||
|
translate([0,i*(w+distance_bat),0])
|
||
|
rotate([0,90,0])
|
||
|
cylinder(center=true,h=l+20, r=nut_drill/2, $fn=50, center=true);
|
||
|
|
||
|
//-- Room for the embedded nuts
|
||
|
translate([0,i*(w+distance_bat),0])
|
||
|
rotate([0,90,0])
|
||
|
cylinder(h=l+2*nut_h, r=nut_radius, $fn=6, center=true);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|