+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 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);
+
+ 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);
+ }
+}
+