diff --git a/src/kiri/app/api.js b/src/kiri/app/api.js index 9c687c4d..fc7c3b46 100644 --- a/src/kiri/app/api.js +++ b/src/kiri/app/api.js @@ -163,6 +163,7 @@ export const api = { alerts(clr) { alerts.update(clr) }, bind(t,m,o) { return EVENT.bind(t,m,o) }, emit(t,m,o) { return EVENT.publish(t,m,o) }, + emitDefer(t,m,d) { setTimeout(() => EVENT.publish(t,m), d ?? 100) }, import() { api.ui.load.click() }, listeners(topic) { return EVENT.targets(topic) }, on(t,l) { EVENT.on(t,l); return api.event }, diff --git a/src/kiri/app/init/input.js b/src/kiri/app/init/input.js index 040e2dce..fb131ae6 100644 --- a/src/kiri/app/init/input.js +++ b/src/kiri/app/init/input.js @@ -87,9 +87,6 @@ function checkSeed(then) { return false; } -// upon restore, seed presets -api.event.emit('preset', api.conf.dbo()); - // api.event.on("set.threaded", bool => setThreaded(bool)); export function onBooleanClick(el) { diff --git a/src/kiri/app/init/sync.js b/src/kiri/app/init/sync.js index c64e452c..d4eeb967 100644 --- a/src/kiri/app/init/sync.js +++ b/src/kiri/app/init/sync.js @@ -143,6 +143,9 @@ export async function init_sync() { history.replaceState({}, '', wlp.substring(0,kio + 6)); } + // upon restore, seed presets + api.event.emitDefer('preset', api.conf.get()); + // lift curtain $('curtain').style.display = 'none'; } diff --git a/src/kiri/mode/cam/work/prepare.js b/src/kiri/mode/cam/work/prepare.js index 64e2a22d..35225178 100644 --- a/src/kiri/mode/cam/work/prepare.js +++ b/src/kiri/mode/cam/work/prepare.js @@ -826,7 +826,9 @@ export async function prepare_one(widget, settings, print, firstPoint, update) { // calculate ease down for poly path output if (startPoint.z > point0.z) { - let easeFeed = plungeRate + ((feedRate - plungeRate) * easeThrottle); + let easeMax = feedRate * camFullEngage; + let easeLerp = plungeRate + ((feedRate - plungeRate) * easeThrottle); + let easeFeed = Math.min(easeLerp, easeMax); let zat = startPoint.z; let len = points.length; let lp, lz = Infinity;