fix dup point detection between prints. fix dwell

This commit is contained in:
Stewart Allen 2018-01-13 16:33:58 -05:00
commit 8dae3e7617
5 changed files with 27 additions and 15 deletions

View file

@ -214,8 +214,7 @@ var gs_kiri_fdm = exports;
if (layer === 0 && process.outputBrimCount) {
var brims = [],
polys = [],
preout = [],
startPoint = printPoint;
preout = [];
widgets.forEach(function(widget) {
var tops = [];
@ -239,7 +238,7 @@ var gs_kiri_fdm = exports;
rate: process.firstLayerRate,
onfirst: function(point) {
if (preout.length && point.distTo2D(startPoint) > 2) {
// retract between brim r
// retract between brims
preout.last().retract = true;
}
}
@ -247,7 +246,7 @@ var gs_kiri_fdm = exports;
});
print.addPrintPoints(preout, layerout, null);
// preout.last().retract = true;
preout.last().retract = true;
}
// iterate over layer slices, find closest widget, print, eliminate
@ -390,6 +389,12 @@ var gs_kiri_fdm = exports;
append("G4 P" + ms);
}
function retract() {
retracted = retDist;
moveTo({e:-retracted}, retSpeed, "retract " + retDist);
time += (retDist / retSpeed) * 60 * 2; // retraction time
}
function moveTo(newpos, rate, comment) {
if (comment) {
append(" ; " + comment);
@ -437,6 +442,9 @@ var gs_kiri_fdm = exports;
totaldistance += o1.point.distTo2D(o2.point);
}, 1);
// retract before first move
retract();
while (layer < layers.length) {
path = layers[layer];
@ -483,11 +491,15 @@ var gs_kiri_fdm = exports;
dist = lastp ? lastp.distTo2D(out.point) : 0;
// perform retraction
// re-engage post-retraction before new extrusion
if (out.emit && retracted) {
moveTo({e:retracted}, retSpeed, "engage " + retracted);
retracted = 0;
time += (retDist / retSpeed) * 60 * 2; // retraction time
if (retDwell) {
dwell(retDwell);
time += retDwell;
}
}
if (lastp && out.emit) {
@ -498,12 +510,9 @@ var gs_kiri_fdm = exports;
moveTo({x:x, y:y}, speedMMM);
}
// re-engage after post-retraction move
// retract filament
if (!retracted && out.retract) {
retracted = retDist;
moveTo({e:-retracted}, retSpeed, "retract " + retDist);
time += (retDist / retSpeed) * 60 * 2; // retraction time
if (retDwell) dwell(retDwell);
retract();
}
// update time and distance

View file

@ -35,6 +35,7 @@ var gs_kiri_print = exports;
*/
function Print(settings, widgets, id) {
this.id = id || new Date().getTime().toString(36);
this.settings = settings;
this.widgets = widgets;
this.group = new THREE.Group();
@ -153,6 +154,9 @@ var gs_kiri_print = exports;
settings = scope.settings,
mode = settings.mode;
lastPoint = null;
lastEmit = null;
if (remote) {
// executed from kiri.js
@ -506,7 +510,6 @@ var gs_kiri_print = exports;
var closest = poly.findClosestPointTo(startPoint),
distance = wipeDistance,
last = startPoint;
while (distance > 0) poly.forEachPoint(function(point) {
if (distance > 0) {
var len = last.distTo2D(point);
@ -538,6 +541,7 @@ var gs_kiri_print = exports;
shorten: finishShell && !firstLayer ? nozzle * finishFactor : 0,
extrude: shellMult,
onfirst: function(firstPoint) {
if (startPoint.distTo2D(firstPoint) > 2) retract();
checkBisect(startPoint, firstPoint, bounds);
}
});

View file

@ -1,7 +1,7 @@
var exports = {
COPYRIGHT:"Copyright (C) 2014-2017 Stewart Allen <stewart@neuron.com> - All Rights Reserved",
LICENSE:"Unauthorized copying, modification and re-distribution are strictly prohibited without prior written consent.",
VERSION:"1.0.84"
VERSION:"1.0.85"
};
if (!module) var module = {};
module.exports = exports;

View file

@ -8,8 +8,7 @@
"M907 X100 Y100 Z40 A80 B20",
"; pre-extrude",
"G1 X-75 Y-75 Z0.35 F400",
"G1 X75 E25 F1800",
"G1 Y00 E20 F2400"
"G1 X75 E25 F1800"
],
"post":[
"M107",

View file

@ -14,7 +14,7 @@
"G1 Z0.05 F6000.00",
"G92 E0",
"G1 F140 E29",
"G1 F600 E28",
"G4 P500",
"G1 X15 Y15 Z0.02 F2000",
"G1 F6000.00",
"M117 Printing...",