expand set of range override parameters
This commit is contained in:
parent
ed08316e09
commit
76dc5be0a5
6 changed files with 76 additions and 40 deletions
|
|
@ -316,10 +316,10 @@
|
|||
firstLayerBrim: 0,
|
||||
firstLayerBrimTrig: 0,
|
||||
firstLayerBeltLead: 3,
|
||||
firstLayerFanSpeed: 0,
|
||||
outputRaft: false,
|
||||
outputRaftSpacing: 0.2,
|
||||
outputTemp: 200,
|
||||
outputFanMax: 255,
|
||||
outputBedTemp: 60,
|
||||
outputFeedrate: 50,
|
||||
outputFinishrate: 50,
|
||||
|
|
@ -327,7 +327,7 @@
|
|||
outputShellMult: 1.25,
|
||||
outputFillMult: 1.25,
|
||||
outputSparseMult: 1.25,
|
||||
outputFanLayer: 1,
|
||||
outputFanSpeed: 255,
|
||||
outputRetractDist: 1.5,
|
||||
outputRetractSpeed: 40,
|
||||
outputRetractWipe: 0,
|
||||
|
|
|
|||
|
|
@ -1673,6 +1673,7 @@
|
|||
fdmSep: UC.newBlank({class:"pop-sep", modes:FDM, show:isNotBelt}),
|
||||
firstLayerNozzleTemp:UC.newInput(LANG.fl_nozl_s, {title:LANG.fl_nozl_l, convert:UC.toInt, modes:FDM, show:isNotBelt}),
|
||||
firstLayerBedTemp: UC.newInput(LANG.fl_bedd_s, {title:LANG.fl_bedd_l, convert:UC.toInt, modes:FDM, show:isNotBelt}),
|
||||
firstLayerFanSpeed: UC.newInput(LANG.ou_fans_s, {title:LANG.ou_fans_l, convert:UC.toInt, bound:UC.bound(0,255), modes:FDM}),
|
||||
fdmSep: UC.newBlank({class:"pop-sep", modes:FDM, show:isNotBelt}),
|
||||
firstLayerYOffset: UC.newInput(LANG.fl_zoff_s, {title:LANG.fl_zoff_l, convert:UC.toFloat, modes:FDM, show:isBelt}),
|
||||
firstLayerRate: UC.newInput(LANG.fl_rate_s, {title:LANG.fl_rate_l, convert:UC.toFloat, modes:FDM}),
|
||||
|
|
@ -1696,9 +1697,10 @@
|
|||
sliceFillType: UC.newSelect(LANG.fi_type, {modes:FDM}, "infill"),
|
||||
fdmSep: UC.newBlank({class:"pop-sep", modes:FDM}),
|
||||
sliceFillSparse: UC.newInput(LANG.fi_pcnt_s, {title:LANG.fi_pcnt_l, convert:UC.toFloat, bound:UC.bound(0.0,1.0), modes:FDM}),
|
||||
sliceFillAngle: UC.newInput(LANG.fi_angl_s, {title:LANG.fi_angl_l, convert:UC.toFloat, modes:FDM}),
|
||||
sliceFillOverlap: UC.newInput(LANG.fi_over_s, {title:LANG.fi_over_l, convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM}),
|
||||
fdmSep: UC.newBlank({class:"pop-sep", modes:FDM}),
|
||||
sliceFillOverlap: UC.newInput(LANG.fi_over_s, {title:LANG.fi_over_l, convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM}),
|
||||
sliceFillAngle: UC.newInput(LANG.fi_angl_s, {title:LANG.fi_angl_l, convert:UC.toFloat, modes:FDM}),
|
||||
// fdmSep: UC.newBlank({class:"pop-sep", modes:FDM}),
|
||||
sliceFillRate: UC.newInput(LANG.ou_feed_s, {title:LANG.fi_rate_l, convert:UC.toInt, bound:UC.bound(0,300), modes:FDM}),
|
||||
|
||||
fdmSupport: UC.newGroup(LANG.sp_menu, null, {modes:FDM, marker:false}),
|
||||
|
|
@ -1777,6 +1779,7 @@
|
|||
|
||||
outputTemp: UC.newInput(LANG.ou_nozl_s, {title:LANG.ou_nozl_l, convert:UC.toInt, modes:FDM}),
|
||||
outputBedTemp: UC.newInput(LANG.ou_bedd_s, {title:LANG.ou_bedd_l, convert:UC.toInt, modes:FDM}),
|
||||
outputFanSpeed: UC.newInput(LANG.ou_fans_s, {title:LANG.ou_fans_l, convert:UC.toInt, bound:UC.bound(0,255), modes:FDM}),
|
||||
fdmSep: UC.newBlank({class:"pop-sep", modes:FDM}),
|
||||
outputFeedrate: UC.newInput(LANG.ou_feed_s, {title:LANG.ou_feed_l, convert:UC.toInt, modes:FDM}),
|
||||
outputFinishrate: UC.newInput(LANG.ou_fini_s, {title:LANG.ou_fini_l, convert:UC.toInt, modes:FDM}),
|
||||
|
|
@ -1786,7 +1789,6 @@
|
|||
outputFillMult: UC.newInput(LANG.ou_flml_s, {title:LANG.ou_exml_l, convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM}),
|
||||
outputSparseMult: UC.newInput(LANG.ou_spml_s, {title:LANG.ou_exml_l, convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM}),
|
||||
fdmSep: UC.newBlank({class:"pop-sep", modes:FDM}),
|
||||
outputFanLayer: UC.newInput(LANG.ou_fanl_s, {title:LANG.ou_fanl_l, convert:UC.toInt, bound:UC.bound(0,100), modes:FDM}),
|
||||
sliceShellOrder: UC.newSelect(LANG.sl_ordr_s, {title:LANG.sl_ordr_l, modes:FDM}, "shell"),
|
||||
sliceLayerStart: UC.newSelect(LANG.sl_strt_s, {title:LANG.sl_strt_l, modes:FDM}, "start"),
|
||||
camConventional: UC.newBoolean(LANG.ou_conv_s, onBooleanClick, {title:LANG.ou_conv_l, modes:CAM}),
|
||||
|
|
|
|||
|
|
@ -46,10 +46,11 @@
|
|||
"sliceSupportDensity": LANG.sp_dens_s,
|
||||
"sliceSupportOffset": LANG.sp_offs_s,
|
||||
"sliceLayerStart": LANG.sl_strt_s,
|
||||
"zHopDistance": LANG.ad_zhop_s,
|
||||
// export
|
||||
"zHopDistance": LANG.ad_zhop_s,
|
||||
"outputTemp": LANG.ou_nozl_s,
|
||||
"outputBedTemp": LANG.ou_bedd_s,
|
||||
"outputFanSpeed": LANG.ou_fans_s,
|
||||
"outputRetractDist": LANG.ad_rdst_s,
|
||||
"outputRetractSpeed": LANG.outputRetractSpeed,
|
||||
"outputRetractDwell": LANG.ad_rdwl_s,
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
loops = process.outputLoopLayers,
|
||||
zhop = process.zHopDistance || 0, // range
|
||||
seekMMM = process.outputSeekrate * 60,
|
||||
retDist = process.outputRetractDist, // range
|
||||
retDist = process.outputRetractDist || 0, // range
|
||||
retSpeed = process.outputRetractSpeed * 60, // range
|
||||
retDwell = process.outputRetractDwell || 0, // range
|
||||
timeDwell = retDwell / 1000,
|
||||
|
|
@ -60,15 +60,21 @@
|
|||
x: device.bedWidth/2,
|
||||
y: isBelt ? 0 : device.bedDepth/2
|
||||
},
|
||||
nozzleTemp = process.firstLayerNozzleTemp || process.outputTemp,
|
||||
bedTemp = process.firstLayerBedTemp || process.outputBedTemp,
|
||||
fanSpeed = process.firstLayerFanSpeed,
|
||||
lastNozzleTemp = nozzleTemp,
|
||||
lastBedTemp = bedTemp,
|
||||
lastFanSpeed = fanSpeed,
|
||||
subst = {
|
||||
travel_speed: seekMMM,
|
||||
retract_speed: retSpeed,
|
||||
retract_distance: retDist,
|
||||
temp: process.firstLayerNozzleTemp || process.outputTemp, // range
|
||||
temp_bed: process.firstLayerBedTemp || process.outputBedTemp, // range
|
||||
bed_temp: process.firstLayerBedTemp || process.outputBedTemp, // range
|
||||
fan_speed: process.outputFanMax,
|
||||
speed: process.outputFanMax, // legacy
|
||||
temp: nozzleTemp,
|
||||
temp_bed: bedTemp,
|
||||
bed_temp: bedTemp,
|
||||
fan_speed: fanSpeed,
|
||||
speed: fanSpeed, // legacy
|
||||
top: offset ? device.bedDepth : device.bedDepth/2,
|
||||
left: offset ? 0 : -device.bedWidth/2,
|
||||
right: offset ? device.bedWidth : device.bedWidth/2,
|
||||
|
|
@ -85,9 +91,32 @@
|
|||
bcos = Math.cos(Math.PI/4),
|
||||
icos = 1 / bcos,
|
||||
inLoop,
|
||||
params,
|
||||
arcQ = [];
|
||||
|
||||
// smallish band-aid. refactor above to remove redundancy
|
||||
function updateParams(layer) {
|
||||
let process = getRangeParameters(settings, layer);
|
||||
zhop = process.zHopDistance || 0; // range
|
||||
retDist = process.outputRetractDist || 0; // range
|
||||
retSpeed = process.outputRetractSpeed * 60; // range
|
||||
retDwell = process.outputRetractDwell || 0; // range
|
||||
timeDwell = retDwell / 1000;
|
||||
nozzleTemp = process.outputTemp;
|
||||
bedTemp = process.outputBedTemp;
|
||||
fanSpeed = process.outputFanSpeed;
|
||||
Object.assign(subst, {
|
||||
temp_bed: bedTemp,
|
||||
bed_temp: bedTemp,
|
||||
fan_speed: fanSpeed,
|
||||
speed: fanSpeed, // legacy
|
||||
retract_speed: retSpeed,
|
||||
retract_distance: retDist,
|
||||
temp: process.outputTemp, // range
|
||||
temp_bed: process.outputBedTemp, // range
|
||||
bed_temp: process.outputBedTemp, // range
|
||||
});
|
||||
}
|
||||
|
||||
if (isBelt && loops) {
|
||||
loops = loops.split(',').map(range => {
|
||||
return range.split('-').map(v => parseInt(v));
|
||||
|
|
@ -261,6 +290,10 @@
|
|||
if (comment) {
|
||||
o.append(` ; ${comment}`);
|
||||
}
|
||||
if (o.length === 1) {
|
||||
// console.trace({no_move: o, out, newpos, pos, lastp, emit});
|
||||
return;
|
||||
}
|
||||
let line = o.join('');
|
||||
if (last == line) {
|
||||
// console.log({dup:line});
|
||||
|
|
@ -284,9 +317,11 @@
|
|||
|
||||
while (layer < layers.length) {
|
||||
path = layers[layer];
|
||||
params = getRangeParameters(settings, path.layer);
|
||||
// TODO update process settings from params override
|
||||
// console.log(path.layer, params)
|
||||
|
||||
// allow range overrides past base
|
||||
if (path.layer > 0) {
|
||||
updateParams(path.layer);
|
||||
}
|
||||
|
||||
emitPerMM = print.extrudePerMM(
|
||||
extruder.extNozzle,
|
||||
|
|
@ -336,24 +371,20 @@
|
|||
append(`;; --- layer ${layer} (${subst.height} @ ${subst.z.round(3)}) ---`);
|
||||
}
|
||||
|
||||
// enable fan at fan layer
|
||||
if (gcodeFan && layer === process.outputFanLayer) {
|
||||
// layer temp and fan overrides at layer changes
|
||||
if (fanSpeed !== lastFanSpeed) {
|
||||
appendAllSub(gcodeFan);
|
||||
lastFanSpeed = fanSpeed;
|
||||
}
|
||||
|
||||
// second layer transitions
|
||||
if (layer === 1) {
|
||||
// update temps when first layer overrides are present
|
||||
if (process.firstLayerNozzleTemp) {
|
||||
subst.temp = process.outputTemp; // range
|
||||
if (t0) appendSub("M104 S{temp} T0");
|
||||
if (t1) appendSub("M104 S{temp} T1");
|
||||
if (!(t0 || t1)) appendSub("M104 S{temp} T{tool}");
|
||||
}
|
||||
if (process.firstLayerBedTemp) {
|
||||
subst.bed_temp = subst.temp_bed = process.outputBedTemp; // range
|
||||
appendSub("M140 S{temp_bed} T0");
|
||||
if (bedTemp !== lastBedTemp) {
|
||||
append(`M140 S${bedTemp} T0`);
|
||||
lastBedTemp = bedTemp;
|
||||
}
|
||||
if (nozzleTemp !== lastNozzleTemp) {
|
||||
if (t0) append(`M104 S${nozzleTemp} T0`);
|
||||
if (t1) append(`M104 S${nozzleTemp} T1`);
|
||||
if (!(t0 || t1)) append(`M104 S{nozzleTemp} T${tool}`);
|
||||
lastNozzleTemp = nozzleTemp;
|
||||
}
|
||||
|
||||
// move Z to layer height
|
||||
|
|
|
|||
|
|
@ -68,7 +68,6 @@
|
|||
solidLayers = spro.sliceSolidLayers,
|
||||
vaseMode = spro.sliceFillType === 'vase' && !isSynth,
|
||||
doSolidLayers = solidLayers && !vaseMode && !isSynth,
|
||||
doSparseFill = !vaseMode && spro.sliceFillSparse > 0.0,
|
||||
metadata = settings.widget[widget.id] || {},
|
||||
extruder = metadata.extruder || 0,
|
||||
sliceHeight = spro.sliceHeight,
|
||||
|
|
@ -376,10 +375,13 @@
|
|||
}
|
||||
|
||||
// sparse layers only present when non-vase mose and sparse % > 0
|
||||
if (doSparseFill && !isSynth) {
|
||||
if (!isSynth) {
|
||||
let lastType;
|
||||
forSlices(0.5, 0.7, slice => {
|
||||
let params = getRangeParameters(settings, slice.index);
|
||||
if (vaseMode || !params.sliceFillSparse) {
|
||||
return;
|
||||
}
|
||||
let newType = params.sliceFillType;
|
||||
doSparseLayerFill(slice, {
|
||||
settings: settings,
|
||||
|
|
|
|||
|
|
@ -200,12 +200,12 @@ kiri.lang['en-us'] = {
|
|||
// FDM FILL
|
||||
fi_menu: "infill",
|
||||
fi_type: "type",
|
||||
fi_pcnt_s: "fraction",
|
||||
fi_pcnt_s: "fill fraction",
|
||||
fi_pcnt_l: "fill density values\n0.0 - 1.0",
|
||||
fi_angl_s: "start angle",
|
||||
fi_angl_l: "base angle in degrees",
|
||||
fi_angl_s: "solid start",
|
||||
fi_angl_l: "starting angle in degrees\n90 degrees added to \neach following layer\napplies only to solid layers",
|
||||
fi_over_s: "overlap",
|
||||
fi_over_l: "overlap with shell and fill\nas % of nozzle width\nhigher bonds better\n0.0 - 1.0",
|
||||
fi_over_l: "overlap with shell and other fill\nas fraction of nozzle diameter\n0.0 - 1.0",
|
||||
// fi_rate_s: "print speed",
|
||||
fi_rate_l: "extrusion speed for infill\nset to 0 to use default\noutput print speeds",
|
||||
|
||||
|
|
@ -429,8 +429,8 @@ kiri.lang['en-us'] = {
|
|||
ou_flml_s: "solid factor",
|
||||
ou_spml_s: "infill factor",
|
||||
ou_exml_l: "extrusion multiplier\n0.0 - 2.0",
|
||||
ou_fanl_s: "fan layer",
|
||||
ou_fanl_l: "layer to enable fan",
|
||||
ou_fans_s: "fan speed",
|
||||
ou_fans_l: "0 - 255",
|
||||
|
||||
// OUTPUT CAM
|
||||
ou_toll_s: "tolerance",
|
||||
|
|
|
|||
Loading…
Reference in a new issue