Initial create

This commit is contained in:
TheRON 2025-09-19 10:57:11 -04:00
parent c0486fbadf
commit 1450e1b0c8
1 changed files with 68 additions and 0 deletions

View File

@ -0,0 +1,68 @@
// 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);
}
}
}