cleanup fill/shell extrusion. fix hex spacing
This commit is contained in:
parent
8d8e9fdefb
commit
6032b8a794
3 changed files with 17 additions and 28 deletions
|
|
@ -342,21 +342,19 @@ var gs_kiri_print = exports;
|
|||
settings = this.settings,
|
||||
process = settings.process,
|
||||
minSeek = settings.device.nozzleSize * 1.5,
|
||||
wipeDist = process.outputWipeDistance, // todo disable for laser mode
|
||||
fillMult = process.outputFillMult,
|
||||
seekMult = fillMult * 0.5,
|
||||
shellMult = process.outputShellMult || (process.laserSliceHeight >= 0 ? 1 : 0),
|
||||
origin = startPoint.add(offset),
|
||||
extrude = process.outputShellMult || (process.laserSliceHeight >= 0 ? 1 : 0),
|
||||
z = slice.z;
|
||||
|
||||
function outputTraces(poly, extrude, bounds) {
|
||||
function outputTraces(poly, bounds) {
|
||||
if (!poly) return;
|
||||
if (Array.isArray(poly)) {
|
||||
outputOrderClosest(poly, function(next) {
|
||||
outputTraces(next, extrude, bounds);
|
||||
outputTraces(next, bounds);
|
||||
});
|
||||
} else {
|
||||
startPoint = scope.polyPrintPath(poly, startPoint, preout, extrude, function(point) {
|
||||
startPoint = scope.polyPrintPath(poly, startPoint, preout, shellMult, function(point) {
|
||||
checkBisect(startPoint, point, bounds);
|
||||
});
|
||||
}
|
||||
|
|
@ -371,7 +369,6 @@ var gs_kiri_print = exports;
|
|||
if (!paths || paths.length !== 2) return;
|
||||
var path = paths[0].perimeter() < paths[1].perimeter() ? paths[0] : paths[1];
|
||||
if (p1.distTo2D(path.first() > p1.distTo2D(path.last()))) path.reverse();
|
||||
// console.log(path === paths[0] ? "first" : "last"); // failing on "last"
|
||||
path.forEachPoint(function(p) {
|
||||
preout.push(newOut(p, 0));
|
||||
});
|
||||
|
|
@ -382,7 +379,7 @@ var gs_kiri_print = exports;
|
|||
/**
|
||||
* @param {Polygon[]} polys
|
||||
*/
|
||||
function outputSparse(polys, fillMult, bounds) {
|
||||
function outputSparse(polys, bounds) {
|
||||
if (!polys) return;
|
||||
var proxy = polys.map(function(poly) {
|
||||
return {poly: poly, first: poly.first(), last: poly.last()};
|
||||
|
|
@ -399,9 +396,8 @@ var gs_kiri_print = exports;
|
|||
});
|
||||
}
|
||||
|
||||
function outputFills(lines, extrude, bounds) {
|
||||
var mindist, p1, p2, dist, point, find, dist,
|
||||
printMult = extrude || fillMult;
|
||||
function outputFills(lines, bounds) {
|
||||
var mindist, p1, p2, dist, point, find, dist;
|
||||
while (lines) {
|
||||
find = null;
|
||||
mindist = Infinity;
|
||||
|
|
@ -435,9 +431,8 @@ var gs_kiri_print = exports;
|
|||
checkBisect(startPoint, p1, bounds);
|
||||
}
|
||||
|
||||
// preout.push(newOut(p1, dist < minSeek ? seekMult : 0));
|
||||
preout.push(newOut(p1, 0));
|
||||
preout.push(newOut(p2, printMult));
|
||||
preout.push(newOut(p2, fillMult));
|
||||
startPoint = p2;
|
||||
} else {
|
||||
break;
|
||||
|
|
@ -480,17 +475,17 @@ var gs_kiri_print = exports;
|
|||
if (next instanceof Polygon) {
|
||||
// support polygon
|
||||
next.setZ(z);
|
||||
outputTraces([].appendAll(next).appendAll(next.inner || []), extrude);
|
||||
outputTraces([].appendAll(next).appendAll(next.inner || []));
|
||||
if (next.fills) {
|
||||
next.fills.forEach(function(p) { p.z = z });
|
||||
outputFills(next.fills, extrude, next.inner);
|
||||
outputFills(next.fills, next.inner);
|
||||
}
|
||||
} else {
|
||||
var bounds = [next.poly].appendAll(next.poly.inner || []);
|
||||
// top object
|
||||
outputTraces([].appendAll(next.traces).appendAll(next.innerTraces() || []), extrude, bounds);
|
||||
outputFills(next.fill_lines, extrude, bounds);
|
||||
outputSparse(next.fill_sparse, extrude, bounds);
|
||||
outputTraces([].appendAll(next.traces).appendAll(next.innerTraces() || []), bounds);
|
||||
outputFills(next.fill_lines, bounds);
|
||||
outputSparse(next.fill_sparse, bounds);
|
||||
}
|
||||
}, function(obj) {
|
||||
return obj instanceof Polygon ? obj : obj.poly;
|
||||
|
|
|
|||
|
|
@ -1126,7 +1126,7 @@ var gs_kiri_slice = exports;
|
|||
*/
|
||||
function sparseFillHex(target) {
|
||||
// compute segment lengths (vert/horiz and 45)
|
||||
var spacing = target.offset(),
|
||||
var spacing = target.offset() / 2,
|
||||
vhlen = (1 - target.density()) * 4 + spacing,
|
||||
anxlen = ROUND(Math.cos(30 * DEG2RAD) * vhlen, 7),
|
||||
anylen = ROUND(Math.sin(30 * DEG2RAD) * vhlen, 7),
|
||||
|
|
|
|||
|
|
@ -4,23 +4,17 @@
|
|||
"M104 S{temp} T0 ; set nozzle0 temp",
|
||||
"M107 ; fan off",
|
||||
"G90 ; set absolute positioning",
|
||||
"G28 ; move to origin",
|
||||
"M132 X Y Z A B ; set axis limits",
|
||||
"M6 T0 ; tool change T0",
|
||||
"M907 X100 Y100 Z40 A80 B20 ; set digital trimpots",
|
||||
"M108 T0 ; set extruder speed",
|
||||
"; pre-extrude",
|
||||
"G1 X-75 Y-75 Z0.35 F400",
|
||||
"G1 X75 E25 F1200",
|
||||
"G1 Y00 E30 F1200"
|
||||
"G1 X75 E25 F1800",
|
||||
"G1 Y00 E20 F2400"
|
||||
],
|
||||
"post":[
|
||||
"M107 ; fan off",
|
||||
"M104 S0 T0 ; set nozzle0 temp",
|
||||
"G162 Z ; home axes maximum",
|
||||
"G28 Z ; lower bed",
|
||||
"G28 X Y ; move to origin",
|
||||
"M132 X Y Z A B ; set axis limits",
|
||||
"G162 Z ; lower bed",
|
||||
"M18 ; disable all steppers"
|
||||
],
|
||||
"cmd":{
|
||||
|
|
|
|||
Loading…
Reference in a new issue