Files
ryobi-power-bank/18to12.scad

208 lines
4.3 KiB
OpenSCAD

$fn=45;
translate([-65,-22.5,24])
%buck_reg();
%batt_plate();
%batt_clip();
translate([-40,4,8])
%cutoff();
// render each of these individually
%base();
lid();
module lid()
{
translate([-80,-25,3])
difference()
{
minkowski()
{
cube([135,50,50]);
sphere(d=20);
}
translate([3,3,-3])
minkowski()
{
cube([129,44,50]);
sphere(d=20);
}
translate([-10,-10,-10])
cube([155,70,10]);
for (x=[10:10:70])
translate([x,-10,10])
cube([4,70,35]);
}
translate([-82.5,-27.5,3])
lid_hole();
translate([-82.5,27.5,3])
lid_hole();
translate([57.5,-27.5,3])
lid_hole();
translate([57.5,27.5,3])
lid_hole();
}
module lid_hole()
{
difference()
{
cylinder(d=10, h=20);
cylinder(d=3.2, h=20);
}
}
module cutoff()
{
import("BatteryCutoff.stl");
}
module buck_reg()
{
difference()
{
cube([60,45,1.6]);
translate([1.6+3.05/2, 1.55+3.05/2, -.5])
cylinder(d=3.05, h=2.6);
translate([1.6+3.05/2, 45-1.85-3.05/2, -.5])
cylinder(d=3.05, h=2.6);
translate([60-1.65-3.05/2, 1.55+3.05/2, -.5])
cylinder(d=3.05, h=2.6);
translate([60-1.65-3.05/2, 45-1.85-3.05/2, -.5])
cylinder(d=3.05, h=2.6);
}
translate([6.8,-4.88,1.6])
cube([45,45+2*4.88,25]);
};
module buck_reg_holes_s()
{
translate([1.6+3.05/2, 1.55+3.05/2, -.5])
cylinder(d=10, h=21.5);
translate([1.6+3.05/2, 45-1.85-3.05/2, -.5])
cylinder(d=10, h=21.5);
translate([60-1.65-3.05/2, 1.55+3.05/2, -.5])
cylinder(d=10, h=21.5);
translate([60-1.65-3.05/2, 45-1.85-3.05/2, -.5])
cylinder(d=10, h=21.5);
}
module buck_reg_holes_d()
{
translate([1.6+3.05/2, 1.55+3.05/2, -.5])
cylinder(d=3.05, h=21.5);
translate([1.6+3.05/2, 45-1.85-3.05/2, -.5])
cylinder(d=3.05, h=21.5);
translate([60-1.65-3.05/2, 1.55+3.05/2, -.5])
cylinder(d=3.05, h=21.5);
translate([60-1.65-3.05/2, 45-1.85-3.05/2, -.5])
cylinder(d=3.05, h=21.5);
}
module batt_plate()
{
translate([240,112,0])
rotate([180,0,0])
import("Ryobi_18V_Batt_Connect_USB.stl");
}
module base()
{
translate([-65,-22.5,3])
difference()
{
buck_reg_holes_s();
buck_reg_holes_d();
}
difference()
{
union()
{
translate([-80,-25])
{
linear_extrude(3, convexity=10)
minkowski()
{
square([135,50]);
circle(d=20);
}
}
translate([-5,-15,3])
cube([10,30,3]);
translate([45,-15,3])
cube([10,30,3]);
base_holes_s();
}
base_holes_d();
translate([-82.5,-27.5,0])
cs_hole();
translate([-82.5,27.5,0])
cs_hole();
translate([57.5,-27.5,0])
cs_hole();
translate([57.5,27.5,0])
cs_hole();
}
translate([-10,0,3])
{
translate([-70.5,-14.5,0])
{
cube([65.5,2,5]);
cube([2,28,5]);
}
translate([-70.5,13.5,0])
cube([65.5,2,5]);
translate([-6,-14.5,0])
cube([2,28,5]);
}
}
module cs_hole()
{
cylinder(d1=7, d2=3.5, h=1.5);
cylinder(d=3.5, h=3);
}
module base_holes_s()
{
cylinder(d=7.2, h=10);
translate([50,0,0])
cylinder(d=7.2, h=10);
translate([47,20,0])
cylinder(d=7.2, h=10);
translate([47,-20,0])
cylinder(d=7.2, h=10);
translate([-53,20,0])
cylinder(d=7.2, h=10);
translate([-53,-20,0])
cylinder(d=7.2, h=10);
}
module base_holes_d()
{
cylinder(d=3.2, h=10);
translate([50,0,0])
cylinder(d=3.2, h=10);
translate([47,20,0])
cylinder(d=3.2, h=10);
translate([47,-20,0])
cylinder(d=3.2, h=10);
translate([-53,20,0])
cylinder(d=3.2, h=10);
translate([-53,-20,0])
cylinder(d=3.2, h=10);
translate([5,-17,0])
cube([40,34,3]);
translate([-6.7,-9,0])
cube([62.4,18,2.4]);
}
module batt_clip()
{
translate([34.5,-52,0])
import("Ryobi_18V_Battery_Connector_Tower_V3.stl");
}