fix drill NaN emit, up/over re-plunge speeds
This commit is contained in:
parent
d5b50f5d25
commit
0c50236dc1
2 changed files with 12 additions and 5 deletions
|
|
@ -274,6 +274,9 @@ export function cam_export(print, online) {
|
||||||
dist = Math.sqrt(dx * dx + dy * dy + dz * dz),
|
dist = Math.sqrt(dx * dx + dy * dy + dz * dz),
|
||||||
newFeed = feed && feed !== pos.f;
|
newFeed = feed && feed !== pos.f;
|
||||||
|
|
||||||
|
// catch NaN in debugging
|
||||||
|
// if (nl.length === 0 || nl[0] === undefined)
|
||||||
|
// console.log(out, nl.length, ...nl);
|
||||||
|
|
||||||
// drop dup points (all deltas are 0)
|
// drop dup points (all deltas are 0)
|
||||||
if (!arc && !(dx || dy || dz || da)) {
|
if (!arc && !(dx || dy || dz || da)) {
|
||||||
|
|
|
||||||
|
|
@ -244,7 +244,7 @@ export function prepEach(widget, settings, print, firstPoint, update) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
camOut(point.clone().setZ(zmax_outer));
|
camOut(point.clone().setZ(zmax_outer), 0);
|
||||||
points.forEach(function (point, index) {
|
points.forEach(function (point, index) {
|
||||||
camOut(point, 1);
|
camOut(point, 1);
|
||||||
if (index > 0 && index < points.length - 1) {
|
if (index > 0 && index < points.length - 1) {
|
||||||
|
|
@ -332,7 +332,7 @@ export function prepEach(widget, settings, print, firstPoint, update) {
|
||||||
* @param {number} opts.moveLen typically = tool diameter used to trigger terrain detection
|
* @param {number} opts.moveLen typically = tool diameter used to trigger terrain detection
|
||||||
* @param {number} opts.factor speed scale factor
|
* @param {number} opts.factor speed scale factor
|
||||||
*/
|
*/
|
||||||
function camOut(point, emit, opts) {
|
function camOut(point, emit = 1, opts) {
|
||||||
// console.trace({point, emit, opts})
|
// console.trace({point, emit, opts})
|
||||||
let {
|
let {
|
||||||
center = {},
|
center = {},
|
||||||
|
|
@ -399,9 +399,8 @@ export function prepEach(widget, settings, print, firstPoint, update) {
|
||||||
// when rapid pluge could cut thru stock, rapid to just above stock
|
// when rapid pluge could cut thru stock, rapid to just above stock
|
||||||
// then continue plunge as a plunge cut
|
// then continue plunge as a plunge cut
|
||||||
if (deltaZ < 0 && lastPoint.z > stockz && point.z < stockz && emit === 0) {
|
if (deltaZ < 0 && lastPoint.z > stockz && point.z < stockz && emit === 0) {
|
||||||
// console.log('detected plunge cut as rapid move', lastPoint.z, point.z);
|
// console.log('detected plunge cut as rapid move', lastPoint.z, stockz, point.z);
|
||||||
let above = point.clone().setZ(stockz + 0.1);
|
layerPush(point.clone().setZ(stockz + 1), 0, 0, tool);
|
||||||
layerPush(above, 0, 0, tool);
|
|
||||||
// change to cutting move for remainder of plunge
|
// change to cutting move for remainder of plunge
|
||||||
emit = 1;
|
emit = 1;
|
||||||
}
|
}
|
||||||
|
|
@ -467,6 +466,11 @@ export function prepEach(widget, settings, print, firstPoint, update) {
|
||||||
layerPush(point.clone().setZ(zClearance), 0, 0, tool);
|
layerPush(point.clone().setZ(zClearance), 0, 0, tool);
|
||||||
// new pos for plunge calc
|
// new pos for plunge calc
|
||||||
deltaXY = 0;
|
deltaXY = 0;
|
||||||
|
// if plunge goes below stock, convert to cut
|
||||||
|
if (emit === 0 && point.z < stockz) {
|
||||||
|
lastPoint = layerPush(point.clone().setZ(stockz + 1), 0, 0, tool);
|
||||||
|
emit = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (isRough && deltaZ < 0) {
|
} else if (isRough && deltaZ < 0) {
|
||||||
layerPush(point.clone().setZ(lastPoint.z), 0, 0, tool);
|
layerPush(point.clone().setZ(lastPoint.z), 0, 0, tool);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue