fix wipe between widgets and tops
This commit is contained in:
parent
468ee60b21
commit
8a04d6862f
2 changed files with 19 additions and 7 deletions
|
|
@ -168,11 +168,13 @@ var gs_kiri_fdm = exports;
|
|||
layer = 0,
|
||||
mesh,
|
||||
meshIndex,
|
||||
lastIndex,
|
||||
layerout,
|
||||
closest,
|
||||
mindist,
|
||||
minidx,
|
||||
find,
|
||||
found,
|
||||
mslices,
|
||||
slices,
|
||||
sliceEntry;
|
||||
|
|
@ -241,6 +243,7 @@ var gs_kiri_fdm = exports;
|
|||
|
||||
// iterate over layer slices, find closest widget, print, eliminate
|
||||
for (;;) {
|
||||
found = 0;
|
||||
closest = null;
|
||||
mindist = Infinity;
|
||||
for (meshIndex = 0; meshIndex < slices.length; meshIndex++) {
|
||||
|
|
@ -252,11 +255,20 @@ var gs_kiri_fdm = exports;
|
|||
mindist = find.distance;
|
||||
minidx = meshIndex;
|
||||
}
|
||||
found++;
|
||||
}
|
||||
if (!closest) break;
|
||||
slices[minidx] = null;
|
||||
// output seek to start point between mesh slices if previous data
|
||||
printPoint = print.slicePrintPath(closest.slice, printPoint.sub(closest.offset), closest.offset, layerout, layer);
|
||||
printPoint = print.slicePrintPath(
|
||||
closest.slice,
|
||||
printPoint.sub(closest.offset),
|
||||
closest.offset,
|
||||
layerout,
|
||||
// wipe after last layer or between widgets
|
||||
(lastIndex === minidx && slices.length > 1) || (found === 1 && layer == maxLayers-1)
|
||||
);
|
||||
lastIndex = minidx;
|
||||
}
|
||||
|
||||
if (layerout.length) output.append(layerout);
|
||||
|
|
|
|||
|
|
@ -375,7 +375,7 @@ var gs_kiri_print = exports;
|
|||
return;
|
||||
}
|
||||
// if (lastPoint && UTIL.round(point.x,4) == UTIL.round(lastPoint.x,4) && UTIL.round(point.y,4) == UTIL.round(lastPoint.y,4)) {
|
||||
// console.log(({dup:point, last:lastPoint}));
|
||||
// console.log(({dup:point, last:lastPoint, emit: emit, le: lastEmit}));
|
||||
// }
|
||||
lastPoint = point;
|
||||
lastEmit = emit;
|
||||
|
|
@ -462,10 +462,10 @@ var gs_kiri_print = exports;
|
|||
* @param {Point} startPoint start as close as possible to startPoint
|
||||
* @param {THREE.Vector3} offset
|
||||
* @param {Point[]} output points
|
||||
* @param {Number} layer from 0 to # of layers (slices) in model
|
||||
* @param {Boolean} wipeAfter so we can wipe at the end
|
||||
* @return {Point} last output point
|
||||
*/
|
||||
PRO.slicePrintPath = function(slice, startPoint, offset, output, layer) {
|
||||
PRO.slicePrintPath = function(slice, startPoint, offset, output, wipeAfter) {
|
||||
var i,
|
||||
preout = [],
|
||||
scope = this,
|
||||
|
|
@ -732,14 +732,14 @@ var gs_kiri_print = exports;
|
|||
return obj instanceof Polygon ? obj : obj.poly;
|
||||
});
|
||||
|
||||
// final wipe before lowering bed
|
||||
if (wipe) outputWipe(wipe);
|
||||
|
||||
// offset print points
|
||||
for (i=0; i<preout.length; i++) {
|
||||
preout[i].point = preout[i].point.add(offset);
|
||||
}
|
||||
|
||||
// perform last wipe on top layer at end of run
|
||||
if (wipeAfter && wipe) outputWipe(wipe);
|
||||
|
||||
// add offset points to total print
|
||||
addPrintPoints(preout, output, origin);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue