add leave stock to cam contour

This commit is contained in:
Stewart Allen 2023-01-18 16:38:24 -05:00
commit 0f3358aaee
6 changed files with 17 additions and 7 deletions

View file

@ -27,6 +27,7 @@ Full docs @ https://docs.grid.space/projects/kiri-moto
* CAM add omit pocket option to outline op
* CAM add trace support for taper tip diameter
* CAM add trace offset override
* CAM add leave stock to contour
# Release 3.7 (2022-11-12)

View file

@ -1276,6 +1276,7 @@ CAM.init = function(kiri, api) {
step: 'camContourOver',
rate: 'camContourSpeed',
angle: 'camContourAngle',
leave: 'camContourLeave',
tolerance: 'camTolerance',
flatness: 'camFlatness',
bridging: 'camContourBridge',
@ -1292,6 +1293,7 @@ CAM.init = function(kiri, api) {
sep: UC.newBlank({class:"pop-sep"}),
step: UC.newInput(LANG.cc_sovr_s, {title:LANG.cc_sovr_l, convert:UC.toFloat, bound:UC.bound(0.01,2.0)}),
angle: UC.newInput(LANG.cf_angl_s, {title:LANG.cf_angl_l, convert:UC.toFloat, bound:UC.bound(45,90)}),
leave: UC.newInput(LANG.cf_leav_s, {title:LANG.cf_leav_l, convert:UC.toFloat, bound:UC.bound(0,100)}),
sep: UC.newBlank({class:"pop-sep"}),
flatness: UC.newInput(LANG.ou_flat_s, {title:LANG.ou_flat_l, convert:UC.toFloat, bound:UC.bound(0,1.0), units:true, round:4}),
tolerance: UC.newInput(LANG.ou_toll_s, {title:LANG.ou_toll_l, convert:UC.toFloat, bound:UC.bound(0,10.0), units:true, round:4}),

View file

@ -657,7 +657,7 @@ class OpOutline extends CamOp {
// project empty up and render
for (let slice of slices) {
if (true) slice.output()
if (false) slice.output()
.setLayer("slice", {line: 0xaaaa00}, false)
.addPolys(slice.topPolys())
slice.output()

View file

@ -53,6 +53,7 @@ class Topo {
toolDiameter = tool.fluteDiameter(),
toolStep = toolDiameter * contour.step,
traceJoin = toolDiameter / 2,
leave = contour.leave || 0,
maxangle = contour.angle,
curvesOnly = contour.curves,
bridge = contour.bridging || 0,
@ -180,6 +181,7 @@ class Topo {
clipTab,
tabHeight,
newslices,
leave,
color
}, (i, l, p) => {
onupdate(l / 2 + i / 2, l, p);
@ -302,7 +304,7 @@ class Topo {
const { minX, maxX, minY, maxY, boundsX, boundsY, stepsX, stepsY } = params;
const { gridDelta, resolution, partOff, toolStep, contourX, contourY } = params;
const { clipTo, clipTab, tabHeight, newslices, color } = params;
const { clipTo, clipTab, tabHeight, newslices, color, leave } = params;
let stepsTaken = 0,
stepsTotal = 0;
@ -325,6 +327,7 @@ class Topo {
trace.init({
box,
leave,
clipTo,
clipTab,
tabHeight,
@ -474,7 +477,7 @@ class Trace {
constructor(probe, params) {
const { curvesOnly, maxangle, flatness, bridge, contourX } = params;
const { curvesOnly, maxangle, flatness, bridge, contourX, leave } = params;
this.params = params;
this.probe = probe;
@ -609,7 +612,7 @@ class Trace {
crossY_sync(params, then) {
const { push_point, end_poly, newtrace, newslice, inClip } = this.object;
const { clipTab, tabHeight, clipTo, box, resolution } = this.cross;
const { clipTab, tabHeight, clipTo, box, resolution, leave } = this.cross;
const { toolAtZ } = this.probe;
let { from, to, x, gridx, gridy } = params;
const checkr = newPoint(0,0);
@ -636,7 +639,7 @@ class Trace {
gridy++;
continue;
}
push_point(x, y, tv);
push_point(x, y, tv + leave);
gridy++;
}
end_poly();
@ -645,9 +648,10 @@ class Trace {
crossX_sync(params, then) {
const { push_point, end_poly, newtrace, newslice, inClip } = this.object;
const { clipTab, tabHeight, clipTo, box, resolution } = this.cross;
const { clipTab, tabHeight, clipTo, box, resolution, leave } = this.cross;
const { toolAtZ } = this.probe;
let { from, to, y, gridx, gridy } = params;
const checkr = newPoint(0,0);
newslice();
newtrace();
@ -672,7 +676,7 @@ class Trace {
gridx++;
continue;
}
push_point(x, y, tv);
push_point(x, y, tv + leave);
gridx++;
}
end_poly();

View file

@ -493,6 +493,7 @@ const conf = exports({
camContourOver: 0.5,
camContourSpeed: 1000,
camContourAngle: 85,
camContourLeave: 0,
camContourBottom: false,
camContourCurves: false,
camContourIn: false,

View file

@ -510,6 +510,8 @@ self.kiri.lang['en-us'] = {
cn_menu: "contour",
cf_angl_s: "max angle",
cf_angl_l: ["angles greater than this","are considered vertical"],
cf_leav_s: "leave stock",
cf_leav_l: ["amount of stock to leave above part surface"],
cf_botm_s: "z bottom",
cf_botm_l: ["obey z bottom limit"],
cf_curv_s: "curves only",