From 841082c4850ce635bc445977b534b84eba5115d1 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Mon, 29 Dec 2025 22:21:03 -0500 Subject: [PATCH] fix frame api --- src/kiri/app/frame.js | 3 +++ src/kiri/app/init/input.js | 1 + src/kiri/mode/cam/prepare.js | 5 ++++- src/kiri/mode/cam/topo3.js | 2 +- src/kiri/run/engine.js | 4 +++- src/kiri/run/frame.js | 2 +- 6 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/kiri/app/frame.js b/src/kiri/app/frame.js index ca814ae3..c1232b1a 100644 --- a/src/kiri/app/frame.js +++ b/src/kiri/app/frame.js @@ -115,6 +115,9 @@ window.addEventListener('message', msg => { let bin = data.parse; let widget; switch ((data.type || 'stl').toLowerCase()) { + case 'gcode': + api.function.parse(bin, 'gcode'); + break; case 'stl': if (!bin.buffer) bin = new Float32Array(bin).buffer; new load.STL().parse(bin, vertices => { diff --git a/src/kiri/app/init/input.js b/src/kiri/app/init/input.js index bb9abe08..fecbf8e2 100644 --- a/src/kiri/app/init/input.js +++ b/src/kiri/app/init/input.js @@ -28,6 +28,7 @@ import { space } from '../../../moto/space.js'; import { LAST, MODES, SEED, VIEWS } from '../../core/consts.js'; import STACKS from '../stacks.js'; +import '../frame.js'; let { SETUP } = api.const, { CAM, SLA, FDM, LASER, DRAG, WJET, WEDM } = MODES, diff --git a/src/kiri/mode/cam/prepare.js b/src/kiri/mode/cam/prepare.js index e1ecbac2..e22f009f 100644 --- a/src/kiri/mode/cam/prepare.js +++ b/src/kiri/mode/cam/prepare.js @@ -870,10 +870,13 @@ export async function prepare_one(widget, settings, print, firstPoint, update) { // we're coming from another widget. offset compensated below printPoint = firstPoint; // console.log('coming from another widget', { printPoint }); - } else { + } else if (center) { // we're the first widget output. offset is center printPoint = origin.clone().move({ x: center.x, y: center.y }); // console.log('first widget output', { printPoint }); + } else { + console.log({ missing_center_using_origin: origin }); + printPoint = origin.clone(); } let ops = { diff --git a/src/kiri/mode/cam/topo3.js b/src/kiri/mode/cam/topo3.js index 5a34b1eb..c53aa0eb 100644 --- a/src/kiri/mode/cam/topo3.js +++ b/src/kiri/mode/cam/topo3.js @@ -241,7 +241,7 @@ export class Topo { } } // raise output points when inside tab boundaries - if (!inside && tabsOn && clipTab.length) + if (tabsOn && clipTab.length) for (let poly of lines) { for (let p of poly.points) { for (let clip of clipTab) { diff --git a/src/kiri/run/engine.js b/src/kiri/run/engine.js index deb29d57..c8d995cd 100644 --- a/src/kiri/run/engine.js +++ b/src/kiri/run/engine.js @@ -123,6 +123,7 @@ class Engine { process.camStockX = stock.x; process.camStockY = stock.y; process.camStockZ = stock.z; + if (this.origin) settings.stock.center = origin; return this; } @@ -131,7 +132,8 @@ class Engine { } setOrigin(x, y, z) { - this.settings.origin = { x, y, z }; + this.origin = { x, y, z }; + if (this.settings.stock) this.settings.stock.center = { x, y, z }; return this; } diff --git a/src/kiri/run/frame.js b/src/kiri/run/frame.js index b363f2c1..61fdefeb 100644 --- a/src/kiri/run/frame.js +++ b/src/kiri/run/frame.js @@ -47,7 +47,7 @@ window.addEventListener('message', onMessage); }, - send: send, + send, load: (load) => { send({ load }) },