chiark / gitweb /
adafruit-powerboost: battery legend wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 21 Nov 2021 22:25:51 +0000 (22:25 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 21 Nov 2021 22:25:51 +0000 (22:25 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
adafruit-powerboost-1000.scad

index 94bf7ed79a0c4765f1e9df5f00d6b4ab01175646..05f6f2b8e4f353e9f9b3219606be39c19b7c9e66 100644 (file)
@@ -32,8 +32,12 @@ 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,
@@ -69,7 +73,7 @@ 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]);
       }
     }
@@ -78,7 +82,7 @@ module PsuLedWindowsPlanCore(){
 
 module PsuLedLegendBattery(percent=50){
   e = psu_led_legend_battery_edge;
-  full_l = percent/100 * (psu_led_legend_battery_l - e*2);
+  empty_l = (100-percent)/100 * (psu_led_legend_battery_l - e*2);
   difference(){
     union(){
       square([psu_led_legend_battery_l,
@@ -87,14 +91,21 @@ module PsuLedLegendBattery(percent=50){
        square([psu_led_legend_battery_nub_l*2,
                psu_led_legend_battery_nub_w], center=true);
     }
-    translate([-(psu_led_legend_battery_l/2-e),
-              -(psu_led_legend_battery_w/2-e)])
-      square([full_l, psu_led_legend_battery_w - e*2]);
+    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(){
-  PsuLedLegendBattery();
+  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");
 }