// -*- C -*-
include <nutbox.scad>
+include <utils.scad>
// pimoroni 3000mAh
battery = [ 51.5,
// calculated
+battery_fix_sz = NutBox_outer_size(battery_nutbox);
+
battery_nutbox_z = max( battery[2] + battery_wall_top_gap,
NutBox_h_base(battery_nutbox) );
battery_keeper_overhang_z = battery[2] + battery_keeper_m_th
battery_keeper_overhang_wall = battery_keeper_m_w;
battery_keeper_overhang_th = battery_keeper_m_th;
+// calculated outputs
+
+battery_keeper_tab_top_z = battery_nutbox_z
+ + battery_keeper_z_gap_nutbox + battery_keeper_m_th;
+ // NB does not include screw head
+
+battery_keeper_legs_top_z = battery_keeper_overhang_z
+ + battery_keeper_overhang_th;
+
+battery_keeper_frame_top_z = battery[2] + battery_keeper_m_th;
+
+battery_mount_y_min = -battery_fix_sz;
+battery_mount_y_max = battery[1] + battery_wall;
+battery_mount_x_sz = battery[0] + battery_wall_unsupp*2;
+
module BatteryPlan(){
rectfromto([ -battery[0]/2, 0 ],
[ +battery[0]/2, battery[1] ]);
[ -(battery[0]/2 + battery_wall_unsupp), battery[1]/3 ]);
}
BatteryPlan();
- rectfromto([ fix_sz/2 - 0.5
+ rectfromto([ battery_fix_sz/2 - 0.5
+ battery_keeper_screw_x_off, -30 ],
[ -battery[0], battery_wire_y ]);
}
}
// nutbox
- translate([battery_keeper_screw_x_off, -fix_sz/2, battery_nutbox_z])
+ translate([battery_keeper_screw_x_off, -battery_fix_sz/2, battery_nutbox_z])
NutBox(battery_nutbox, battery_nutbox_z + 0.1);
// overhang for legs at rear
difference(){
translate([0, battery[1] * ((i + 0.5) / battery_keeper_x_n)])
square(center=true, [ battery[0], battery_keeper_x_w ]);
- rectfromto([ -battery[1], -20 ],
- [ +pi_sz[1] - pi_usb_from_other_side,
- pi_usb_over_battery_proportion * battery[1] ]);
+ children(0);
}
}
}
battery_nutbox_z + battery_keeper_z_gap_nutbox])
linextr(0, battery_keeper_m_th, convexity=4) {
difference(){
- rectfromto([ -fix_sz/2, -fix_sz ],
- [ +fix_sz/2,
+ rectfromto([ -battery_fix_sz/2, -battery_fix_sz ],
+ [ +battery_fix_sz/2,
0.5 * battery[1] / battery_keeper_x_n +
0.5 * battery_keeper_m_w ]);
- translate([ 0, -fix_sz/2 ])
+ translate([ 0, -battery_fix_sz/2 ])
circle(r = battery_nutbox[0]/2);
}
}
module BatteryDemo(){ ////toplevel
color("grey") BatteryBase();
- BatteryKeeper();
+ BatteryKeeper() { union(){ } }
}