diff --git a/src/kiri-mode/cam/client.js b/src/kiri-mode/cam/client.js index b60fcce8..a4928e0b 100644 --- a/src/kiri-mode/cam/client.js +++ b/src/kiri-mode/cam/client.js @@ -1290,6 +1290,7 @@ CAM.init = function(kiri, api) { tool: 'camOutlineTool', spindle: 'camOutlineSpindle', step: 'camOutlineOver', + steps: 'camOutlineOverCount', down: 'camOutlineDown', rate: 'camOutlineSpeed', plunge: 'camOutlinePlunge', @@ -1308,6 +1309,7 @@ CAM.init = function(kiri, api) { plunge: UC.newInput(LANG.cc_plng_s, {title:LANG.cc_plng_l, convert:UC.toInt, units:true}), down: UC.newInput(LANG.cc_sdwn_s, {title:LANG.cc_sdwn_l, convert:UC.toFloat, units:true}), step: UC.newInput(LANG.cc_sovr_s, {title:LANG.cc_sovr_l, convert:UC.toFloat, bound:UC.bound(0.01,1.0), show:() => popOp.outline.rec.wide}), + steps: UC.newInput(LANG.cc_sovc_s, {title:LANG.cc_sovc_l, convert:UC.toInt, bound:UC.bound(1,5), show:() => popOp.outline.rec.wide}), sep: UC.newBlank({class:"pop-sep"}), top: UC.newBoolean(LANG.co_clrt_s, undefined, {title:LANG.co_clrt_l}), inside: UC.newBoolean(LANG.co_olin_s, undefined, {title:LANG.co_olin_l, show:(op) => { return !op.inputs.outside.checked }}), diff --git a/src/kiri-mode/cam/ops.js b/src/kiri-mode/cam/ops.js index f3dbb5d4..b8d1b2b4 100644 --- a/src/kiri-mode/cam/ops.js +++ b/src/kiri-mode/cam/ops.js @@ -663,6 +663,7 @@ class OpOutline extends CamOp { } else { if (op.wide) { let stepover = toolDiam * op.step; + for (let c = (op.steps || 1); c > 0; c--) offset.slice().forEach(op => { // clone removes inners but the real solution is // to limit expanded shells to through holes diff --git a/src/kiri/conf.js b/src/kiri/conf.js index 0eee9a71..c8fa22b7 100644 --- a/src/kiri/conf.js +++ b/src/kiri/conf.js @@ -482,6 +482,7 @@ const conf = exports({ camOutlineTop: true, camOutlineDown: 3, camOutlineOver: 0.4, + camOutlineOverCount: 1, camOutlineSpeed: 800, camOutlinePlunge: 250, camOutlineWide: false, diff --git a/web/kiri/lang/en.js b/web/kiri/lang/en.js index a38b1bc9..53c45287 100644 --- a/web/kiri/lang/en.js +++ b/web/kiri/lang/en.js @@ -445,6 +445,8 @@ self.kiri.lang['en-us'] = { cc_spnd_l: ["spindle speed in","revolutions / minute"], cc_sovr_s: "step over", cc_sovr_l: ["a fraction of tool diameter between 0 and 1. values greater than 0.49 may result in uncut areas or undesirable artifacts."], + cc_sovc_s: "wide steps", + cc_sovc_l: ["number of wide cutout steps"], cc_sang_s: "step angle", cc_sang_l: ["rotation in degrees between lathe axial points"], cc_sdwn_s: "step down",