/* 79-character width 012345678.012345678.012345678.012345678.012345678.012345678.012345678.012345678 */ /////////////////////////////////////////////////////////////////////////////// // LibFile: gridstack.scad // FileGroup: CSGPATTERS // FileSummary: Grid formed by stacked lines // // DETAILS: // Weaker than fully meshed grids, but also faster to print and lighter // Todo: NONE /////////////////////////////////////////////////////////////////////////////// include include lw = 2*nW; // line width lh = LH+10; // layer height // these MUST be the cavity size gridX=4.8; gridY=7.4; // these ARE the number of cavities xCount=15; yCount=26; // these MUST be the calculated dimensions xw = (gridX*xCount)+((lw+1)*xCount)-lw; // X width yw = (gridY*yCount)+((lw+1)*yCount)-lw; // Y width yj = (2*gridY)+(0.5*lw); // jump by this amount hc = 3; //height count = height of stack li = 10+VOID; // lead-in line on the Y *base_shape(liY=li); module base_shape(liY) { difference() { cuboid([xw+liY, yw, lh]); translate([(0.5*(xw+liY))-(0.5*liY), lw, 0]) cuboid([li+VOID, yw, lh+VOID]); } } *void_block_odd(liY=li); // backup /* module void_block_odd(liY) { oddStart = 0; difference() { base_shape(liY=li); translate([-((0.5*liY)-lw), -((0.5*yw)-(0.5*gridY)-(lw)), 0]) cuboid([xw, gridY, lh+VOID]); } } */ void_block_odd(liY=li); module void_block_odd(liY) { oddJump = ((0.5*yw)-(0.5*gridY)-(lw)); for (i = [0:(xCount-1)]) { difference() { base_shape(liY=li); translate([-((0.5*liY)-lw), oddJump-(yj*i), 0]) #cuboid([xw, gridY, lh+VOID]); } }} *void_block_even(liY=li); module void_block_even(liY) { evenStart = 0; difference() { base_shape(liY=li); translate([-((0.5*liY)-lw), -((0.5*yw)-(0.5*gridY)-(lw)), 0]) cuboid([xw, gridY, lh+VOID]); } }