separate interior brims from side brims and make each configurable
This commit is contained in:
parent
5fa5dd89b5
commit
5dcbbdef10
4 changed files with 26 additions and 14 deletions
|
|
@ -316,6 +316,7 @@
|
||||||
firstLayerNozzleTemp: 0,
|
firstLayerNozzleTemp: 0,
|
||||||
firstLayerBedTemp: 0,
|
firstLayerBedTemp: 0,
|
||||||
firstLayerBrim: 0,
|
firstLayerBrim: 0,
|
||||||
|
firstLayerBrimIn: 0,
|
||||||
firstLayerBrimTrig: 0,
|
firstLayerBrimTrig: 0,
|
||||||
firstLayerBrimComb: 0,
|
firstLayerBrimComb: 0,
|
||||||
firstLayerBrimGap: 0,
|
firstLayerBrimGap: 0,
|
||||||
|
|
|
||||||
|
|
@ -1665,6 +1665,7 @@
|
||||||
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.toInt, modes:FDM, show:isBelt}),
|
firstLayerBrim: UC.newInput(LANG.fl_brim_s, {title:LANG.fl_brim_l, convert:UC.toInt, modes:FDM, show:isBelt}),
|
||||||
|
firstLayerBrimIn: UC.newInput(LANG.fl_brin_s, {title:LANG.fl_brin_l, convert:UC.toInt, modes:FDM, show:isBelt}),
|
||||||
firstLayerBrimComb: UC.newInput(LANG.fl_brco_s, {title:LANG.fl_brco_l, convert:UC.toInt, 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}),
|
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}),
|
firstLayerBrimGap: UC.newInput(LANG.fl_brgp_s, {title:LANG.fl_brgp_l, convert:UC.toFloat, modes:FDM, show:isBelt}),
|
||||||
|
|
|
||||||
|
|
@ -508,6 +508,7 @@
|
||||||
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 firstLayerBrimIn = params.firstLayerBrimIn;
|
||||||
let firstLayerBrimTrig = params.firstLayerBrimTrig;
|
let firstLayerBrimTrig = params.firstLayerBrimTrig;
|
||||||
let firstLayerBrimComb = params.firstLayerBrimComb;
|
let firstLayerBrimComb = params.firstLayerBrimComb;
|
||||||
let firstLayerBrimGap = params.firstLayerBrimGap || 0;
|
let firstLayerBrimGap = params.firstLayerBrimGap || 0;
|
||||||
|
|
@ -546,40 +547,47 @@
|
||||||
}
|
}
|
||||||
let tmpout = [];
|
let tmpout = [];
|
||||||
let trigmet = firstLayerBrimTrig === 0 || (firstLayerBrimTrig && mins > firstLayerBrimTrig);
|
let trigmet = firstLayerBrimTrig === 0 || (firstLayerBrimTrig && mins > firstLayerBrimTrig);
|
||||||
|
let brimax = Math.max(firstLayerBrim, firstLayerBrimIn);
|
||||||
// add brim when all conditions met
|
// add brim when all conditions met
|
||||||
if (firstLayerBrim && seqn <= firstLayerBrimComb && trigmet) {
|
if (brimax && seqn <= firstLayerBrimComb && trigmet) {
|
||||||
let { emit, tool } = first;
|
let { emit, tool } = first;
|
||||||
let y = maxy;
|
let y = maxy;
|
||||||
let z = minz;
|
let z = minz;
|
||||||
let g = firstLayerBrimGap || 0;
|
let g = firstLayerBrimGap || 0;
|
||||||
let b = Math.max(firstLayerBrim, 1) + g;
|
let b = Math.max(firstLayerBrim, 1) + g;
|
||||||
|
let bi = Math.max(firstLayerBrimIn, 1) + g;
|
||||||
layer.last().retract = true;
|
layer.last().retract = true;
|
||||||
|
// outside brim
|
||||||
|
if (firstLayerBrim) {
|
||||||
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 + g, y, z), emit, firstLayerRate, tool).retract = true;
|
print.addOutput(tmpout, newPoint(maxx + g, y, z), emit, firstLayerRate, tool).retract = true;
|
||||||
|
}
|
||||||
if (pads.length > 1) {
|
// inside brim
|
||||||
|
if (firstLayerBrimIn && pads.length > 1) {
|
||||||
let gaps = [];
|
let gaps = [];
|
||||||
let lpad = pads[0];
|
let lpad = pads[0];
|
||||||
for (let pad of pads.slice(1)) {
|
for (let pad of pads.slice(1)) {
|
||||||
let x0 = lpad[1];
|
let x0 = lpad[1];
|
||||||
let x1 = pad[0];
|
let x1 = pad[0];
|
||||||
lpad = pad;
|
lpad = pad;
|
||||||
if (x1 - x0 > b * 2) {
|
if (x1 - x0 > bi * 2) {
|
||||||
// over 2x brim so emit two segments
|
// over 2x brim so emit two segments
|
||||||
print.addOutput(tmpout, newPoint(x1 - g, y, z), 0, firstLayerSeek, tool);
|
print.addOutput(tmpout, newPoint(x1 - g, y, z), 0, firstLayerSeek, tool);
|
||||||
print.addOutput(tmpout, newPoint(x1 - b, y, z), emit, firstLayerRate, tool).retract = true;
|
print.addOutput(tmpout, newPoint(x1 - bi, y, z), emit, firstLayerRate, tool).retract = true;
|
||||||
print.addOutput(tmpout, newPoint(x0 + b, y, z), 0, firstLayerSeek, tool);
|
print.addOutput(tmpout, newPoint(x0 + bi, y, z), 0, firstLayerSeek, tool);
|
||||||
print.addOutput(tmpout, newPoint(x0 + g, y, z), emit, firstLayerRate, tool).retract = true;
|
print.addOutput(tmpout, newPoint(x0 + g, y, z), emit, firstLayerRate, tool).retract = true;
|
||||||
} else if (x1 - x0 > b / 3) {
|
} else if (x1 - x0 > bi / 3) {
|
||||||
// over 1/3rd brim length emit single segment
|
// over 1/3rd brim length emit single segment
|
||||||
print.addOutput(tmpout, newPoint(x1 - g, y, z), 0, firstLayerSeek, tool);
|
print.addOutput(tmpout, newPoint(x1 - g, y, z), 0, firstLayerSeek, tool);
|
||||||
print.addOutput(tmpout, newPoint(x0 + g, y, z), emit, firstLayerRate, tool).retract = true;
|
print.addOutput(tmpout, newPoint(x0 + g, y, z), emit, firstLayerRate, tool).retract = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// outside brim
|
||||||
|
if (firstLayerBrim) {
|
||||||
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 - g, y, z), emit, firstLayerRate, tool).retract = false;
|
print.addOutput(tmpout, newPoint(minx - g, y, z), emit, firstLayerRate, tool).retract = false;
|
||||||
|
}
|
||||||
if (firstLayerBrimComb) {
|
if (firstLayerBrimComb) {
|
||||||
seqn++;
|
seqn++;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -310,8 +310,10 @@ 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 width",
|
fl_brim_s: "brim sides",
|
||||||
fl_brim_l: ["add brim to part bottom","size is width in millimeters","0 to disable"],
|
fl_brim_l: ["add brim to part perimeter","size is width in millimeters","0 to disable"],
|
||||||
|
fl_brin_s: "brim interior",
|
||||||
|
fl_brin_l: ["add brim to part interior","when interior voids exist","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_s: "brim comb",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue