From 9e86971ece3b01ea116c472c5a9e291a670a0c56 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Tue, 10 Jan 2023 23:13:42 -0500 Subject: [PATCH] fix first XY / Z moves to take into account Z over or under current position --- src/kiri-mode/cam/export.js | 54 +++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/src/kiri-mode/cam/export.js b/src/kiri-mode/cam/export.js index 45a62c31..5bdda797 100644 --- a/src/kiri-mode/cam/export.js +++ b/src/kiri-mode/cam/export.js @@ -211,29 +211,37 @@ CAM.export = function(print, online) { if (points === 0) { pos.x = pos.y = pos.z = 0; points++; - if (newpos.z > pos.z) - moveTo({ - // speed: Infinity, - tool: out.tool, - point: { x: newpos.x, y: newpos.y, z: newpos.z, a: newpos.a } - }, { - dx: 0, dy: 0, dz: 1, time: 0 - }); - moveTo({ - // speed: Infinity, - tool: out.tool, - point: { x: newpos.x, y: newpos.y, z: pos.z, a: pos.a } - }, { - dx: 1, dy: 1, dz: 0, time: 0 - }); - if (newpos.z < pos.z) - moveTo({ - // speed: Infinity, - tool: out.tool, - point: { x: newpos.x, y: newpos.y, z: newpos.z, a: newpos.a } - }, { - dx: 0, dy: 0, dz: 1, time: 0 - }); + if (newpos.z > pos.z) { + moveTo({ + // speed: Infinity, + tool: out.tool, + point: { x: pos.x, y: pos.y, z: newpos.z, a: newpos.a } + }, { + dx: 0, dy: 0, dz: 1, time: 0 + }); + moveTo({ + // speed: Infinity, + tool: out.tool, + point: { x: newpos.x, y: newpos.y, z: newpos.z, a: pos.a } + }, { + dx: 1, dy: 1, dz: 0, time: 0 + }); + } else if (newpos.z <= pos.z) { + moveTo({ + // speed: Infinity, + tool: out.tool, + point: { x: newpos.x, y: newpos.y, z: pos.z, a: pos.a } + }, { + dx: 1, dy: 1, dz: 0, time: 0 + }); + moveTo({ + // speed: Infinity, + tool: out.tool, + point: { x: newpos.x, y: newpos.y, z: newpos.z, a: newpos.a } + }, { + dx: 0, dy: 0, dz: 1, time: 0 + }); + } points--; return; }