chiark / gitweb /
air-hockey-puck: wip
[reprap-play.git] / adafruit-powerboost-1000.scad
index e442aa74801e5275a46d81af04d8ca3b7c16faae..683eb811cbddc6a5f1dff2a89026297b84dae653 100644 (file)
@@ -14,11 +14,11 @@ psu_led_low_x = 4;
 psu_led_usbend_y_min = 4.5;
 psu_led_chrg_min_x = -1.0;
 psu_led_chrg_max_x = 3.0;
-psu_led_chrg_both_sz_y = 7.0;
+psu_led_chrg_both_sz_y = 9.4;
 
-psu_led_pwr_sz_x = 4.5;
-psu_led_pwr_min_y = -1.5;
-psu_led_pwr_max_y = 2.5;
+psu_led_low_sz_x = 4.5;
+psu_led_low_min_y = -1.5;
+psu_led_low_max_y = 3.25;
 
 psu_led_baffle_th = 0.8;
 psu_led_baffle_ends = 1.5;
@@ -35,14 +35,14 @@ psu_led_legend_battery_nub_w = 1.5;
 
 psu_led_legend_power_dia = 5.0;
 
-psu_led_legend_gap = 0.75;
+psu_led_legend_gap = 1.25;
 
 // ----- calculated -----
 
 psu_led_legend_battery_edge = psu_led_legend_line;
 
 psu_led_legend_power_tick_l =
-  psu_led_legend_power_dia * 0.75;
+  psu_led_legend_power_dia * 0.65;
 psu_led_legend_power_tick_dy = psu_led_legend_line;
 
 psu_led_legend_power_sz_y =
@@ -74,16 +74,16 @@ module PsuLedWindowsPlanCore(){
                       psu_led_chrg_both_sz_y ]);
       }
 
-      // One LED, PWR, near outlet USB pads
+      // One LED, "Low", other side of inlet connector
       AtPsuMountCorner(1,0) {
        translate([0, psu_led_usbend_y_min ])
          rectfromto([ 0,
-                      psu_led_pwr_min_y ],
-                    [ psu_led_pwr_sz_x,
-                      psu_led_pwr_max_y ]);
+                      psu_led_low_min_y ],
+                    [ psu_led_low_sz_x,
+                      psu_led_low_max_y ]);
       }
 
-      // One LED, "Low", other side of inlet connector
+      // One LED, PWR, near outlet USB pads
       AtPsuMountCorner(0,1){
        rectfromto([0,0],
                   [psu_sz[0]/2 + psu_innerend_led_x_midder,
@@ -115,13 +115,21 @@ module PsuLedLegendPowerSymbol(){
   $fn=30;
   tick_mid = [0, psu_led_legend_power_dia/2 - psu_led_legend_power_tick_dy];
 
+  cut_slope = ( psu_led_legend_gap + psu_led_legend_line/2 ) / tick_mid[1];
+  cut_y = psu_led_legend_power_dia + 1;
+
   translate(tick_mid)
     square([psu_led_legend_line, psu_led_legend_power_tick_l], center=true);
   
   difference(){
     circle(r= psu_led_legend_power_dia/2);
     circle(r= psu_led_legend_power_dia/2 - psu_led_legend_line);
-    translate(tick_mid)
+
+    polygon([[0, 0],
+            [-cut_y * cut_slope, cut_y],
+            [ cut_y * cut_slope, cut_y]]);
+
+    if(0) translate(tick_mid)
       square([psu_led_legend_line, psu_led_legend_power_tick_l]
             + [psu_led_legend_gap*2, 0.1],
             center=true);
@@ -129,13 +137,14 @@ module PsuLedLegendPowerSymbol(){
 }
 
 module PsuLedLegendsPlan(){
-  translate([psu_led_legend_battery_l/2
+  translate([psu_led_legend_power_dia/2
             + psu_innerend_led_x_midder
             + psu_led_legend_gap,
             psu_sz[1]/2
             - psu_innerend_led_depth/2
             ])
-    PsuLedLegendBattery(0);
+    rotate([0,0,180])
+    PsuLedLegendPowerSymbol();
 
   for (full=[0,1]) {
     translate([-psu_sz[0]/2
@@ -144,18 +153,23 @@ module PsuLedLegendsPlan(){
               + psu_led_legend_gap,
               -psu_sz[1]/2
               + psu_led_usbend_y_min
-              + psu_led_chrg_both_sz_y * (1-full)
+              + psu_led_chrg_both_sz_y * 0.5
+              + max(
+                    psu_led_legend_battery_w + psu_led_legend_gap,
+                    psu_led_chrg_both_sz_y * 0.5
+                    ) * (0.5 - full)
               ])
       PsuLedLegendBattery(full ? 100 : 50);
   }
 
   translate([psu_sz[0]/2
-            - psu_led_pwr_sz_x,
+            - psu_led_legend_battery_nub_l
+            - psu_led_legend_battery_l/2,
             -psu_sz[1]/2
+            + psu_led_legend_gap
             + psu_led_usbend_y_min
-            + psu_led_pwr_max_y
-            + psu_led_legend_power_sz_y
+            + psu_led_low_max_y
+            + psu_led_legend_battery_w/2
             ])
-    rotate([0,0,180])
-    PsuLedLegendPowerSymbol();
+    PsuLedLegendBattery(0);
 }