diff --git a/app.js b/app.js index 201251db..24fa5c00 100644 --- a/app.js +++ b/app.js @@ -606,6 +606,7 @@ function generateDevices() { map[device] = JSON.parse(fs.readFileSync(`${root}/${type}/${device}`)); }); }); + // console.log({ devs }); synth.devices = `self.devices = ${JSON.stringify(devs)};`; } diff --git a/src/kiri-dev/wedm/Any.Generic.WireEDM b/src/kiri-dev/wedm/Any.Generic.WireEDM new file mode 100644 index 00000000..5ede1faa --- /dev/null +++ b/src/kiri-dev/wedm/Any.Generic.WireEDM @@ -0,0 +1,21 @@ +{ + "file-ext": "gcode", + "token-space": " ", + "pre":[ + "G21 ; set units to MM (required)", + "G90 ; absolute position mode (required)" + ], + "post":[ + "M30 ; program end" + ], + "laser-on":[ + "M106 S{power}" + ], + "laser-off":[ + "M107" + ], + "settings": { + "bed_width": 300, + "bed_depth": 300 + } +} diff --git a/src/kiri-dev/wjet/Any.Generic.WaterJet b/src/kiri-dev/wjet/Any.Generic.WaterJet new file mode 100644 index 00000000..5ede1faa --- /dev/null +++ b/src/kiri-dev/wjet/Any.Generic.WaterJet @@ -0,0 +1,21 @@ +{ + "file-ext": "gcode", + "token-space": " ", + "pre":[ + "G21 ; set units to MM (required)", + "G90 ; absolute position mode (required)" + ], + "post":[ + "M30 ; program end" + ], + "laser-on":[ + "M106 S{power}" + ], + "laser-off":[ + "M107" + ], + "settings": { + "bed_width": 300, + "bed_depth": 300 + } +} diff --git a/src/kiri-dev/wjet/HydroBLADE b/src/kiri-dev/wjet/HydroBLADE new file mode 100644 index 00000000..5ede1faa --- /dev/null +++ b/src/kiri-dev/wjet/HydroBLADE @@ -0,0 +1,21 @@ +{ + "file-ext": "gcode", + "token-space": " ", + "pre":[ + "G21 ; set units to MM (required)", + "G90 ; absolute position mode (required)" + ], + "post":[ + "M30 ; program end" + ], + "laser-on":[ + "M106 S{power}" + ], + "laser-off":[ + "M107" + ], + "settings": { + "bed_width": 300, + "bed_depth": 300 + } +} diff --git a/src/kiri-mode/drag/driver.js b/src/kiri-mode/drag/driver.js index 8a32fb16..98613361 100644 --- a/src/kiri-mode/drag/driver.js +++ b/src/kiri-mode/drag/driver.js @@ -2,12 +2,7 @@ "use strict"; -// dep: geo.polygons -// dep: geo.point -// dep: kiri.slice // dep: kiri-mode.laser.driver -// use: kiri.pack -// use: kiri.render gapp.register("kiri-mode.drag.driver", [], (root, exports) => { root.kiri.driver.DRAG = root.kiri.driver.LASER; diff --git a/src/kiri-mode/wedm/driver.js b/src/kiri-mode/wedm/driver.js new file mode 100644 index 00000000..4202b49d --- /dev/null +++ b/src/kiri-mode/wedm/driver.js @@ -0,0 +1,11 @@ +/** Copyright Stewart Allen -- All Rights Reserved */ + +"use strict"; + +// dep: kiri-mode.laser.driver +gapp.register("kiri-mode.wedm.driver", [], (root, exports) => { + +root.kiri.driver.WEDM = root.kiri.driver.LASER; + +}); + diff --git a/src/kiri-mode/wjet/driver.js b/src/kiri-mode/wjet/driver.js new file mode 100644 index 00000000..271e9cb2 --- /dev/null +++ b/src/kiri-mode/wjet/driver.js @@ -0,0 +1,11 @@ +/** Copyright Stewart Allen -- All Rights Reserved */ + +"use strict"; + +// dep: kiri-mode.laser.driver +gapp.register("kiri-mode.wjet.driver", [], (root, exports) => { + +root.kiri.driver.WJET = root.kiri.driver.LASER; + +}); + diff --git a/src/kiri-run/worker.js b/src/kiri-run/worker.js index 671d3a1b..576d2e0d 100644 --- a/src/kiri-run/worker.js +++ b/src/kiri-run/worker.js @@ -28,6 +28,8 @@ // use: kiri-mode.fdm.export // use: kiri-mode.laser.driver // use: kiri-mode.drag.driver +// use: kiri-mode.wjet.driver +// use: kiri-mode.wedm.driver gapp.register("kiri-run.worker", [], (root, exports) => { const { base, kiri, moto } = root; diff --git a/src/kiri/conf.js b/src/kiri/conf.js index 7bdd9211..b55b571d 100644 --- a/src/kiri/conf.js +++ b/src/kiri/conf.js @@ -649,6 +649,46 @@ const conf = exports({ }, drag: { // device defaults Drag:Device + d:{ + new: true, + mode: "", + deviceName: "", + imageURL: "", + internal: 0, + bedWidth: 300, + bedDepth: 200, + bedHeight: 2.5, + maxHeight: 100, + gcodePre: [], + gcodePost: [], + gcodeFExt: "", + gcodeSpace: true, + }, + // process defaults Drag:Process + p:{ + processName: "default", + laserOffset: 0.1, + laserSliceHeight: 1, + laserSliceHeightMin: 0, + laserSliceSingle: true, + outputTileSpacing: 1, + outputLaserPower: 100, + outputLaserSpeed: 1000, + outputLaserGroup: true, + outputLaserZColor: false, + outputLaserLayer: false, + outputLaserStack: false, + outputLaserMerged: false, + outputOriginCenter: true, + outputInvertX: false, + outputInvertY: false, + outputKnifeDepth: 1, + outputKnifePasses: 1, + outputKnifeTip: 2 + }, + }, + wjet: { + // device defaults WaterJet:Device d:{ new: true, mode: "", @@ -666,7 +706,49 @@ const conf = exports({ gcodeLaserOn: ["M106 S{power}"], gcodeLaserOff: ["M107"] }, - // process defaults Drag:Process + // process defaults WaterJet:Process + p:{ + processName: "default", + laserOffset: 0.1, + laserSliceHeight: 1, + laserSliceHeightMin: 0, + laserSliceSingle: true, + outputTileSpacing: 1, + outputLaserPower: 100, + outputLaserSpeed: 1000, + outputLaserGroup: true, + outputLaserZColor: false, + outputLaserLayer: false, + outputLaserStack: false, + outputLaserMerged: false, + outputOriginCenter: true, + outputInvertX: false, + outputInvertY: false, + outputKnifeDepth: 1, + outputKnifePasses: 1, + outputKnifeTip: 2 + }, + }, + wedm: { + // device defaults WireEDM:Device + d:{ + new: true, + mode: "", + deviceName: "", + imageURL: "", + internal: 0, + bedWidth: 300, + bedDepth: 200, + bedHeight: 2.5, + maxHeight: 100, + gcodePre: [], + gcodePost: [], + gcodeFExt: "", + gcodeSpace: true, + gcodeLaserOn: ["M106 S{power}"], + gcodeLaserOff: ["M107"] + }, + // process defaults WireEDM:Process p:{ processName: "default", laserOffset: 0.1, @@ -772,24 +854,30 @@ const conf = exports({ FDM: "default", SLA: "default", CAM: "default", - LASER: "default", DRAG: "default", + WJET: "default", + WEDM: "default", + LASER: "default", }, // stored processes by mode sproc:{ FDM: {}, SLA: {}, CAM: {}, - LASER: {}, DRAG: {}, + WJET: {}, + WEDM: {}, + LASER: {}, }, // current device name by mode filter:{ FDM: "Any.Generic.Marlin", SLA: "Anycubic.Photon", CAM: "Any.Generic.Grbl", + DRAG: "Any.Generic.DragKnife", + WJET: "HydroBLADE", + WEDM: "Any.Generic.WireEDM", LASER: "Any.Generic.Laser", - DRAG: "Any.Generic.Laser", }, // stored device by mode cdev: { @@ -863,9 +951,15 @@ settings.sproc.FDM.default = clone(settings.process); settings.sproc.SLA.default = clone(settings.process); settings.sproc.CAM.default = clone(settings.process); settings.sproc.LASER.default = clone(settings.process); +settings.sproc.DRAG.default = clone(settings.process); +settings.sproc.WJET.default = clone(settings.process); +settings.sproc.WEDM.default = clone(settings.process); settings.cdev.FDM = clone(settings.device); settings.cdev.SLA = clone(settings.device); settings.cdev.CAM = clone(settings.device); settings.cdev.LASER = clone(settings.device); +settings.cdev.DRAG = clone(settings.device); +settings.cdev.WJET = clone(settings.device); +settings.cdev.WEDM = clone(settings.device); }); diff --git a/src/kiri/export.js b/src/kiri/export.js index 5d53fbf3..1a7da641 100644 --- a/src/kiri/export.js +++ b/src/kiri/export.js @@ -29,6 +29,8 @@ function exportFile(options) { .map(v => v.split('.')[0]); api.event.emit('export', mode); switch (mode) { + case 'WEDM': + case 'WJET': case 'DRAG': case 'LASER': return callExportLaser(options, names); case 'FDM': return callExport(options, mode, names); diff --git a/src/kiri/function.js b/src/kiri/function.js index e6fe692b..636feedb 100644 --- a/src/kiri/function.js +++ b/src/kiri/function.js @@ -11,6 +11,8 @@ // dep: kiri-mode.sla.client // dep: kiri-mode.laser.driver // dep: kiri-mode.drag.driver +// dep: kiri-mode.wjet.driver +// dep: kiri-mode.wedm.driver gapp.register("kiri.function", [], (root, exports) => { const { kiri } = root; diff --git a/src/kiri/init.js b/src/kiri/init.js index 450807ad..3aab08d3 100644 --- a/src/kiri/init.js +++ b/src/kiri/init.js @@ -2643,6 +2643,8 @@ gapp.register("kiri.init", [], (root, exports) => { $('mode-sla').onclick = () => api.mode.set('SLA'); $('mode-laser').onclick = () => api.mode.set('LASER'); $('mode-drag').onclick = () => api.mode.set('DRAG'); + $('mode-wjet').onclick = () => api.mode.set('WJET'); + $('mode-wedm').onclick = () => api.mode.set('WEDM'); $('set-device').onclick = (ev) => { ev.stopPropagation(); showDevices() }; $('set-profs').onclick = (ev) => { ev.stopPropagation(); api.conf.show() }; $('set-tools').onclick = (ev) => { ev.stopPropagation(); showTools() }; diff --git a/src/kiri/main.js b/src/kiri/main.js index ba0e7b4c..15e503cd 100644 --- a/src/kiri/main.js +++ b/src/kiri/main.js @@ -906,7 +906,7 @@ gapp.register("kiri.main", [], (root, exports) => { // gcode edit area for any non-SLA mode api.uc.setVisible($('gcode-edit'), mode !== 'SLA'); // highlight selected mode menu item - ["FDM","CAM","SLA","LASER","DRAG"].forEach(sm => { + ["FDM","CAM","SLA","LASER","DRAG","WJET","WEDM"].forEach(sm => { const cl = $(`mode-${sm.toLowerCase()}`).classList; if (sm === mode) { cl.add('selected'); diff --git a/web/kiri/index.html b/web/kiri/index.html index a6673f09..7d2426c0 100644 --- a/web/kiri/index.html +++ b/web/kiri/index.html @@ -164,14 +164,14 @@ - +