fixes #217 belt fan override for base extrusions touching belt with the caveat that values over 0 are used. 0 is reserved, which makes sense in all other fields. fixing this requires the introduction of another checkbox and other ui code. for now, use 1 in place of 0
This commit is contained in:
parent
c8cbf3a088
commit
9dbec25714
4 changed files with 34 additions and 3 deletions
|
|
@ -5,7 +5,8 @@ Full docs @ https://docs.grid.space/projects/kiri-moto
|
||||||
|
|
||||||
# Release 3.6
|
# Release 3.6
|
||||||
|
|
||||||
*
|
* improve CAM animation speeds
|
||||||
|
* fix belt fan override for base extrusions touching belt
|
||||||
|
|
||||||
|
|
||||||
# Release 3.5 (2022-10-07)
|
# Release 3.5 (2022-10-07)
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ FDM.init = function(kiri, api) {
|
||||||
"sliceSolidMinArea": LANG.ad_msol_s,
|
"sliceSolidMinArea": LANG.ad_msol_s,
|
||||||
"firstLayerRate": LANG.fl_rate_s,
|
"firstLayerRate": LANG.fl_rate_s,
|
||||||
"firstLayerPrintMult": LANG.fl_mult_s,
|
"firstLayerPrintMult": LANG.fl_mult_s,
|
||||||
|
"firstLayerFanSpeed": LANG.ou_fans_s,
|
||||||
// prepare
|
// prepare
|
||||||
"sliceShellOrder": LANG.sl_ordr_s,
|
"sliceShellOrder": LANG.sl_ordr_s,
|
||||||
"sliceFillOverlap": LANG.fi_over_s,
|
"sliceFillOverlap": LANG.fi_over_s,
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,8 @@ FDM.export = function(print, online, ondone, ondebug) {
|
||||||
extrudeSet = false,
|
extrudeSet = false,
|
||||||
nozzleTemp = process.firstLayerNozzleTemp || process.outputTemp,
|
nozzleTemp = process.firstLayerNozzleTemp || process.outputTemp,
|
||||||
bedTemp = process.firstLayerBedTemp || process.outputBedTemp,
|
bedTemp = process.firstLayerBedTemp || process.outputBedTemp,
|
||||||
|
fanSpeedSave = undefined,
|
||||||
|
fanSpeedBase = undefined,
|
||||||
fanSpeed = undefined,
|
fanSpeed = undefined,
|
||||||
lastType = undefined,
|
lastType = undefined,
|
||||||
lastNozzleTemp = nozzleTemp,
|
lastNozzleTemp = nozzleTemp,
|
||||||
|
|
@ -95,6 +97,7 @@ FDM.export = function(print, online, ondone, ondebug) {
|
||||||
temp: nozzleTemp,
|
temp: nozzleTemp,
|
||||||
temp_bed: bedTemp,
|
temp_bed: bedTemp,
|
||||||
bed_temp: bedTemp,
|
bed_temp: bedTemp,
|
||||||
|
fan_speed_base: fanSpeedBase,
|
||||||
fan_speed: fanSpeed,
|
fan_speed: fanSpeed,
|
||||||
speed: fanSpeed, // legacy
|
speed: fanSpeed, // legacy
|
||||||
top: offset.y ? bedDepth : bedDepth/2,
|
top: offset.y ? bedDepth : bedDepth/2,
|
||||||
|
|
@ -133,9 +136,23 @@ FDM.export = function(print, online, ondone, ondebug) {
|
||||||
}
|
}
|
||||||
subst.tool_count = tools_used.length;
|
subst.tool_count = tools_used.length;
|
||||||
|
|
||||||
|
function setTempFanSpeed(tempSpeed) {
|
||||||
|
if (tempSpeed > 0) {
|
||||||
|
fanSpeedSave = fanSpeedSave >= 0 ? fanSpeedSave : fanSpeed;
|
||||||
|
fanSpeed = tempSpeed;
|
||||||
|
subst.fan_speed = fanSpeed;
|
||||||
|
subst.fan_speed_base = tempSpeed;
|
||||||
|
} else {
|
||||||
|
fanSpeed = fanSpeedSave >= 0 ? fanSpeedSave : fanSpeed
|
||||||
|
fanSpeedSave = undefined;
|
||||||
|
subst.fan_speed = fanSpeed;
|
||||||
|
subst.fan_speed_base = fanSpeedBase;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// smallish band-aid. refactor above to remove redundancy
|
// smallish band-aid. refactor above to remove redundancy
|
||||||
function updateParams(layer, params) {
|
function updateParams(layer, params) {
|
||||||
// let params = getRangeParameters(process, layer);
|
// params = getRangeParameters(process, layer);
|
||||||
zhop = params.zHopDistance || 0; // range
|
zhop = params.zHopDistance || 0; // range
|
||||||
retDist = params.outputRetractDist || 0; // range
|
retDist = params.outputRetractDist || 0; // range
|
||||||
retSpeed = params.outputRetractSpeed * 60 || 1; // range
|
retSpeed = params.outputRetractSpeed * 60 || 1; // range
|
||||||
|
|
@ -147,6 +164,7 @@ FDM.export = function(print, online, ondone, ondebug) {
|
||||||
bedTemp = layer === 0 ?
|
bedTemp = layer === 0 ?
|
||||||
params.firstLayerBedTemp || params.outputBedTemp :
|
params.firstLayerBedTemp || params.outputBedTemp :
|
||||||
params.outputBedTemp || params.firstLayerBedTemp;
|
params.outputBedTemp || params.firstLayerBedTemp;
|
||||||
|
fanSpeedBase = params.firstLayerFanSpeed || 0;
|
||||||
fanSpeed = layer === 0 ?
|
fanSpeed = layer === 0 ?
|
||||||
params.firstLayerFanSpeed || 0 :
|
params.firstLayerFanSpeed || 0 :
|
||||||
params.outputFanSpeed || 0;
|
params.outputFanSpeed || 0;
|
||||||
|
|
@ -154,6 +172,7 @@ FDM.export = function(print, online, ondone, ondebug) {
|
||||||
temp_bed: bedTemp,
|
temp_bed: bedTemp,
|
||||||
bed_temp: bedTemp,
|
bed_temp: bedTemp,
|
||||||
fan_speed: fanSpeed,
|
fan_speed: fanSpeed,
|
||||||
|
fan_speed_base: fanSpeedBase,
|
||||||
speed: fanSpeed, // legacy
|
speed: fanSpeed, // legacy
|
||||||
retract_speed: retSpeed,
|
retract_speed: retSpeed,
|
||||||
retract_distance: retDist,
|
retract_distance: retDist,
|
||||||
|
|
@ -682,6 +701,15 @@ FDM.export = function(print, online, ondone, ondebug) {
|
||||||
unretract();
|
unretract();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// in belt mode, fan can change per segment (for base)
|
||||||
|
if (isBelt) {
|
||||||
|
setTempFanSpeed(out.fan);
|
||||||
|
if (fanSpeed !== lastFanSpeed) {
|
||||||
|
appendAllSub(gcodeFan);
|
||||||
|
lastFanSpeed = fanSpeed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (lastp && out.emit) {
|
if (lastp && out.emit) {
|
||||||
if (arcDist) {
|
if (arcDist) {
|
||||||
let rec = {e:out.emit, x, y, z, dist, emitPerMM, speedMMM};
|
let rec = {e:out.emit, x, y, z, dist, emitPerMM, speedMMM};
|
||||||
|
|
|
||||||
|
|
@ -693,8 +693,9 @@ FDM.prepare = function(widgets, settings, update) {
|
||||||
}
|
}
|
||||||
if (rec.emit && belty <= thresh && lastout && Math.abs(lastout.belty - belty) < 0.005) {
|
if (rec.emit && belty <= thresh && lastout && Math.abs(lastout.belty - belty) < 0.005) {
|
||||||
// apply base speed to segments touching belt
|
// apply base speed to segments touching belt
|
||||||
rec.speed = Math.min(rec.speed, lowrate);
|
rec.speed = params.firstLayerRate || Math.min(rec.speed, lowrate);
|
||||||
rec.emit *= bmult;
|
rec.emit *= bmult;
|
||||||
|
rec.fan = params.firstLayerFanSpeed;
|
||||||
minx = Math.min(minx, point.x, lastout.point.x);
|
minx = Math.min(minx, point.x, lastout.point.x);
|
||||||
maxx = Math.max(maxx, point.x, lastout.point.x);
|
maxx = Math.max(maxx, point.x, lastout.point.x);
|
||||||
maxy = Math.max(maxy, point.y);
|
maxy = Math.max(maxy, point.y);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue