From 3b7f1e298e3e2c0f290d04c0d268dca327337de5 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sat, 1 Oct 2022 11:38:57 -0400 Subject: [PATCH] temporary workaround for lack of 'rest' machining state. addresses issue #221 --- src/kiri-mode/cam/prepare.js | 4 ++++ src/kiri/conf.js | 1 + src/kiri/init.js | 1 + web/kiri/lang/en.js | 2 ++ 4 files changed, 8 insertions(+) diff --git a/src/kiri-mode/cam/prepare.js b/src/kiri-mode/cam/prepare.js index b081e318..4a88ad2d 100644 --- a/src/kiri-mode/cam/prepare.js +++ b/src/kiri-mode/cam/prepare.js @@ -71,6 +71,7 @@ function prepEach(widget, settings, print, firstPoint, update) { startCenter = process.outputOriginCenter, alignTop = settings.controller.alignTop, zclear = (process.camZClearance || 1), + zmax_force = process.camForceZMax || false, zmax_outer = hasStock ? stock.z + zclear : outerz + zclear, wztop = widget.track.top, ztOff = hasStock ? stock.z - wztop : 0, @@ -305,6 +306,9 @@ function prepEach(widget, settings, print, firstPoint, update) { ), mustGoUp = Math.max(maxz - point.z, maxz - lastPoint.z) >= tolerance, clearz = maxz; + if (zmax_force) { + clearz = maxz = zmax + zadd; + } // up if any point between higher than start/outline, go up first if (mustGoUp) { layerPush(lastPoint.clone().setZ(clearz + ztOff), 0, 0, tool.getNumber()); diff --git a/src/kiri/conf.js b/src/kiri/conf.js index 4253b475..e0305ea0 100644 --- a/src/kiri/conf.js +++ b/src/kiri/conf.js @@ -546,6 +546,7 @@ const conf = exports({ outputInvertY: false, camExpertFast: false, camTrueShadow: false, + camForceZMax: false, ops: [], // current ops op2: [] // flip ops } diff --git a/src/kiri/init.js b/src/kiri/init.js index 8d89e6d3..04547b8d 100644 --- a/src/kiri/init.js +++ b/src/kiri/init.js @@ -1952,6 +1952,7 @@ gapp.register("kiri.init", [], (root, exports) => { outputOriginBounds: uc.newBoolean(LANG.or_bnds_s, onBooleanClick, {title:LANG.or_bnds_l, modes:LASER}), outputOriginCenter: uc.newBoolean(LANG.or_cntr_s, onBooleanClick, {title:LANG.or_cntr_l, modes:CAM_LZR}), camOriginTop: uc.newBoolean(LANG.or_topp_s, onBooleanClick, {title:LANG.or_topp_l, modes:CAM}), + camForceZMax: uc.newBoolean(LANG.ou_forz_s, onBooleanClick, {title:LANG.ou_forz_l, modes:CAM}), camExpert: uc.newGroup(LANG.op_xprt_s, null, {group: "cam_expert", modes:CAM, marker: false}), camExpertFast: uc.newBoolean(LANG.cx_fast_s, onBooleanClick, {title:LANG.cx_fast_l, modes:CAM, show: () => !ui.camTrueShadow.checked }), diff --git a/web/kiri/lang/en.js b/web/kiri/lang/en.js index 07bf2448..a432ad50 100644 --- a/web/kiri/lang/en.js +++ b/web/kiri/lang/en.js @@ -614,6 +614,8 @@ self.kiri.lang['en-us'] = { ou_conv_l: ["milling direction","uncheck for 'climb'"], ou_depf_s: "depth first", ou_depf_l: ["optimize pocket cuts","with depth priority"], + ou_forz_s: "force z max", + ou_forz_l: "all moves between pockets will go to z max (above stock). this is usually required if you are not performing a roughing operation before pocketing operations.", // CAM STOCK cs_menu: "stock",