68 lines
2.1 KiB
OpenSCAD
68 lines
2.1 KiB
OpenSCAD
// File: panels.scad
|
||
// Library: PLA+ / CementALL Mesh Panels
|
||
// Author: ChatGPT
|
||
// Uses only cube() primitives for printed "lines".
|
||
//
|
||
// Panel envelope: 5" x 11" (127.0 x 279.4 mm)
|
||
// Line width (bead): ~0.48 mm with 0.4 mm nozzle
|
||
// Layer height: 0.28 mm
|
||
//
|
||
// Variants:
|
||
// - Light: pitch 10 mm, 2×2 layers, T ≈ 1.12 mm
|
||
// - Medium: pitch 7 mm, 3×3 layers, T ≈ 1.68 mm
|
||
// - Heavy: pitch 5 mm, 4×4 layers, T ≈ 2.24 mm
|
||
//
|
||
|
||
// --------------- Global ---------------------
|
||
nozzle_w = 0.4; // nozzle width
|
||
bead_w = (2 * nozzle_w) +0.2; // line width + some extra(mm)
|
||
layer_h = 0.2; // layer height (mm)
|
||
X = 125.0; // panel width (X-span for Y-lines) (127.0 original)
|
||
Y = 280.0; // panel length (Y-span for X-lines) (279.4 original)
|
||
bead_gap = 5.0; // spacing between beads, center-2-center (mm)
|
||
noVoid = 0.004; // ensures that objects mesh
|
||
cutoff = 10.0; // extend on each end so a faulty start does not ruin the entire line. It will be trimmed in post process.
|
||
nX = 26; // The number of lines in the Y
|
||
nY = 57;
|
||
DEBUG = 0;
|
||
|
||
objectX = X+(bead_w*1);
|
||
objectY = Y+(bead_w*1);
|
||
|
||
|
||
layerX(zVAL=0); // the first layer, created (zVAL * 0.5) below the Z origin.
|
||
layerY(zVAL=(layer_h*1)); // the second layer
|
||
layerX(zVAL=(layer_h*2)); // the third
|
||
layerY(zVAL=(layer_h*3)); // the third
|
||
|
||
|
||
|
||
|
||
|
||
|
||
module layerX(zVAL) {
|
||
|
||
if(DEBUG) { translate ([0, 0, 0]) #cube([objectX, Y+cutoff, layer_h], center=true); }
|
||
|
||
translate([-((objectX*0.5)-(bead_w*0.5)), 0, 0]) subA();
|
||
module subA() {
|
||
for (lx = [0 : nX-1]) {
|
||
if(zVAL) {
|
||
translate([lx*5, 0, zVAL]) cube([bead_w, Y, layer_h], center=true);
|
||
} else {
|
||
translate([lx*5, 0, 0]) cube([bead_w, Y+cutoff, 0.2], center=true);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
module layerY(zVAL) {
|
||
|
||
translate([0, -((objectY*0.5)-(bead_w*0.5)), 0]) subA();
|
||
module subA() {
|
||
for (ly = [0 : nY-1]) {
|
||
translate([0, ly*5, zVAL]) cube([X, bead_w, layer_h], center=true);
|
||
}
|
||
}
|
||
|
||
} |