diff --git a/js/kiri-driver-fdm.js b/js/kiri-driver-fdm.js index f937d36a..30335cb9 100644 --- a/js/kiri-driver-fdm.js +++ b/js/kiri-driver-fdm.js @@ -289,6 +289,7 @@ var gs_kiri_fdm = exports; device = settings.device, process = settings.process, fan_power = device.gcodeFan, + trackLayers = device.gcodeLayer, trackProgress = device.gcodeTrack, time = 0, layer = 0, @@ -432,7 +433,13 @@ var gs_kiri_fdm = exports; while (layer < layers.length) { path = layers[layer]; - append("; --- layer "+layer+" ---"); + if (trackLayers) { + trackLayers.forEach(function(line) { + append(constReplace(line, {progress: progress, layer: layer, height: zpos})); + }); + } else { + append("; --- layer "+layer+" ---"); + } // second layer fan on if (layer === 1 && fan_power) { diff --git a/js/kiri.js b/js/kiri.js index 42acf33d..295cc26b 100644 --- a/js/kiri.js +++ b/js/kiri.js @@ -37,7 +37,8 @@ self.kiri.license = exports.LICENSE; gcodePre: 1, gcodePost: 1, gcodeFan: 1, - gcodeTrack: 1 + gcodeTrack: 1, + gcodeLayer: 1 }, // fields permitted in FDM:Process p:{ @@ -225,6 +226,7 @@ self.kiri.license = exports.LICENSE; gcodePost: [], // footer script gcodeFan: "", // FDM fan command gcodeTrack: "", // FDM progress command + gcodeLayer: "", // FDM layer output gcodeDwell: [], // CAM dwell script gcodeChange: [], // CAM tool change script gcodeFExt: "", // CAM file extension @@ -2106,7 +2108,8 @@ self.kiri.license = exports.LICENSE; setDevice: UC.newGroup("gcode", $('device')), setDeviceFan: UC.newInput("fan power", {title:"set cooling fan power", modes:FDM, size:15}), - setDeviceTrack: UC.newInput("progress", {title:"set progress meter (makerbot)", modes:FDM, size:15}), + setDeviceTrack: UC.newInput("progress", {title:"output on each % progress", modes:FDM, size:15}), + setDeviceLayer: UC.newInput("layer", {title:"output at each layer change", modes:FDM, size:14, height: 2}), setDeviceToken: UC.newBoolean("token spacing", null, {title:"gcode token spacing", modes:CAM}), setDeviceStrip: UC.newBoolean("strip comments", null, {title:"strip gcode comments", modes:CAM}), setDeviceFExt: UC.newInput("file ext", {title:"file name exension", modes:CAM, size:5}), @@ -2760,7 +2763,8 @@ self.kiri.license = exports.LICENSE; }, cmd: { fan_power: UI.setDeviceFan.value, - progress: UI.setDeviceTrack.value + progress: UI.setDeviceTrack.value, + layer: UI.setDeviceLayer.value.split('\n') }, pre: UI.setDevicePre.value.split('\n'), post: UI.setDevicePost.value.split('\n'), @@ -2796,6 +2800,7 @@ self.kiri.license = exports.LICENSE; spindleMax: valueOf(set.spindle_max, 0), gcodeFan: valueOf(cmd.fan_power, ''), gcodeTrack: valueOf(cmd.progress, ''), + gcodeLayer: valueOf(cmd.layer, []), gcodePre: valueOf(code.pre, []), gcodePost: valueOf(code.post, []), gcodeDwell: valueOf(code.dwell, []), @@ -2823,6 +2828,7 @@ self.kiri.license = exports.LICENSE; // FDM UI.setDeviceFan.value = dev.gcodeFan; UI.setDeviceTrack.value = dev.gcodeTrack; + UI.setDeviceLayer.value = dev.gcodeLayer.join('\n'); UI.setDeviceFilament.value = dev.filamentSize; UI.setDeviceNozzle.value = dev.nozzleSize; // CAM @@ -2846,6 +2852,7 @@ self.kiri.license = exports.LICENSE; UI.setDeviceOriginTop, UI.setDeviceFan, UI.setDeviceTrack, + UI.setDeviceLayer, UI.setDeviceFilament, UI.setDeviceNozzle, UI.setDeviceDwell, diff --git a/js/license.js b/js/license.js index 33e1d056..e24aca8c 100644 --- a/js/license.js +++ b/js/license.js @@ -1,7 +1,7 @@ var exports = { COPYRIGHT:"Copyright (C) 2014-2017 Stewart Allen - All Rights Reserved", LICENSE:"Unauthorized copying, modification and re-distribution are strictly prohibited without prior written consent.", - VERSION:"1.0.76" + VERSION:"1.0.77" }; if (!module) var module = {}; module.exports = exports; diff --git a/web/kiri/filter/FDM/Raise3D.N2 b/web/kiri/filter/FDM/Raise3D.N2 index 75940d51..b882d2f0 100644 --- a/web/kiri/filter/FDM/Raise3D.N2 +++ b/web/kiri/filter/FDM/Raise3D.N2 @@ -36,7 +36,11 @@ ";Material#2 Used: 0.0" ], "cmd":{ - "fan_power": "M106 S{fan_speed}" + "fan_power": "M106 S{fan_speed}", + "layer": [ + ";LAYER:{layer}", + ";HEIGHT:{height}" + ] }, "settings":{ "origin_center": false,