add post-retraction re-engage dwell time
This commit is contained in:
parent
804365c55d
commit
90c2645b07
3 changed files with 10 additions and 1 deletions
|
|
@ -330,6 +330,7 @@ var gs_kiri_fdm = exports;
|
||||||
seekMMM = process.outputSeekrate * 60,
|
seekMMM = process.outputSeekrate * 60,
|
||||||
retDist = process.outputRetractDist,
|
retDist = process.outputRetractDist,
|
||||||
retSpeed = process.outputRetractSpeed * 60,
|
retSpeed = process.outputRetractSpeed * 60,
|
||||||
|
retDwell = Math.round((process.outputRetractDwell || 0) * 1000),
|
||||||
// ratio of nozzle area to filament area times
|
// ratio of nozzle area to filament area times
|
||||||
// ratio of slice height to filament max noodle height
|
// ratio of slice height to filament max noodle height
|
||||||
emitPerMM = print.extrudePerMM(device.nozzleSize, device.filamentSize, process.sliceHeight),
|
emitPerMM = print.extrudePerMM(device.nozzleSize, device.filamentSize, process.sliceHeight),
|
||||||
|
|
@ -482,6 +483,7 @@ var gs_kiri_fdm = exports;
|
||||||
|
|
||||||
dist = lastp ? lastp.distTo2D(out.point) : 0;
|
dist = lastp ? lastp.distTo2D(out.point) : 0;
|
||||||
|
|
||||||
|
// perform retraction
|
||||||
if (out.emit && retracted) {
|
if (out.emit && retracted) {
|
||||||
moveTo({e:retracted}, retSpeed, "engage " + retracted);
|
moveTo({e:retracted}, retSpeed, "engage " + retracted);
|
||||||
retracted = 0;
|
retracted = 0;
|
||||||
|
|
@ -496,10 +498,12 @@ var gs_kiri_fdm = exports;
|
||||||
moveTo({x:x, y:y}, speedMMM);
|
moveTo({x:x, y:y}, speedMMM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// re-engage after post-retraction move
|
||||||
if (!retracted && out.retract) {
|
if (!retracted && out.retract) {
|
||||||
retracted = retDist;
|
retracted = retDist;
|
||||||
moveTo({e:-retracted}, retSpeed, "retract " + retDist);
|
moveTo({e:-retracted}, retSpeed, "retract " + retDist);
|
||||||
time += (retDist / retSpeed) * 60 * 2; // retraction time
|
time += (retDist / retSpeed) * 60 * 2; // retraction time
|
||||||
|
if (retDwell) dwell(retDwell);
|
||||||
}
|
}
|
||||||
|
|
||||||
// update time and distance
|
// update time and distance
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,7 @@ self.kiri.license = exports.LICENSE;
|
||||||
outputRetractOver: 1,
|
outputRetractOver: 1,
|
||||||
outputRetractDist: 1,
|
outputRetractDist: 1,
|
||||||
outputRetractSpeed: 1,
|
outputRetractSpeed: 1,
|
||||||
|
outputRetractDwell: 1,
|
||||||
outputBrimCount: 1,
|
outputBrimCount: 1,
|
||||||
outputBrimOffset: 1,
|
outputBrimOffset: 1,
|
||||||
outputShortPoly: 1,
|
outputShortPoly: 1,
|
||||||
|
|
@ -289,6 +290,7 @@ self.kiri.license = exports.LICENSE;
|
||||||
outputRetractOver: 5.0,
|
outputRetractOver: 5.0,
|
||||||
outputRetractDist: 0.5,
|
outputRetractDist: 0.5,
|
||||||
outputRetractSpeed: 20,
|
outputRetractSpeed: 20,
|
||||||
|
outputRetractDwell: 0.2,
|
||||||
outputWipeSpeed: 20,
|
outputWipeSpeed: 20,
|
||||||
outputWipeDistance: 0,
|
outputWipeDistance: 0,
|
||||||
outputBrimCount: 2,
|
outputBrimCount: 2,
|
||||||
|
|
@ -2400,6 +2402,7 @@ self.kiri.license = exports.LICENSE;
|
||||||
// outputRetractOver: UC.newInput("retract over", {title:"move threshold that\ntriggers retraction\n0 to disable", convert:UC.toFloat, modes:FDM}),
|
// outputRetractOver: UC.newInput("retract over", {title:"move threshold that\ntriggers retraction\n0 to disable", convert:UC.toFloat, modes:FDM}),
|
||||||
outputRetractDist: UC.newInput("retract dist", {title:"amount to retract filament", convert:UC.toFloat, modes:FDM}),
|
outputRetractDist: UC.newInput("retract dist", {title:"amount to retract filament", convert:UC.toFloat, modes:FDM}),
|
||||||
outputRetractSpeed: UC.newInput("retract rate", {title:"speed of filament\nretraction in mm/s", convert:UC.toInt, modes:FDM}),
|
outputRetractSpeed: UC.newInput("retract rate", {title:"speed of filament\nretraction in mm/s", convert:UC.toInt, modes:FDM}),
|
||||||
|
outputRetractDwell: UC.newInput("retract dwell", {title:"time between re-engaging\nfilament and movement\nin seconds", convert:UC.toFloat, modes:FDM}),
|
||||||
outputWipeSpeed: UC.newInput("wipe speed", {title:"speed while wiping\nnozzle in mm/s", convert:UC.toInt, modes:FDM}),
|
outputWipeSpeed: UC.newInput("wipe speed", {title:"speed while wiping\nnozzle in mm/s", convert:UC.toInt, modes:FDM}),
|
||||||
outputWipeDistance: UC.newInput("wipe distance", {title:"distance to wipe nozzle after\neach enclosed island completes\nin millimeters. 0 to disable", convert:UC.toInt, modes:FDM}),
|
outputWipeDistance: UC.newInput("wipe distance", {title:"distance to wipe nozzle after\neach enclosed island completes\nin millimeters. 0 to disable", convert:UC.toInt, modes:FDM}),
|
||||||
outputShortPoly: UC.newInput("short outline", {title:"poly perimeter length\ntriggers short slowdown\nin millimeters", bound:UC.bound(0,200), convert:UC.toFloat, modes:FDM}),
|
outputShortPoly: UC.newInput("short outline", {title:"poly perimeter length\ntriggers short slowdown\nin millimeters", bound:UC.bound(0,200), convert:UC.toFloat, modes:FDM}),
|
||||||
|
|
|
||||||
4
notes.md
4
notes.md
|
|
@ -59,9 +59,11 @@
|
||||||
|
|
||||||
# FDM todo
|
# FDM todo
|
||||||
|
|
||||||
|
* fix thin wall support fill artifacts with complex nested polys
|
||||||
|
* post re-engage dwell (on first layer?)
|
||||||
* add support expand value to multi-part spacing (which defaults to 1mm)
|
* add support expand value to multi-part spacing (which defaults to 1mm)
|
||||||
* add lay-flat auto-rotation or from selected face
|
* add lay-flat auto-rotation or from selected face
|
||||||
* add rafts, thin wall detection, manual supports
|
* add rafts, manual supports
|
||||||
* check for support / brim intersections on first layer
|
* check for support / brim intersections on first layer
|
||||||
* solid fill every other line, two passes. minimize heat/sag. better fill between
|
* solid fill every other line, two passes. minimize heat/sag. better fill between
|
||||||
* add dashed poly output on first connected brim (when offset === 0)
|
* add dashed poly output on first connected brim (when offset === 0)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue