diff --git a/BOSL2/V08APR26/SKU2689999/sgc/gridstack.scad b/BOSL2/V08APR26/SKU2689999/sgc/gridstack.scad index f74058c..3908b31 100644 --- a/BOSL2/V08APR26/SKU2689999/sgc/gridstack.scad +++ b/BOSL2/V08APR26/SKU2689999/sgc/gridstack.scad @@ -18,12 +18,13 @@ lw = 2*nW; // line width lh = LH; // layer height // these MUST be the cavity size -gridX=4.8; -gridY=9.6; +gridX=3.2; +gridY=3.2; // these ARE the number of cavities -xCount=3; -yCount=4; +xCount=4; +yCount=7; +hc = 4; //height count = height of stack // these MUST be the calculated dimensions //xw = ((2*gridX)*xCount)+((2*lw)*xCount); // X width @@ -32,38 +33,76 @@ xw = ((gridX)*xCount)+((lw)*xCount)+lw; // X width yw = ((gridY)*yCount)+((lw)*yCount)+lw; // Y width yj = (2*gridY)+(0.5*lw); // jump by this amount -hc = 3; //height count = height of stack - -*base_shape(nozzleStart = 10); +*base_shape(nozzleStart = 0); module base_shape(nozzleStart) { cuboid([xw, yw, lh]); + if(nozzleStart) { translate([(0.5*xw)+(0.5*nozzleStart)-VOID, -((0.5*yw)-(0.5*lw)), 0]) cuboid([nozzleStart, lw, lh]); + } } -*layerOne(); -module layerOne() { +*layerXY(layerX=0, layerY=1, leadIn=10); +module layerXY(layerX, layerY, leadIn) { +jumpX = ((0.5*xw)-(0.5*gridX))-lw; jumpY = ((0.5*yw)-(0.5*gridY))-lw; + if(layerX) { difference() { - color("Gray") base_shape(nozzleStart = 10); + color("Gainsboro") base_shape(nozzleStart = leadIn); union() { - for (i = [0:(yCount-1)]) { + for (i = [0:(0.5*(xCount-1))]) { + translate([-(jumpX-(i*((2*lw)+(2*gridX)))), lw, 0]) + color("Gainsboro") cuboid([gridX, yw, lh+VOID]); } + + for (i = [0:(0.5*(xCount-1))]) { + translate([-((jumpX-(lw+gridX))-(i*((2*lw)+(2*gridX)))), -lw, 0]) + color("White") cuboid([gridX, yw, lh+VOID]); } + }}} + + +if(layerY) { + difference() { + color("Gray") base_shape(nozzleStart = leadIn); + + union() { + for (i = [0:(0.5*(yCount-1))]) { translate([lw, -(jumpY-(i*((2*lw)+(2*gridY)))), 0]) color("Gainsboro") cuboid([xw, gridY, lh+VOID]); } - for (i = [0:(yCount-1)]) { + for (i = [0:(0.5*(yCount-1))]) { translate([-lw, -((jumpY-(lw+gridY))-(i*((2*lw)+(2*gridY)))), 0]) color("White") cuboid([xw, gridY, lh+VOID]); } - }} + }}} } -buildGrid(); -module buildGrid() { +/* +Continious lines, fastest print best quality +However, the patters on each side will change based on even or odd layers. +------------------------------------------------------------------------------- */ +*solidGrid(); +module solidGrid() { + + layerXY(layerX=0, layerY=1, leadIn=10); - layerOne(); + for (c = [1:(hc-1)]) { + translate([0, 0, (c*(2*lh))]) layerXY(layerX=0, layerY=1, leadIn=0); } + + for (c = [1:(hc-1)]) { + translate([0, 0, ((c*(2*lh))-lh)]) layerXY(layerX=1, layerY=0, leadIn=0); } +} + + +/* +Segmented lines for each layers, slower print lower quality +Uniform patters on each side regardless of even or odd layers +------------------------------------------------------------------------------- */ +*segmentGrid(); +module segmentGrid() { + + layerXY(layerX=0, layerY=1, leadIn=10); for (c = [0:(hc-1)]) { translate([(0.5*xw)-(0.5*lw), 0, (c*((2*lh)-VOID))]) union() {