add brim trigger threshold. disable first layer anchor (for now)
This commit is contained in:
parent
4c6da4933d
commit
cc1f466aa7
5 changed files with 32 additions and 15 deletions
|
|
@ -310,6 +310,7 @@
|
||||||
firstLayerNozzleTemp: 0,
|
firstLayerNozzleTemp: 0,
|
||||||
firstLayerBedTemp: 0,
|
firstLayerBedTemp: 0,
|
||||||
firstLayerBrim: 0,
|
firstLayerBrim: 0,
|
||||||
|
firstLayerBrimTrig: 0,
|
||||||
outputRaft: false,
|
outputRaft: false,
|
||||||
outputRaftSpacing: 0.2,
|
outputRaftSpacing: 0.2,
|
||||||
outputTemp: 200,
|
outputTemp: 200,
|
||||||
|
|
|
||||||
|
|
@ -1629,6 +1629,7 @@
|
||||||
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}),
|
||||||
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.toFloat, modes:FDM, show:isBelt}),
|
||||||
|
firstLayerBrimTrig: UC.newInput(LANG.fl_brmn_s, {title:LANG.fl_brmn_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}),
|
||||||
outputBrimCount: UC.newInput(LANG.fl_skrt_s, {title:LANG.fl_skrt_l, convert:UC.toInt, modes:FDM, show:isNotBelt}),
|
outputBrimCount: UC.newInput(LANG.fl_skrt_s, {title:LANG.fl_skrt_l, convert:UC.toInt, modes:FDM, show:isNotBelt}),
|
||||||
outputBrimOffset: UC.newInput(LANG.fl_skro_s, {title:LANG.fl_skro_l, convert:UC.toFloat, modes:FDM, show:isNotBelt}),
|
outputBrimOffset: UC.newInput(LANG.fl_skro_s, {title:LANG.fl_skro_l, convert:UC.toFloat, modes:FDM, show:isNotBelt}),
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@
|
||||||
firstLayerRate = process.firstLayerRate,
|
firstLayerRate = process.firstLayerRate,
|
||||||
firstLayerMult = process.firstLayerPrintMult,
|
firstLayerMult = process.firstLayerPrintMult,
|
||||||
firstLayerBrim = process.firstLayerBrim,
|
firstLayerBrim = process.firstLayerBrim,
|
||||||
|
firstLayerBrimTrig = process.firstLayerBrimTrig,
|
||||||
maxLayers = 0,
|
maxLayers = 0,
|
||||||
layer = 0,
|
layer = 0,
|
||||||
zoff = 0,
|
zoff = 0,
|
||||||
|
|
@ -447,10 +448,10 @@
|
||||||
}
|
}
|
||||||
// correct y offset to desired layer offset
|
// correct y offset to desired layer offset
|
||||||
let miny = process.firstLayerYOffset || 0;
|
let miny = process.firstLayerYOffset || 0;
|
||||||
|
let poff = minby - miny;
|
||||||
for (let layer of output) {
|
for (let layer of output) {
|
||||||
for (let rec of layer) {
|
for (let rec of layer) {
|
||||||
let point = rec.point;
|
rec.point.y += poff;
|
||||||
point.y += minby - miny;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let thresh = firstLayerHeight * 1.05;
|
let thresh = firstLayerHeight * 1.05;
|
||||||
|
|
@ -459,19 +460,28 @@
|
||||||
for (let layer of output) {
|
for (let layer of output) {
|
||||||
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;
|
||||||
for (let out of layer) {
|
let mins = Infinity;
|
||||||
let point = out.point;
|
let miny = Infinity;
|
||||||
let belty = out.belty = -point.y + point.z * bfactor;
|
for (let rec of layer) {
|
||||||
if (out.emit && belty <= thresh && lastout && lastout.belty <= thresh) {
|
let point = rec.point;
|
||||||
out.speed = firstLayerRate;
|
let belty = rec.belty = -point.y + point.z * bfactor;
|
||||||
out.emit *= firstLayerMult;
|
miny = Math.min(miny, belty);
|
||||||
|
if (rec.emit && belty <= thresh && lastout && Math.abs(lastout.belty - belty) < 0.005) {
|
||||||
|
rec.speed = firstLayerRate;
|
||||||
|
rec.emit *= firstLayerMult;
|
||||||
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);
|
||||||
minz = Math.min(minz, point.z);
|
minz = Math.min(minz, point.z);
|
||||||
first = out;
|
first = rec;
|
||||||
|
// find length of shortest bed-facing segment
|
||||||
|
mins = Math.min(mins, lastout.point.distTo2D(rec.point));
|
||||||
}
|
}
|
||||||
lastout = out;
|
lastout = rec;
|
||||||
|
}
|
||||||
|
// skip if brig trigger not met
|
||||||
|
if (firstLayerBrimTrig && mins > firstLayerBrimTrig) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
// add brim, if specified
|
// add brim, if specified
|
||||||
if (first && firstLayerBrim) {
|
if (first && firstLayerBrim) {
|
||||||
|
|
|
||||||
|
|
@ -509,7 +509,8 @@
|
||||||
shellout += top.shells.length;
|
shellout += top.shells.length;
|
||||||
|
|
||||||
// add anchor extrusion if missing on the first belt layer
|
// add anchor extrusion if missing on the first belt layer
|
||||||
if (opt.belt0 && top.shells.length === 0 && slice.up && slice.up.tops.length) {
|
// todo: fix. disabled because throws off layer min y calculations in some cases
|
||||||
|
if (false && opt.belt0 && top.shells.length === 0 && slice.up && slice.up.tops.length) {
|
||||||
for (let up of slice.up.tops) {
|
for (let up of slice.up.tops) {
|
||||||
let bounds = up.poly.bounds,
|
let bounds = up.poly.bounds,
|
||||||
midy = (bounds.miny + bounds.maxy) / 2;
|
midy = (bounds.miny + bounds.maxy) / 2;
|
||||||
|
|
|
||||||
|
|
@ -213,10 +213,6 @@ kiri.lang['en-us'] = {
|
||||||
fl_mult_l: "extrusion multiplier\n0.0 - 2.0",
|
fl_mult_l: "extrusion multiplier\n0.0 - 2.0",
|
||||||
fl_sfac_s: "width factor",
|
fl_sfac_s: "width factor",
|
||||||
fl_sfac_l: "multiplier on nozzle size\nchanges line spacing",
|
fl_sfac_l: "multiplier on nozzle size\nchanges line spacing",
|
||||||
fl_zoff_s: "layer offset",
|
|
||||||
fl_zoff_l: "height offset from belt\nof lowest extrusion\nin millimeters",
|
|
||||||
fl_brim_s: "brim size",
|
|
||||||
fl_brim_l: "add brim to part bottom\nsize is width in millimeters\n0 to disable",
|
|
||||||
fl_skrt_s: "skirt count",
|
fl_skrt_s: "skirt count",
|
||||||
fl_skrt_l: "number of first-layer offset\nbrims to generate",
|
fl_skrt_l: "number of first-layer offset\nbrims to generate",
|
||||||
fl_skro_s: "skirt offset",
|
fl_skro_s: "skirt offset",
|
||||||
|
|
@ -230,6 +226,14 @@ kiri.lang['en-us'] = {
|
||||||
fr_nabl_s: "raft enable",
|
fr_nabl_s: "raft enable",
|
||||||
fr_nabl_l: "create a raft under the\nmodel for better adhesion\nuses skirt offset and\ndisables skirt output",
|
fr_nabl_l: "create a raft under the\nmodel for better adhesion\nuses skirt offset and\ndisables skirt output",
|
||||||
|
|
||||||
|
// FDM BELT ONLY
|
||||||
|
fl_zoff_s: "layer offset",
|
||||||
|
fl_zoff_l: "height offset from belt\nof lowest extrusion\nin millimeters",
|
||||||
|
fl_brim_s: "brim size",
|
||||||
|
fl_brim_l: "add brim to part bottom\nsize is width in millimeters\n0 to disable",
|
||||||
|
fl_brmn_s: "brim trigger",
|
||||||
|
fl_brmn_l: "add brims only when segment\nfacing belt is shorter than this\nvalue in millimeters\n0 = Infinity",
|
||||||
|
|
||||||
// FDM SUPPORT
|
// FDM SUPPORT
|
||||||
sp_menu: "support",
|
sp_menu: "support",
|
||||||
sp_detect: "detect",
|
sp_detect: "detect",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue