From 4bad549cc1bb878b97bf772582adf9e0ad4e6fa2 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Mon, 27 Apr 2020 13:39:05 -0400 Subject: [PATCH] improve print time estimation. fix point offset when 0 --- js/geo-point.js | 10 +++++++--- js/kiri-driver-sla.js | 28 ++++++++++++++++++++++------ notes.md | 2 ++ 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/js/geo-point.js b/js/geo-point.js index 62e68333..c4f319c3 100644 --- a/js/geo-point.js +++ b/js/geo-point.js @@ -290,12 +290,16 @@ var gs_base_point = exports; * @param dist */ PRO.offsetPointTo = function(p2, dist) { - var p1 = this, + let p1 = this, dx = p2.x - p1.x, - dy = p2.y - p1.y, - ls = dist / Math.sqrt(dx * dx + dy * dy), + dy = p2.y - p1.y; + + if (dx === 0 && dy === 0) return this; + + let ls = dist / Math.sqrt(dx * dx + dy * dy), ox = dx * ls, oy = dy * ls; + return newPoint(p1.x + ox, p1.y + oy, p2.z, KEYS.NONE); }; diff --git a/js/kiri-driver-sla.js b/js/kiri-driver-sla.js index 561608f3..c4b73211 100644 --- a/js/kiri-driver-sla.js +++ b/js/kiri-driver-sla.js @@ -466,9 +466,7 @@ let gs_kiri_sla = exports; safe.forEach(p => { x += p.x; y += p.y }); x /= safe.length; y /= safe.length; - if (x !== point.x || y !== point.y) { - nextpoint = point.offsetPointTo({x, y, z:slice.z}, inc); - } + nextpoint = point.offsetPointTo({x, y, z:slice.z}, inc); } // once max'ed out, can only shrink in size if (track.max) { @@ -791,14 +789,32 @@ let gs_kiri_sla = exports; process = printset.process, device = printset.device, print_sec = (process.slaBaseLayers * process.slaBaseOn) + - (lines.length - process.slaBaseLayers) * process.slaLayerOn, - print_min = Math.floor(print_sec/60), + (lines.length - process.slaBaseLayers) * process.slaLayerOn; + + // add peel lift/drop times to total print time + for (let i=0; i X + # CAM * `B` fails in pancaking (clone) when there are no sliced layers (like z bottom too high)