diff --git a/src/kiri/client.js b/src/kiri/client.js index d843b5ef..a7427c1d 100644 --- a/src/kiri/client.js +++ b/src/kiri/client.js @@ -167,10 +167,14 @@ KIRI.work = { id: widget.id, settings: settings }, function(reply) { + callback(reply); if (reply.done || reply.error) { delete slicing[widget.id]; + // in belt mode, slicing modifies a widget and requires re-sync + if (settings.device.bedBelt) { + widget.modified = true; + } } - callback(reply); }); }, diff --git a/src/kiri/main.js b/src/kiri/main.js index 351020c7..f3485593 100644 --- a/src/kiri/main.js +++ b/src/kiri/main.js @@ -869,7 +869,6 @@ setOpacity(color.slicing_opacity); STACKS.clear(); - KIRI.client.clear(); KIRI.client.sync(); KIRI.client.rotate(settings); diff --git a/src/mode/cam/client.js b/src/mode/cam/client.js index 60afd537..84e24f68 100644 --- a/src/mode/cam/client.js +++ b/src/mode/cam/client.js @@ -534,7 +534,7 @@ KIRI.api.widgets.opacity(0.8); KIRI.api.widgets.for(widget => { if (ids.indexOf(widget.id) >= 0) { - unselectTraces(widget); + unselectTraces(widget, true); widget.trace_stack = null; } if (widget.trace_stack) { @@ -544,7 +544,6 @@ } let areas = (poppedRec.areas[widget.id] || []); let stack = new KIRI.Stack(widget.mesh); - // console.log({match: areas, for: widget.id}); widget.trace_stack = stack; widget.traces.forEach(poly => { let match = areas.filter(arr => poly.matches(arr)); @@ -1045,11 +1044,11 @@ } } - function unselectTraces(widget) { + function unselectTraces(widget, skip) { if (widget.trace_stack) { widget.trace_stack.meshes.forEach(mesh => { if (mesh.selected) { - func.traceToggle(mesh); + func.traceToggle(mesh, skip); } }); }