X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=adafruit-powerboost-common.scad;h=b62643ac8ba297a2ad25efca633c980c1d2e860a;hb=ba7c5b240dcdab5fa3f4e3f7823bb828551471f0;hp=acbf33bca1a14d6d1a8d1734a169e359af0d2faa;hpb=a885f33ca1de84099c293375c143c3720e5926d1;p=reprap-play.git diff --git a/adafruit-powerboost-common.scad b/adafruit-powerboost-common.scad index acbf33b..b62643a 100644 --- a/adafruit-powerboost-common.scad +++ b/adafruit-powerboost-common.scad @@ -192,6 +192,33 @@ module PsuLedWindowsPlan(){ } } +module PsuLedWindowsWindows(ceil){ + translate([0,0, -psu_z - ceil]) + linextr(0, psu_initial_layer_thick) + offset(delta=psu_window_ledge) + PsuLedWindowsPlan(); +} + +module PsuFirstLayerNegative(ceil){ + translate([0, 0, -psu_z - ceil]) + linextr(-1, psu_initial_layer_thick) + children(); +} + +module PsuMountWindowsNegative(ceil){ + linextr(-10, 0.1) + PsuLedWindowsPlan(); + PsuFirstLayerNegative(ceil) + offset(delta= psu_window_ledge + psu_multicolour_gap) + PsuLedWindowsPlan(); +} + +module PsuLedLegendsNegative(ceil){ + PsuFirstLayerNegative(ceil) + offset(delta= psu_multicolour_gap) + PsuLedLegendsPlan(); +} + module PsuMountDemo() { ////toplevel ceil = psu_test_ceil; @@ -227,6 +254,8 @@ module PsuMountTest() { ////toplevel translate([0, psu_y, psu_z]) PsuMountPositive(); difference(){ + + // rectangular box with wall linextr_x_yz(-psu_mount_outer_sz_x/2, +psu_mount_outer_sz_x/2) { difference(){ @@ -235,14 +264,15 @@ module PsuMountTest() { ////toplevel rectfromto([ceil,0], 400*[1,1]); } } + translate([0, psu_y, psu_z]) { PsuMountNegative(); } } } translate([0, psu_y, psu_z]) { - linextr(-10, 0.1) - PsuLedWindowsPlan(); + PsuMountWindowsNegative(ceil); + PsuLedLegendsNegative(ceil); } } } @@ -257,9 +287,11 @@ psu_frame_gap = 1.0; module PsuMountLayerFrame(bl, tr, ix) { gap0 = [1,1] * (psu_frame_gap + psu_initial_layer_width*(ix+0)); gap1 = [1,1] * (psu_frame_gap + psu_initial_layer_width*(ix+1)); - difference(){ - rectfromto(bl-gap1, tr+gap1); - rectfromto(bl-gap0, tr+gap0); + linextr(0, psu_initial_layer_thick) { + difference(){ + rectfromto(bl-gap1, tr+gap1); + rectfromto(bl-gap0, tr+gap0); + } } } @@ -273,27 +305,17 @@ module PsuMountTestFullLayerFrame(ix) { module PsuMountTestFullMain() { ////toplevel ceil = psu_test_ceil; - linextr(0, psu_initial_layer_thick) - PsuMountTestFullLayerFrame(2); + PsuMountTestFullLayerFrame(2); difference(){ translate([0,0, ceil]) PsuMountTest(); - - translate([0, psu_y, 0]) { - linextr(-1, psu_initial_layer_thick) { - offset(delta=psu_window_ledge + psu_multicolour_gap) - PsuLedWindowsPlan(); - offset(delta=psu_multicolour_gap) - PsuLedLegendsPlan(); - } - } } } module PsuMountTestFullOneLayer(ix) { + PsuMountTestFullLayerFrame(ix); linextr(0, psu_initial_layer_thick) { - PsuMountTestFullLayerFrame(ix); translate([0, psu_y]) children(); } } @@ -303,9 +325,9 @@ module PsuMountTestFullText() { ////toplevel PsuLedLegendsPlan(); } module PsuMountTestFullWindows() { ////toplevel - PsuMountTestFullOneLayer(1) - offset(delta=psu_window_ledge) - PsuLedWindowsPlan(); + PsuMountTestFullLayerFrame(1); + translate([0, psu_y, psu_z + psu_test_ceil]) + PsuLedWindowsWindows(psu_test_ceil); } module PsuMountTestFullDemo() { ////toplevel