checkpoint cut tools drivers

This commit is contained in:
Stewart Allen 2024-06-11 17:35:02 -07:00
commit c8bfa6a789
5 changed files with 39 additions and 15 deletions

View file

@ -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 });
});

View file

@ -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;

View file

@ -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);
}
});

View file

@ -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 });
});

View file

@ -932,7 +932,7 @@ th, tr, td, label {
border-radius: 3px;
position: absolute;
top: 0;
right: 0;
right: 100%;
bottom: 0;
}
.widopt button.disabled {