improve infill speed / routing for most scenarios. improve (hidden) intra-layer fdm slider

This commit is contained in:
Stewart Allen 2024-06-24 15:20:41 -04:00
commit bde9080f43
5 changed files with 27 additions and 37 deletions

View file

@ -132,29 +132,18 @@ FDM.init = function(kiri, api) {
}; };
} }
} }
api.event.on("function.animate", (mode) => { api.event.on("function.animate", (mode) => {
if (!isFdmMode) { if (!(isFdmMode && lastView === VIEWS.PREVIEW)) {
return; return;
} }
if (!api.conf.get().controller.danger) { let slider = $('top-slider');
return; slider.style.display = 'flex';
} slider.oninput = slider.onchange = (ev) => {
let pct = 0; api.const.STACKS.setFraction(parseInt(ev.target.value)/1000);
let int = setInterval(() => { api.space.update();
if (pct <= 1) { };
api.const.STACKS.setFraction(pct); $('anim-slider').value = 500;
pct += 0.05; api.const.STACKS.setFraction(0.5);
} else {
api.const.STACKS.setFraction(1);
clearTimeout(int);
}
}, 50);
// let slider = $('top-slider');
// slider.style.display = 'flex';
// slider.oninput = slider.onchange = (ev) => {
// api.const.STACKS.setFraction(parseInt(ev.target.value)/100);
// };
}); });
api.event.on("mode.set", mode => { api.event.on("mode.set", mode => {
isFdmMode = mode === 'FDM'; isFdmMode = mode === 'FDM';
@ -166,6 +155,7 @@ FDM.init = function(kiri, api) {
updateVisiblity(); updateVisiblity();
}); });
api.event.on("view.set", view => { api.event.on("view.set", view => {
$('top-slider').style.display = 'none';
lastView = view; lastView = view;
updateVisiblity(); updateVisiblity();
filterSynth(); filterSynth();

View file

@ -1171,7 +1171,7 @@ function slicePrintPath(print, slice, startPoint, offset, output, opt = {}) {
lastIndex = -1, lastIndex = -1,
raft = opt.raft || false, raft = opt.raft || false,
flow = opt.flow || 1, flow = opt.flow || 1,
near = opt.near || false, near = opt.near || (antiBacklash ? false : true),
fast = opt.fast || false, fast = opt.fast || false,
fill = (opt.fill >= 0 ? opt.fill : fillMult) * flow, fill = (opt.fill >= 0 ? opt.fill : fillMult) * flow,
thinDist = near ? thinWall : thinWall; thinDist = near ? thinWall : thinWall;
@ -1182,7 +1182,7 @@ function slicePrintPath(print, slice, startPoint, offset, output, opt = {}) {
found = false; found = false;
mindist = Infinity; mindist = Infinity;
// use next nearest line strategy // use next nearest line endpoint strategy
if (near) if (near)
for (let i=0; i<lines.length; i += 2) { for (let i=0; i<lines.length; i += 2) {
t1 = lines[i]; t1 = lines[i];
@ -1192,7 +1192,9 @@ function slicePrintPath(print, slice, startPoint, offset, output, opt = {}) {
t2 = lines[i+1]; t2 = lines[i+1];
let d1 = t1.distToSq2D(startPoint); let d1 = t1.distToSq2D(startPoint);
let d2 = t2.distToSq2D(startPoint); let d2 = t2.distToSq2D(startPoint);
if (d1 < mindist || d2 < mindist) { let idiff = startPoint.index ? Math.abs(startPoint.index - t1.index) : 1;
let min = Math.min(d1, d2) * (idiff !== 1 ? 10 : 1);
if (min < mindist) {
if (d2 < d1) { if (d2 < d1) {
p2 = t1; p2 = t1;
p1 = t2; p1 = t2;
@ -1200,13 +1202,11 @@ function slicePrintPath(print, slice, startPoint, offset, output, opt = {}) {
p1 = t1; p1 = t1;
p2 = t2; p2 = t2;
} }
mindist = Math.min(d1, d2); mindist = min;
lastIndex = i;
} }
} }
// use next index line strategy // use next line index strategy (perpendicular offset from origin)
// order all points by distance to last point
if (!near) if (!near)
for (let i=start; i<lines.length; i += 2) { for (let i=start; i<lines.length; i += 2) {
p = lines[i]; p = lines[i];
@ -1267,7 +1267,7 @@ function slicePrintPath(print, slice, startPoint, offset, output, opt = {}) {
// re-seek a new start index within fill array // re-seek a new start index within fill array
let restart = lastIndex < 0; let restart = lastIndex < 0;
// mark as used (temporarily) // mark as used
p1.del = true; p1.del = true;
p2.del = true; p2.del = true;
marked += 2; marked += 2;
@ -1301,7 +1301,6 @@ function slicePrintPath(print, slice, startPoint, offset, output, opt = {}) {
} else { } else {
print.addOutput(preout, p1, 0, moveSpeed, extruder); print.addOutput(preout, p1, 0, moveSpeed, extruder);
} }
print.addOutput(preout, p2, fill, fillSpeed, extruder); print.addOutput(preout, p2, fill, fillSpeed, extruder);
} }

View file

@ -382,7 +382,7 @@ const conf = exports({
sliceAdaptive: false, sliceAdaptive: false,
zHopDistance: 0.2, zHopDistance: 0.2,
arcTolerance: 0, arcTolerance: 0,
antiBacklash: 1, antiBacklash: 0,
ranges: [] ranges: []
} }
}, },

View file

@ -2029,9 +2029,11 @@ th, tr, td, label {
#top-slider { #top-slider {
position: absolute; position: absolute;
display: none; display: none;
top: 60px; top: 10px;
left: 50px; left: 35px;
right: 50px; right: 50px;
z-index: 1000;
pointer-events: all;
} }
#anim-slider { #anim-slider {
width: 100%; width: 100%;

View file

@ -366,6 +366,10 @@
<div id="slider-max">&infin;</div> <div id="slider-max">&infin;</div>
</div> </div>
</div> </div>
<!-- slice/preview layer slider -->
<div id="top-slider" class="f-col grow">
<input id="anim-slider" type="range" min="0" max="1000" value="0"></input>
</div>
</div> </div>
<!-- allows right tray to slide/hide but still show speeds menu --> <!-- allows right tray to slide/hide but still show speeds menu -->
@ -594,11 +598,6 @@
</div> </div>
</div> </div>
<!-- slice/preview layer slider -->
<div id="top-slider" class="f-col grow">
<input id="anim-slider" type="range" min="0" max="1000" value="0"></input>
</div>
</div> </div>
</body> </body>
</html> </html>