add belt brim comb and gap controls

This commit is contained in:
Stewart Allen 2021-04-06 22:38:02 -04:00
commit 35a319d9d1
5 changed files with 27 additions and 7 deletions

View file

@ -317,6 +317,8 @@
firstLayerBedTemp: 0, firstLayerBedTemp: 0,
firstLayerBrim: 0, firstLayerBrim: 0,
firstLayerBrimTrig: 0, firstLayerBrimTrig: 0,
firstLayerBrimComb: 0,
firstLayerBrimGap: 0,
firstLayerBeltLead: 3, firstLayerBeltLead: 3,
firstLayerFanSpeed: 0, firstLayerFanSpeed: 0,
outputRaft: false, outputRaft: false,

View file

@ -1664,8 +1664,10 @@
firstLayerLineMult: UC.newInput(LANG.fl_sfac_s, {title:LANG.fl_sfac_l, convert:UC.toFloat, bound:UC.bound(0.5,2), modes:FDM, show:isNotBelt}), firstLayerLineMult: UC.newInput(LANG.fl_sfac_s, {title:LANG.fl_sfac_l, convert:UC.toFloat, bound:UC.bound(0.5,2), modes:FDM, show:isNotBelt}),
firstLayerPrintMult: UC.newInput(LANG.fl_mult_s, {title:LANG.fl_mult_l, convert:UC.toFloat, modes:FDM}), firstLayerPrintMult: UC.newInput(LANG.fl_mult_s, {title:LANG.fl_mult_l, convert:UC.toFloat, modes:FDM}),
fdmSep: UC.newBlank({class:"pop-sep", modes:FDM, show:isBelt}), fdmSep: UC.newBlank({class:"pop-sep", modes:FDM, show:isBelt}),
firstLayerBrim: UC.newInput(LANG.fl_brim_s, {title:LANG.fl_brim_l, convert:UC.toFloat, modes:FDM, show:isBelt}), firstLayerBrim: UC.newInput(LANG.fl_brim_s, {title:LANG.fl_brim_l, convert:UC.toInt, modes:FDM, show:isBelt}),
firstLayerBrimTrig: UC.newInput(LANG.fl_brmn_s, {title:LANG.fl_brmn_l, convert:UC.toFloat, modes:FDM, show:isBelt}), firstLayerBrimComb: UC.newInput(LANG.fl_brco_s, {title:LANG.fl_brco_l, convert:UC.toInt, modes:FDM, show:isBelt}),
firstLayerBrimTrig: UC.newInput(LANG.fl_brmn_s, {title:LANG.fl_brmn_l, convert:UC.toInt, modes:FDM, show:isBelt}),
firstLayerBrimGap: UC.newInput(LANG.fl_brgp_s, {title:LANG.fl_brgp_l, convert:UC.toFloat, modes:FDM, show:isBelt}),
fdmSep: UC.newBlank({class:"pop-sep", modes:FDM, show:isBelt}), fdmSep: UC.newBlank({class:"pop-sep", modes:FDM, show:isBelt}),
firstLayerBeltLead: UC.newInput(LANG.fl_bled_s, {title:LANG.fl_bled_l, convert:UC.toFloat, modes:FDM, show:isBelt}), firstLayerBeltLead: UC.newInput(LANG.fl_bled_s, {title:LANG.fl_bled_l, convert:UC.toFloat, modes:FDM, show:isBelt}),
fdmSep: UC.newBlank({class:"pop-sep", modes:FDM, show:isNotBelt}), fdmSep: UC.newBlank({class:"pop-sep", modes:FDM, show:isNotBelt}),

View file

@ -52,7 +52,9 @@
"sliceSupportOffset": LANG.sp_offs_s, "sliceSupportOffset": LANG.sp_offs_s,
"sliceLayerStart": LANG.sl_strt_s, "sliceLayerStart": LANG.sl_strt_s,
"firstLayerBrim": LANG.fl_brim_s, "firstLayerBrim": LANG.fl_brim_s,
"firstLayerBrimComb": LANG.fl_brco_s,
"firstLayerBrimTrig": LANG.fl_brmn_s, "firstLayerBrimTrig": LANG.fl_brmn_s,
"firstLayerBrimGap": LANG.fl_brgp_s,
// export // export
"zHopDistance": LANG.ad_zhop_s, "zHopDistance": LANG.ad_zhop_s,
"arcTolerance": LANG.ad_zhop_s, "arcTolerance": LANG.ad_zhop_s,

View file

@ -501,12 +501,16 @@
// } // }
let thresh = firstLayerHeight * 1.05; let thresh = firstLayerHeight * 1.05;
let seqn = 0;
// iterate over layers, find extrusion on belt and // iterate over layers, find extrusion on belt and
// apply corrections and add brim when specified // apply corrections and add brim when specified
for (let layer of output) { for (let layer of output) {
let params = getRangeParameters(settings, layer.layer || 0); let params = getRangeParameters(settings, layer.layer || 0);
let firstLayerBrim = params.firstLayerBrim; let firstLayerBrim = params.firstLayerBrim;
let firstLayerBrimTrig = params.firstLayerBrimTrig; let firstLayerBrimTrig = params.firstLayerBrimTrig;
let firstLayerBrimComb = params.firstLayerBrimComb;
let firstLayerBrimGap = params.firstLayerBrimGap || 0;
let lastout, first = false; let lastout, first = false;
let minz = Infinity, maxy = -Infinity, minx = Infinity, maxx = -Infinity; let minz = Infinity, maxy = -Infinity, minx = Infinity, maxx = -Infinity;
let mins = Infinity; let mins = Infinity;
@ -539,18 +543,24 @@
continue; continue;
} }
// add brim, if specified // add brim, if specified
if (first && firstLayerBrim) { if (first && firstLayerBrim && seqn <= firstLayerBrimComb) {
let { emit, tool } = first; let { emit, tool } = first;
let y = maxy; let y = maxy;
let z = minz; let z = minz;
let b = Math.max(firstLayerBrim, 1); let g = firstLayerBrimGap || 0;
let b = Math.max(firstLayerBrim, 1) + g;
let tmpout = []; let tmpout = [];
layer.last().retract = true; layer.last().retract = true;
print.addOutput(tmpout, newPoint(maxx + b, y, z), 0, firstLayerSeek, tool); print.addOutput(tmpout, newPoint(maxx + b, y, z), 0, firstLayerSeek, tool);
print.addOutput(tmpout, newPoint(maxx + 0, y, z), emit, firstLayerRate, tool).retract = true; print.addOutput(tmpout, newPoint(maxx + g, y, z), emit, firstLayerRate, tool).retract = true;
print.addOutput(tmpout, newPoint(minx - b, y, z), 0, firstLayerSeek, tool); print.addOutput(tmpout, newPoint(minx - b, y, z), 0, firstLayerSeek, tool);
print.addOutput(tmpout, newPoint(minx - 0, y, z), emit, firstLayerRate, tool).retract = false; print.addOutput(tmpout, newPoint(minx - g, y, z), emit, firstLayerRate, tool).retract = false;
layer.splice(0,0,...tmpout); layer.splice(0,0,...tmpout);
if (firstLayerBrimComb) {
seqn++;
}
} else {
seqn = 0;
} }
} }
} }

View file

@ -310,10 +310,14 @@ kiri.lang['en-us'] = {
// FDM BELT ONLY // FDM BELT ONLY
fl_zoff_s: "belt offset", fl_zoff_s: "belt offset",
fl_zoff_l: ["height offset from belt","of lowest extrusion","in millimeters"], fl_zoff_l: ["height offset from belt","of lowest extrusion","in millimeters"],
fl_brim_s: "brim size", fl_brim_s: "brim width",
fl_brim_l: ["add brim to part bottom","size is width in millimeters","0 to disable"], fl_brim_l: ["add brim to part bottom","size is width in millimeters","0 to disable"],
fl_brmn_s: "brim trigger", fl_brmn_s: "brim trigger",
fl_brmn_l: ["add brims only when segment","facing belt is shorter than this","value in millimeters","0 = Infinity"], fl_brmn_l: ["add brims only when segment","facing belt is shorter than this","value in millimeters","0 = Infinity"],
fl_brco_s: "brim comb",
fl_brco_l: ["add brim gaps","every n lines","0 to disable"],
fl_brgp_s: "brim gap",
fl_brgp_l: ["spacing between brim and part","in millimeters"],
fl_bled_s: "part anchor", fl_bled_s: "part anchor",
fl_bled_l: ["belt part anchor","at start of print","in millimeters"], fl_bled_l: ["belt part anchor","at start of print","in millimeters"],