// -*- C -*- psu_sz_nom = [ 21.59, 35.56 ]; //// toplevels-from: include psu_hole_pos = [ 2.05, // from back edge of psu_sz[0] 0.55 * 0.5 * 25.4, // from centreline ]; psu_baffle_cnr_y = 7.45; // from connector end psu_baffle_th = [ 0.8, 3.5 ]; psu_usbend_led_x = 4.5; psu_usbend_led_y = 4.5; psu_innerend_led_depth = 10; // ----- calculated ----- psu_usbend_led_depth = psu_baffle_cnr_y*2 - psu_usbend_led_x; module PsuLedBafflePlan(){ } module PsuLedWindowsPlanCore(){ difference(){ union(){ // Two LEDs one side of inlet connector // "Full" (near edge) and "Chrg" (inner) AtPsuMountCorner(0,0) { rectfromto([ -(psu_board_support_wall + 0.1), +psu_usbend_led_x ], [ psu_usbend_led_y, +psu_usbend_led_depth ]); } // One LED, "Low", other side of inlet connector AtPsuMountCorner(1,0) { sz = psu_baffle_cnr_y - psu_board_support_wall - psu_baffle_th[0]; translate([0, psu_baffle_cnr_y]) rectfromto([ -(psu_board_support_wall + 0.1), -sz/2 ], [ psu_sz[0]/2, +sz/2 ]); } // One LED, PWR, near outlet USB pads AtPsuMountCorner(1,1){ rectfromto([0,0], [psu_sz[0]/2 - psu_hole_pos[1] - psu_hole_dia/2, psu_innerend_led_depth]); } } // translate([0, -psu_sz[1]/2]) // square(center=true, [psu_baffle_th[1], psu_sz[1]]);; } }