From 5981825eba9626a44e97b0b4bbab72d01e0ddaec Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Thu, 1 Oct 2020 10:22:29 -0400 Subject: [PATCH] adapt output colors to a range from 0 to max speed --- src/kiri/print.js | 1 - src/mode/fdm/driver.js | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/kiri/print.js b/src/kiri/print.js index f41bd89e..613dbdcc 100644 --- a/src/kiri/print.js +++ b/src/kiri/print.js @@ -386,7 +386,6 @@ q = hsv.v * (1.0 - (hsv.s * rem)), t = hsv.v * (1.0 - (hsv.s * (1.0 - rem))), out = {}; - switch (seg) { case 0: out.r = hsv.v; diff --git a/src/mode/fdm/driver.js b/src/mode/fdm/driver.js index d6ee9dcd..57af0bd0 100644 --- a/src/mode/fdm/driver.js +++ b/src/mode/fdm/driver.js @@ -1285,7 +1285,16 @@ moves, moving = true, opt = options || {}, tools = opt.tools || [], - showmoves = !opt.nomoves; + showmoves = !opt.nomoves, + maxspeed = 0; + // find max speed + scope.output.forEach(function(layerout) { + layerout.forEach(function(out, index) { + if (out.emit && out.speed) { + maxspeed = Math.max(maxspeed, out.speed); + } + }); + }); // render layered output scope.lines = 0; scope.output.forEach(function(layerout) { @@ -1302,7 +1311,7 @@ cprint = base.newPolygon().setOpen(true).append(last); print.push({ poly: cprint, - speed: out.speed || 4000, + speed: out.speed || maxspeed || 4000, tool:tools[out.tool] }); } @@ -1345,8 +1354,8 @@ print.forEach(segment => { let {poly, speed, tool} = segment; let off = tool ? (tool.extNozzle || 0.4) / 2 : 0.2; - let sint = Math.min(9000, parseInt(speed)); - let rgb = scope.hsv2rgb({h:sint/9000, s:1, v:1}); + let sint = Math.min(maxspeed, parseInt(speed)); + let rgb = scope.hsv2rgb({h:sint/maxspeed, s:1, v:1}); let color = ((rgb.r * 0xff) << 16) | ((rgb.g * 0xff) << 8) | ((rgb.b * 0xff) << 0);