diff --git a/src/kiri-mode/cam/client.js b/src/kiri-mode/cam/client.js index 55e451ff..03e0d779 100644 --- a/src/kiri-mode/cam/client.js +++ b/src/kiri-mode/cam/client.js @@ -1287,7 +1287,8 @@ CAM.init = function(kiri, api) { step: 'camLevelOver', rate: 'camLevelSpeed', down: 'camLevelDown', - over: 'camLevelOver' + over: 'camLevelOver', + stock: 'camLevelStock' }).inputs = { tool: UC.newSelect(LANG.cc_tool, {}, "tools"), sep: UC.newBlank({class:"pop-sep"}), @@ -1296,6 +1297,8 @@ CAM.init = function(kiri, api) { rate: UC.newInput(LANG.cc_feed_s, {title:LANG.cc_feed_l, convert:UC.toInt, units:true}), down: UC.newInput(LANG.cc_loff_s, {title:LANG.cc_loff_l, convert:UC.toFloat, units:true}), over: UC.newInput(LANG.cc_lxyo_s, {title:LANG.cc_lxyo_l, convert:UC.toFloat, units:true}), + sep: UC.newBlank({class:"pop-sep"}), + stock: UC.newBoolean(LANG.cc_lsto_s, undefined, {title:LANG.cc_lsto_l}), }; createPopOp('rough', { diff --git a/src/kiri-mode/cam/ops.js b/src/kiri-mode/cam/ops.js index 13a30e45..52150e30 100644 --- a/src/kiri-mode/cam/ops.js +++ b/src/kiri-mode/cam/ops.js @@ -124,9 +124,10 @@ class OpLevel extends CamOp { updateToolDiams(toolDiam); let points = []; - let clear = POLY.outer(POLY.offset(tshadow, toolDiam * (op.over || 0))); - // let tabsub = []; - // POLY.subtract(clear, POLY.offset(tabs.map(t => t.poly), toolDiam/2), tabsub, []); + let clear = op.stock ? + [ newPolygon().centerRectangle({x:0,y:0,z:0}, stock.x, stock.y) ] : + POLY.outer(POLY.offset(tshadow, toolDiam * (op.over || 0))); + POLY.fillArea(clear, 90, stepOver, points); let lines = this.lines = []; diff --git a/src/kiri/conf.js b/src/kiri/conf.js index 6a07b754..06f05f1d 100644 --- a/src/kiri/conf.js +++ b/src/kiri/conf.js @@ -465,6 +465,7 @@ const conf = exports({ camLevelSpeed: 1000, camLevelDown: 0, camLevelOver: 0.5, + camLevelStock: true, camRoughTool: 1000, camRoughSpindle: 1000, camRoughDown: 2, diff --git a/web/kiri/lang/en.js b/web/kiri/lang/en.js index f047eceb..bbca9546 100644 --- a/web/kiri/lang/en.js +++ b/web/kiri/lang/en.js @@ -493,6 +493,8 @@ self.kiri.lang['en-us'] = { cc_loff_l: ["distance from stock face","in workspace units"], cc_lxyo_s: "xy offset", cc_lxyo_l: ["xy offset from part boundary as a fraction of the tool diameter (0 - 1.0)"], + cc_lsto_s: "stock", + cc_lsto_l: ["use stock area instead of part area"], // CNC ROUGHING cr_menu: "rough",