chiark / gitweb /
adafruit-powerboost: battery legend wip
[reprap-play.git] / adafruit-powerboost-1000.scad
index 5dae78375755267fdcd2eede5bb602f69ac4a63f..05f6f2b8e4f353e9f9b3219606be39c19b7c9e66 100644 (file)
@@ -24,10 +24,20 @@ psu_led_baffle_th = 0.8;
 psu_led_baffle_ends = 1.5;
 
 psu_baffle_th = [ 0.8, 3.5 ];
-psu_innerend_led_depth = 10;
+psu_innerend_led_depth = 7;
+
+psu_led_legend_battery_l = 6.0;
+psu_led_legend_battery_w = 4.0;
+psu_led_legend_battery_edge = 0.75;
+psu_led_legend_battery_nub_l = 0.75;
+psu_led_legend_battery_nub_w = 1.5;
+
+psu_led_legend_gap = 0.75;
 
 // ----- calculated -----
 
+psu_innerend_led_x_midder =  - psu_hole_pos[1] - psu_hole_dia/2;
+
 module PsuLedBafflePlan(){
   AtPsuMountCorner(0,0) {
     translate([ (psu_led_chrg_min_x + psu_led_chrg_max_x)/2,
@@ -63,9 +73,39 @@ module PsuLedWindowsPlanCore(){
       // One LED, PWR, near outlet USB pads
       AtPsuMountCorner(0,1){
        rectfromto([0,0],
-                  [psu_sz[0]/2 - psu_hole_pos[1] - psu_hole_dia/2,
+                  [psu_sz[0]/2 + psu_innerend_led_x_midder,
                    psu_innerend_led_depth]);
       }
     }
   }
 }
+
+module PsuLedLegendBattery(percent=50){
+  e = psu_led_legend_battery_edge;
+  empty_l = (100-percent)/100 * (psu_led_legend_battery_l - e*2);
+  difference(){
+    union(){
+      square([psu_led_legend_battery_l,
+             psu_led_legend_battery_w], center=true);
+      translate([psu_led_legend_battery_l/2, 0])
+       square([psu_led_legend_battery_nub_l*2,
+               psu_led_legend_battery_nub_w], center=true);
+    }
+    if (empty_l > 0)
+      translate([-(psu_led_legend_battery_l/2-e),
+                -(psu_led_legend_battery_w/2-e)])
+       square([empty_l, psu_led_legend_battery_w - e*2]);
+  }
+}  
+
+module PsuLedLegendsPlan(){
+  translate(0.5 * [0, psu_sz[1]]
+           + [psu_led_legend_battery_l/2
+              + psu_innerend_led_x_midder
+              + psu_led_legend_gap,
+              -psu_innerend_led_depth/2]
+           )
+    PsuLedLegendBattery(0);
+//  mirror([1,0])
+//    text("\u2300\u23fb", font="Noto Regular");
+}