From 305066a69af92299fa7fa053db102f90845f1327 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Fri, 18 Jun 2021 15:03:00 -0400 Subject: [PATCH] add export debug event path --- src/kiri/client.js | 3 +++ src/kiri/worker.js | 2 ++ src/mode/fdm/client.js | 25 +++++++++++++++++++++++++ src/mode/fdm/export.js | 3 ++- 4 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/kiri/client.js b/src/kiri/client.js index 77690378..f2884313 100644 --- a/src/kiri/client.js +++ b/src/kiri/client.js @@ -228,6 +228,9 @@ KIRI.work = { if (reply.error) { ondone(null, reply.error); } + if (reply.debug) { + KIRI.api.event.emit("export.debug", reply.debug); + } }); }, diff --git a/src/kiri/worker.js b/src/kiri/worker.js index d703b245..e02f34b4 100644 --- a/src/kiri/worker.js +++ b/src/kiri/worker.js @@ -249,6 +249,8 @@ KIRI.worker = { }, function(done) { // SLA workaround output = done; + }, function(debug) { + send.data({debug}); }); const { bounds, time, lines, bytes, distance, settings } = current.print; diff --git a/src/mode/fdm/client.js b/src/mode/fdm/client.js index 1f510bf5..2af69fd1 100644 --- a/src/mode/fdm/client.js +++ b/src/mode/fdm/client.js @@ -481,8 +481,33 @@ return func.hoverup(); } }); + api.event.on("export.debug", msg => { + if (msg.arcQ && msg.arcQ.length > 5) { + if (xpdebug) { + xpdebug.destroy(); + xpdebug = undefined; + } + let poly = BASE.newPolygon().setOpen(); + for (let rec of msg.arcQ) { + poly.addObj(rec); + } + + let layers = new KIRI.Layers(); + let layer = layers.setLayer("arcq", { line: 0xff00ff, face: 0xff00ff, opacity: 1 }); + layer.addPoly(poly, {z:10, thin:true}); + + xpdebug = new KIRI.Stack(SPACE.platform.world, false); + xpdebug.addLayers(layers); + xpdebug.setVisible(0,Infinity); + xpdebug.show(); + + console.log(msg, poly); + } + }); } + let xpdebug; + function activeSupports() { const active = []; API.widgets.all().forEach(widget => { diff --git a/src/mode/fdm/export.js b/src/mode/fdm/export.js index f4785fea..38fd9198 100644 --- a/src/mode/fdm/export.js +++ b/src/mode/fdm/export.js @@ -13,7 +13,7 @@ /** * @returns {Array} gcode lines */ - FDM.export = function(print, online) { + FDM.export = function(print, online, ondone, ondebug) { let layers = print.output, settings = FDM.fixExtruders(print.settings), getRangeParameters = FDM.getRangeParameters, @@ -517,6 +517,7 @@ if (arcDist) { let rec = {e:out.emit, x, y, z, dist, emitPerMM, speedMMM}; arcQ.push(rec); + // ondebug({arcQ}); let deem = false; // do arcQ[0] and rec have differing emit values? let depm = false; // do arcQ[0] and rec have differing emit speeds? let desp = false; // do arcQ[0] and rec have differing move speeds?