From c8bfa6a789564e92938467ea1d56976013af773e Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Tue, 11 Jun 2024 17:35:02 -0700 Subject: [PATCH] checkpoint cut tools drivers --- src/kiri-mode/drag/driver.js | 5 ++++- src/kiri-mode/laser/driver.js | 22 ++++++++++++---------- src/kiri-mode/wedm/driver.js | 21 +++++++++++++++++++-- src/kiri-mode/wjet/driver.js | 4 +++- web/kiri/index.css | 2 +- 5 files changed, 39 insertions(+), 15 deletions(-) diff --git a/src/kiri-mode/drag/driver.js b/src/kiri-mode/drag/driver.js index 98613361..50b6953e 100644 --- a/src/kiri-mode/drag/driver.js +++ b/src/kiri-mode/drag/driver.js @@ -5,7 +5,10 @@ // dep: kiri-mode.laser.driver gapp.register("kiri-mode.drag.driver", [], (root, exports) => { -root.kiri.driver.DRAG = root.kiri.driver.LASER; +const DRIVERS = root.kiri.driver; +const { LASER } = DRIVERS; +const { TYPE } = LASER; +DRIVERS.DRAG = Object.assign({}, LASER, { name: "DragKnife", type: TYPE.DRAG }); }); diff --git a/src/kiri-mode/laser/driver.js b/src/kiri-mode/laser/driver.js index b07c02bd..2bfd51ca 100644 --- a/src/kiri-mode/laser/driver.js +++ b/src/kiri-mode/laser/driver.js @@ -14,7 +14,16 @@ const { driver, newSlice } = kiri; const { polygons, newPoint } = base; const POLY = polygons; -const DRIVER = driver.LASER = { +const TYPE = { + LASER: 0, + DRAG: 1, + WJET: 2, + WEDM: 3 +}; + +driver.LASER = { + TYPE, + type: TYPE.LASER, name: 'Laser', init, slice, @@ -22,17 +31,13 @@ const DRIVER = driver.LASER = { export: exportLaser, exportGCode, exportSVG, - exportDXF + exportDXF, }; -const state = {}; - function init(kiri, api, current) { api.event.on("settings.saved", settings => { let ui = kiri.api.ui; }); - state.driver = current; - state.isWEDM = (current === driver.WEDM); } /** @@ -44,8 +49,6 @@ function init(kiri, api, current) { * @param {Function} ondone (called when complete with an array of Slice objects) */ function slice(settings, widget, onupdate, ondone) { - let { isWEDM } = state; - let proc = settings.process; let offset = proc.ctSliceKerf || 0; let color = settings.controller.dark ? 0xbbbbbb : 0; @@ -201,9 +204,8 @@ async function prepare(widgets, settings, update) { // convert arc into line segments function arc(center, s1, s2, out) { let a1 = s1.angle; - let a2 = s2.angle; - let diff = s1.angleDiff(s2,true); let step = 5; + let diff = s1.angleDiff(s2, true); let ticks = Math.abs(Math.floor(diff / step)); let dir = Math.sign(diff); let off = (diff % step) / 2; diff --git a/src/kiri-mode/wedm/driver.js b/src/kiri-mode/wedm/driver.js index f5472973..b1c25811 100644 --- a/src/kiri-mode/wedm/driver.js +++ b/src/kiri-mode/wedm/driver.js @@ -8,7 +8,13 @@ gapp.register("kiri-mode.wedm.driver", [], (root, exports) => { const { kiri, moto } = root; const DRIVERS = kiri.driver; const { CAM, LASER } = DRIVERS; -const WEDM = DRIVERS.WEDM = Object.assign({}, LASER, { name: "WireEDM" }); +const { TYPE } = LASER; +const WEDM = DRIVERS.WEDM = Object.assign({}, LASER, { + name: "WireEDM", + type: TYPE.WEDM, + init, + prepare +}); const DEG2RAD = Math.PI / 180; const state = { @@ -66,7 +72,7 @@ function faceDone() { state.selecting = false; } -WEDM.init = (kiri, api, driver) => { +function init(kiri, api, driver) { LASER.init(kiri, api, driver); state.api = api; @@ -102,6 +108,17 @@ WEDM.init = (kiri, api, driver) => { }; +async function prepare(widgets, settings, update) { + // let device = settings.device, + // process = settings.process, + // print = self.worker.print = kiri.newPrint(settings, widgets), + // output = print.output = []; + + // filter ignored widgets + widgets = widgets.filter(w => !w.track.ignore && !w.meta.disabled); + + LASER.prepare(widgets, settings, update); +} }); diff --git a/src/kiri-mode/wjet/driver.js b/src/kiri-mode/wjet/driver.js index 67592224..8e4bf4b3 100644 --- a/src/kiri-mode/wjet/driver.js +++ b/src/kiri-mode/wjet/driver.js @@ -6,7 +6,9 @@ gapp.register("kiri-mode.wjet.driver", [], (root, exports) => { const DRIVERS = root.kiri.driver; -DRIVERS.WJET = Object.assign({}, DRIVERS.LASER, { name: 'WaterJet' }); +const { LASER } = DRIVERS; +const { TYPE } = LASER; +DRIVERS.WJET = Object.assign({}, LASER, { name: 'WaterJet', type: TYPE.WJET }); }); diff --git a/web/kiri/index.css b/web/kiri/index.css index c60ace79..6cef5f89 100644 --- a/web/kiri/index.css +++ b/web/kiri/index.css @@ -932,7 +932,7 @@ th, tr, td, label { border-radius: 3px; position: absolute; top: 0; - right: 0; + right: 100%; bottom: 0; } .widopt button.disabled {