change the way contouring uses tool diameter and offset
This commit is contained in:
parent
b7f8ce5b52
commit
3252a42079
4 changed files with 19 additions and 11 deletions
|
|
@ -1151,7 +1151,7 @@ CAM.init = function(kiri, api) {
|
||||||
tool: UC.newSelect(LANG.cc_tool, {}, "tools"),
|
tool: UC.newSelect(LANG.cc_tool, {}, "tools"),
|
||||||
sep: UC.newBlank({class:"pop-sep"}),
|
sep: UC.newBlank({class:"pop-sep"}),
|
||||||
spindle: UC.newInput(LANG.cc_spnd_s, {title:LANG.cc_spnd_l, convert:UC.toInt, show:hasSpindle}),
|
spindle: UC.newInput(LANG.cc_spnd_s, {title:LANG.cc_spnd_l, convert:UC.toInt, show:hasSpindle}),
|
||||||
step: UC.newInput(LANG.cc_sovr_s, {title:LANG.cc_sovr_l, convert:UC.toFloat, bound:UC.bound(0.01,1.0), show:() => !(poppedRec.engrave && poppedRec.contour)}),
|
step: UC.newInput(LANG.cc_sovr_s, {title:LANG.cc_sovr_l, convert:UC.toFloat, bound:UC.bound(0.01,1.0)}),
|
||||||
down: UC.newInput(LANG.cc_sdwn_s, {title:LANG.cc_sdwn_l, convert:UC.toFloat, units:true, show:() => !(poppedRec.engrave && poppedRec.contour)}),
|
down: UC.newInput(LANG.cc_sdwn_s, {title:LANG.cc_sdwn_l, convert:UC.toFloat, units:true, show:() => !(poppedRec.engrave && poppedRec.contour)}),
|
||||||
rate: UC.newInput(LANG.cc_feed_s, {title:LANG.cc_feed_l, convert:UC.toInt, units:true}),
|
rate: UC.newInput(LANG.cc_feed_s, {title:LANG.cc_feed_l, convert:UC.toInt, units:true}),
|
||||||
plunge: UC.newInput(LANG.cc_plng_s, {title:LANG.cc_plng_l, convert:UC.toInt, units:true}),
|
plunge: UC.newInput(LANG.cc_plng_s, {title:LANG.cc_plng_l, convert:UC.toInt, units:true}),
|
||||||
|
|
|
||||||
|
|
@ -1008,8 +1008,11 @@ class OpPocket extends CamOp {
|
||||||
down = diff / Math.ceil(diff / down);
|
down = diff / Math.ceil(diff / down);
|
||||||
}
|
}
|
||||||
let zs = down ? base.util.lerp(zTop, z, down) : [ z ];
|
let zs = down ? base.util.lerp(zTop, z, down) : [ z ];
|
||||||
|
if (engrave) {
|
||||||
|
toolDiam = toolOver;
|
||||||
|
}
|
||||||
if (contour) {
|
if (contour) {
|
||||||
expand = toolOver;
|
expand = engrave ? 0 : toolOver;
|
||||||
}
|
}
|
||||||
if (expand) {
|
if (expand) {
|
||||||
polys = POLY.offset(polys, expand);
|
polys = POLY.offset(polys, expand);
|
||||||
|
|
@ -1037,9 +1040,14 @@ class OpPocket extends CamOp {
|
||||||
let slice = newSliceOut(z);
|
let slice = newSliceOut(z);
|
||||||
let count = engrave ? 1 : 999;
|
let count = engrave ? 1 : 999;
|
||||||
slice.camTrace = { tool, rate, plunge };
|
slice.camTrace = { tool, rate, plunge };
|
||||||
POLY.offset(clip, [ -toolDiam / 2, -toolOver ], {
|
if (toolDiam) {
|
||||||
count, outs: slice.camLines = [], flat:true, z
|
POLY.offset(clip, [ -toolDiam / 2, -toolOver ], {
|
||||||
});
|
count, outs: slice.camLines = [], flat:true, z
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// when engraving with a 0 width tip
|
||||||
|
slice.camLines = clip;
|
||||||
|
}
|
||||||
if (tabs) {
|
if (tabs) {
|
||||||
slice.camLines = cutTabs(tabs, POLY.flatten(slice.camLines, null, true), z);
|
slice.camLines = cutTabs(tabs, POLY.flatten(slice.camLines, null, true), z);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -70,11 +70,11 @@ class Tool {
|
||||||
}
|
}
|
||||||
|
|
||||||
isBallMill() {
|
isBallMill() {
|
||||||
return this.type === "ballmill";
|
return this.tool.type === "ballmill";
|
||||||
}
|
}
|
||||||
|
|
||||||
isTaperMill() {
|
isTaperMill() {
|
||||||
return this.type === "tapermill";
|
return this.tool.type === "tapermill";
|
||||||
}
|
}
|
||||||
|
|
||||||
generateProfile(resolution) {
|
generateProfile(resolution) {
|
||||||
|
|
|
||||||
|
|
@ -155,10 +155,10 @@ class Topo {
|
||||||
return toolAtZ(px, py);
|
return toolAtZ(px, py);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.zAtXY = function(px, py) {
|
const zAtXY = this.zAtXY = function(px, py) {
|
||||||
px = Math.round(rx * (px - minX));
|
let ix = Math.round(rx * (px - minX));
|
||||||
py = Math.round(ry * (py - minY));
|
let iy = Math.round(ry * (py - minY));
|
||||||
return topo.data[px * stepsy + py] || zMin;
|
return topo.data[ix * stepsy + iy] || zMin;
|
||||||
};
|
};
|
||||||
|
|
||||||
function push_point(x,y,z) {
|
function push_point(x,y,z) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue