From 7f8a9f6f756ecc8194cc53c59025c068da53435d Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sun, 8 May 2022 13:41:12 -0400 Subject: [PATCH] add feature macros --- release.md | 48 +++++++++++++++++++++---------------- src/kiri-mode/fdm/export.js | 10 +++++--- src/kiri/conf.js | 2 ++ src/kiri/init.js | 6 +++++ src/kiri/widget.js | 1 - web/kiri/lang/en.js | 4 +++- 6 files changed, 45 insertions(+), 26 deletions(-) diff --git a/release.md b/release.md index 14aa527f..25173427 100644 --- a/release.md +++ b/release.md @@ -2,34 +2,40 @@ Full docs @ https://docs.grid.space/projects/kiri-moto -# Release 3.4 (in progress) -## `C` complete, `I` in progress, `-` todo +# Release 3.5 (future) ## Kiri:moto -* `C` added batch processing to object adds/removes to speedup complex workspace restore -* `C` substitute some prusa slicer [variables] with KM {variables} on import -* `C` fix CAM output order for tool changes an spindle speed updates -* `C` add CAM pocket operation using surface selection -* `C` fix dogbones on outlines cut by tabs -* `C` skip pockets that resolve to null -* `C` 10x speedup for true shadow generation -* `-` refactor cnc to use new core slicer engine -* `-` improve vertex replacement and widget update matrix tracking +* ~ refactor vertex replacement and widget update matrix tracking +* ~ refactor cnc to use core slicer engine + + +# Release 3.4 (2022-05-14 est) + +## Kiri:moto + +* added batch processing to object adds/removes to speedup complex workspace restore +* substitute some prusa slicer [variables] with KM {variables} on import +* fix CAM output order for tool changes an spindle speed updates +* add CAM pocket operation using surface selection +* fix dog-bones on outlines cut by tabs +* skip pockets that resolve to null +* fix cnc contour path collision +* 10x speedup for true shadow generation ## Mesh:Tool (1.2.0) -* `C` auto-fog in wireframe view to aid close mesh inspections -* `C` significant speed-up for large surface selections -* `C` add boolean operations for subtract and intersect -* `C` multi-body identification and isolation -* `C` quick add primitives: cube, cylinder -* `C` control wireframe transparency -* `-` parameterize svg and image import -* `-` undo / redo for some operations -* `-` show camera focal point -* `-` better Z split snapping and split at defined Z index +* auto-fog in wireframe view to aid close mesh inspections +* significant speed-up for large surface selections +* add boolean operations for subtract and intersect +* multi-body identification and isolation +* quick add primitives: cube, cylinder +* control wireframe transparency +* ~ parameterize png/jpg image import +* ~ undo / redo for some operations +* ~ show camera focal point +* ~ better Z split snapping and split at defined Z index # Release 3.3 (2022-04-01) diff --git a/src/kiri-mode/fdm/export.js b/src/kiri-mode/fdm/export.js index cd930934..220975ad 100644 --- a/src/kiri-mode/fdm/export.js +++ b/src/kiri-mode/fdm/export.js @@ -19,7 +19,7 @@ FDM.export = function(print, online, ondone, ondebug) { const { danger, exportThumb } = device; const { bedWidth, bedDepth, bedRound, bedBelt, maxHeight } = device; const { extruders, fwRetract } = device; - const { gcodeFan, gcodeLayer, gcodeTrack, gcodePause } = device; + const { gcodeFan, gcodeLayer, gcodeTrack, gcodePause, gcodeFeature } = device; let layers = print.output, extras = device.extras || {}, @@ -622,8 +622,12 @@ FDM.export = function(print, online, ondone, ondebug) { // emit comment on output type chage if (last && out.type !== last.type) { - append(`; feature ${out.type}`); - lastType = out.type; + lastType = subst.feature = out.type; + if (gcodeFeature && gcodeFeature.length) { + appendAllSub(gcodeFeature); + } else { + append(`; feature ${out.type}`); + } } // look for extruder change, run scripts, recalc emit factor diff --git a/src/kiri/conf.js b/src/kiri/conf.js index b543eab9..76cffb75 100644 --- a/src/kiri/conf.js +++ b/src/kiri/conf.js @@ -125,6 +125,7 @@ function device_from_code(code,mode) { extrudeAbs: valueOf(set.extrude_abs, false), spindleMax: valueOf(set.spindle_max, 0), gcodeFan: valueOf(cmd.fan_power || code.fan_power, []), + gcodeFeature: valueOf(cmd.feature || code.feature, []), gcodeTrack: valueOf(cmd.progress || code.progress, []), gcodeLayer: valueOf(cmd.layer || code.layer, []), gcodePre: valueOf(code.pre, []), @@ -276,6 +277,7 @@ const conf = exports({ gcodePost: [], gcodeProc: "", gcodeFan: [], + gcodeFeature: [], gcodeTrack: [], gcodeLayer: [], gcodeFExt: "", diff --git a/src/kiri/init.js b/src/kiri/init.js index 23f1020e..f1bfceec 100644 --- a/src/kiri/init.js +++ b/src/kiri/init.js @@ -749,6 +749,7 @@ gapp.register("kiri.init", [], (root, exports) => { api.event.emit('device.set', devicename); let mode = api.mode.get(), + lmode = mode.toLowerCase(), current = settings(), local = isLocalDevice(devicename), dev = current.device = conf.device_from_code(code,mode), @@ -757,6 +758,9 @@ gapp.register("kiri.init", [], (root, exports) => { predev = current.filter[mode], // previous device selection chgdev = predev !== devicename; // device is changing + // fill missing device fields + conf.fill_cull_once(dev, conf.defaults[lmode].d); + // first time device use, add any print profiles and set to default if present if (code.profiles) { for (let profile of code.profiles) { @@ -829,6 +833,7 @@ gapp.register("kiri.init", [], (root, exports) => { ui.filamentSource, ui.deviceZMax, ui.gcodeFan, + ui.gcodeFeature, ui.gcodeTrack, ui.gcodeLayer, ui.extFilament, @@ -1720,6 +1725,7 @@ gapp.register("kiri.init", [], (root, exports) => { (ui.gcodeLayer = uc.newGCode(LANG.dv_layr_s, {title:LANG.dv_layr_l, modes:FDM, area:gcode})).button, (ui.gcodeTrack = uc.newGCode(LANG.dv_prog_s, {title:LANG.dv_prog_l, modes:FDM, area:gcode})).button, (ui.gcodeFan = uc.newGCode(LANG.dv_fanp_s, {title:LANG.dv_fanp_l, modes:FDM, area:gcode})).button, + (ui.gcodeFeature = uc.newGCode(LANG.dv_feat_s, {title:LANG.dv_feat_l, modes:FDM, area:gcode})).button, (ui.gcodeLaserOn = uc.newGCode(LANG.dv_lzon_s, {title:LANG.dv_lzon_l, modes:LASER, area:gcode})).button, (ui.gcodeLaserOff = uc.newGCode(LANG.dv_lzof_s, {title:LANG.dv_lzof_l, modes:LASER, area:gcode})).button, (ui.gcodeChange = uc.newGCode(LANG.dv_tool_s, {title:LANG.dv_tool_l, modes:CAM, area:gcode})).button, diff --git a/src/kiri/widget.js b/src/kiri/widget.js index 246e80dd..cdb1e874 100644 --- a/src/kiri/widget.js +++ b/src/kiri/widget.js @@ -321,7 +321,6 @@ class Widget { mesh.renderOrder = 1; geometry.computeVertexNormals(); geometry.addGroup(0, Infinity, 0); - // mesh.material[0].side = THREE.DoubleSide; mesh.castShadow = true; mesh.receiveShadow = true; mesh.widget = this; diff --git a/web/kiri/lang/en.js b/web/kiri/lang/en.js index c26df095..ee62476e 100644 --- a/web/kiri/lang/en.js +++ b/web/kiri/lang/en.js @@ -122,8 +122,10 @@ self.kiri.lang['en-us'] = { dv_fsrc_l: ["how filament is fed\ninto the extruder"], dv_retr_s: "firmware retract", dv_retr_l: ["device fimware supports G10/G11"], - dv_fanp_s: "fan power", + dv_fanp_s: "cooling", dv_fanp_l: "set cooling fan power", + dv_feat_s: "feature", + dv_feat_l: "inject code for specified features", dv_prog_s: "progress", dv_prog_l: "output on each % progress", dv_layr_s: "layer",