Layer one is a continuous line, but the rest of the layers are single line segments. The next version should have continuous lines for all layers.
79 lines
2.2 KiB
OpenSCAD
79 lines
2.2 KiB
OpenSCAD
/* 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 <BOSL2/std.scad>
|
|
|
|
include <sgc_params.scad>
|
|
|
|
lw = 2*nW; // line width
|
|
lh = LH; // layer height
|
|
|
|
// these MUST be the cavity size
|
|
gridX=4.8;
|
|
gridY=9.6;
|
|
|
|
// these ARE the number of cavities
|
|
xCount=3;
|
|
yCount=4;
|
|
|
|
// these MUST be the calculated dimensions
|
|
//xw = ((2*gridX)*xCount)+((2*lw)*xCount); // X width
|
|
//yw = ((2*gridY)*yCount)+((2*lw)*yCount)+lw; // Y width
|
|
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);
|
|
module base_shape(nozzleStart) {
|
|
cuboid([xw, yw, lh]);
|
|
translate([(0.5*xw)+(0.5*nozzleStart)-VOID, -((0.5*yw)-(0.5*lw)), 0])
|
|
cuboid([nozzleStart, lw, lh]);
|
|
}
|
|
|
|
*layerOne();
|
|
module layerOne() {
|
|
jumpY = ((0.5*yw)-(0.5*gridY))-lw;
|
|
|
|
difference() {
|
|
color("Gray") base_shape(nozzleStart = 10);
|
|
|
|
union() {
|
|
for (i = [0:(yCount-1)]) {
|
|
translate([lw, -(jumpY-(i*((2*lw)+(2*gridY)))), 0])
|
|
color("Gainsboro") cuboid([xw, gridY, lh+VOID]); }
|
|
|
|
for (i = [0:(yCount-1)]) {
|
|
translate([-lw, -((jumpY-(lw+gridY))-(i*((2*lw)+(2*gridY)))), 0])
|
|
color("White") cuboid([xw, gridY, lh+VOID]); }
|
|
}}
|
|
}
|
|
|
|
buildGrid();
|
|
module buildGrid() {
|
|
|
|
layerOne();
|
|
|
|
for (c = [0:(hc-1)]) {
|
|
translate([(0.5*xw)-(0.5*lw), 0, (c*((2*lh)-VOID))]) union() {
|
|
for (i = [0:(xCount)]) {
|
|
translate([-(i*(gridX+lw)), 0, lh]) color("Blue") cuboid([lw, yw, lh]);
|
|
}}
|
|
|
|
translate([0, (0.5*yw)-(0.5*lw), (lh)+(c*((2*lh)-VOID))]) union() {
|
|
for (i = [0:(yCount)]) {
|
|
translate([0, -(i*(gridY+lw)), lh]) color("Red") cuboid([xw, lw, lh]);
|
|
}}}
|
|
}
|