mark layers as touching / not-touching belt and route paths accordingly. add 'b' back view hot-key
This commit is contained in:
parent
92c427538c
commit
b6cb6cde87
5 changed files with 32 additions and 10 deletions
1
notes.md
1
notes.md
|
|
@ -51,7 +51,6 @@
|
|||
# FDM - BELT
|
||||
|
||||
* `B` fix supports for belt printing
|
||||
* `F` hide layer lines under print
|
||||
|
||||
# CAM
|
||||
|
||||
|
|
|
|||
|
|
@ -1603,13 +1603,13 @@
|
|||
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}),
|
||||
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}),
|
||||
firstLayerFillRate: UC.newInput(LANG.fl_frat_s, {title:LANG.fl_frat_l, convert:UC.toFloat, modes:FDM, show:isNotBelt}),
|
||||
fdmSep: UC.newBlank({class:"pop-sep", 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}),
|
||||
firstLayerBrim: UC.newInput(LANG.fl_sfac_s, {title:LANG.fl_brim_l, convert:UC.toFloat, modes:FDM, show:isBelt}),
|
||||
firstLayerYOffset: UC.newInput(LANG.fl_zoff_s, {title:LANG.fl_zoff_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}),
|
||||
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}),
|
||||
outputBrimOffset: UC.newInput(LANG.fl_skro_s, {title:LANG.fl_skro_l, convert:UC.toFloat, modes:FDM, show:isNotBelt}),
|
||||
|
|
|
|||
|
|
@ -749,9 +749,11 @@
|
|||
break;
|
||||
}
|
||||
|
||||
// optimize start point on belt for all tops
|
||||
if (isBelt) {
|
||||
// optimize start point on belt for tops touching belt
|
||||
// and enforce optimal shell order (outer first)
|
||||
if (isBelt && opt.onBelt) {
|
||||
startPoint = startClone;
|
||||
shellOrder = 1;
|
||||
}
|
||||
|
||||
// top object
|
||||
|
|
|
|||
|
|
@ -292,8 +292,25 @@
|
|||
if (isBelt) {
|
||||
offset.x = rotinfo.xpos;
|
||||
offset.y = -belt.midy;
|
||||
offset.y += rotinfo.ypos * beltfact;// - 0.5;
|
||||
offset.y += rotinfo.ypos * beltfact;
|
||||
offset.z = rotinfo.ypos * beltfact;
|
||||
// locate the lowest point in slices and widget overall
|
||||
let minby = Infinity;
|
||||
for (let slice of widget.slices) {
|
||||
slice.minby = Infinity;
|
||||
for (let top of slice.tops) {
|
||||
let poly = top.poly;
|
||||
for (let point of poly.points) {
|
||||
let ypos = -point.y + point.z * bfactor;
|
||||
slice.minby = Math.min(slice.minby, ypos);
|
||||
minby = Math.min(minby, ypos);
|
||||
}
|
||||
}
|
||||
}
|
||||
// flag slices as being on or off the bed / belt
|
||||
for (let slice of widget.slices) {
|
||||
slice.onbelt = Math.abs(minby - slice.minby) < 0.01;
|
||||
}
|
||||
} else {
|
||||
// when rafts used this is non-zero
|
||||
offset.z = zoff;
|
||||
|
|
@ -382,7 +399,8 @@
|
|||
tmpout, //layerout,
|
||||
{
|
||||
first: slice.index === 0,
|
||||
support: slice.widget.support
|
||||
support: slice.widget.support,
|
||||
onBelt: slice.onbelt
|
||||
}
|
||||
);
|
||||
layerout.appendAll(tmpout);
|
||||
|
|
@ -431,8 +449,7 @@
|
|||
}
|
||||
}
|
||||
// correct y offset to desired layer offset
|
||||
let miny = process.firstLayerYOffset;
|
||||
// console.log({minby, miny, firstLayerHeight});
|
||||
let miny = process.firstLayerYOffset || 0;
|
||||
for (let layer of output) {
|
||||
for (let rec of layer) {
|
||||
let point = rec.point;
|
||||
|
|
|
|||
|
|
@ -645,6 +645,10 @@
|
|||
Space.view.front();
|
||||
cycleInd = 0;
|
||||
break;
|
||||
case cca('b'):
|
||||
Space.view.back();
|
||||
cycleInd = 2;
|
||||
break;
|
||||
case cca('>'):
|
||||
cycleInd = (++cycleInd % cycle.length);
|
||||
cycle[cycleInd]();
|
||||
|
|
|
|||
Loading…
Reference in a new issue