add filament re-engage visualization

This commit is contained in:
Stewart Allen 2020-11-21 15:58:25 -05:00
commit 4fa91e3146
2 changed files with 16 additions and 5 deletions

View file

@ -23,24 +23,21 @@
* `F` 2D image import
* `F` detect and report slow framerates
* `F` implement an in-app bug reporting system. add workspace to export option.
* `F` implement an in-app bug reporting system
* `P` improve decimation speed by avoiding in/out of Point?
* `P` duplicate objects should share same slice data unless rotated or scaled
* `P` worker state cache cleanup and organization
* `P` client/worker interface normalization and cleanup
* `C` improve path line caps
# FDM
* `B` dwell / extrude engage reversed?
* `B` fix adaptive slicing with multi-extruder
* `B` fix supports with grouped parts
* `B` sparse infill should follow polys it intersects
* `B` sparse infill should follow polys between intersect points
* `B` multi-extruder rendering of raft fails to offset the rest of the print
* `B` multi-extruder purge blocks fail to generate properly for rafts
* `F` control for size of purge block (with 0=disabled)
* `F` add separate fill speed control
* `F` control shell order (in/out or out/in)
* `F` manual support addition / control
* `F` control layer start position
* `F` polishing and other non-planar work

View file

@ -444,6 +444,7 @@
let lastEnd = null;
let lastOut = null;
let current = null;
let retracted = false;
function color(point) {
return FDM.rateToColor(point.speed, maxspd);
@ -454,6 +455,7 @@
const moves = [];
const heads = [];
const retracts = [];
const engages = [];
const output = new KIRI.Render();
layers.push(output);
@ -471,8 +473,13 @@
let emits = 0;
level.forEach((out,oi) => {
if (retracted && out.emit) {
retracted = false;
engages.push(lastOut.point);
}
if (out.retract) {
retracts.push(out.point);
retracted = true;
}
if (!out.point) {
// in cam mode, these are drilling or dwell ops
@ -526,6 +533,13 @@
return newPolygon().centerCircle(point, 0.2, 16).setZ(point.z + 0.01);
}), { outline: true });
}
if (engages.length) {
output
.setLayer('engage', { line: 0x005500, face: 0x00ff00, opacity: 0.5 }, true)
.addAreas(engages.map(point => {
return newPolygon().centerCircle(point, 0.2, 16).setZ(point.z + 0.01);
}), { outline: true });
}
if (heads.length) {
output
.setLayer('arrows', { face: moveColor, line: 0x555555, opacity: 0.5 }, true)