fix mixup between shadowBase and shadowTop

This commit is contained in:
Stewart Allen 2020-11-04 18:58:47 -05:00
commit ef1491e48a

View file

@ -738,7 +738,6 @@
onupdate(0.0 + (index/total) * 0.1, "mapping"); onupdate(0.0 + (index/total) * 0.1, "mapping");
}, genso: true }); }, genso: true });
let shadowTop = terrain[terrain.length - 1]; let shadowTop = terrain[terrain.length - 1];
let shadowBase = terrain[0];
console.log({slicer, tzindex, tshadow, terrain}); console.log({slicer, tzindex, tshadow, terrain});
if (procDrillReg) { if (procDrillReg) {
@ -785,7 +784,7 @@
onupdate(0.1 + (index/total) * 0.1, "roughing"); onupdate(0.1 + (index/total) * 0.1, "roughing");
}, genso: true }); }, genso: true });
shadow = POLY.union(shadow.appendAll(shadowBase.tops), 0.01, true); shadow = POLY.union(shadow.appendAll(shadowTop.tops), 0.01, true);
// inset or eliminate thru holes from shadow // inset or eliminate thru holes from shadow
shadow = POLY.flatten(shadow.clone(true), [], true); shadow = POLY.flatten(shadow.clone(true), [], true);
@ -813,7 +812,8 @@
let offset = [shell.clone(true),shadow.clone(true)].flat(); let offset = [shell.clone(true),shadow.clone(true)].flat();
let flat = POLY.flatten(offset, [], true); let flat = POLY.flatten(offset, [], true);
let nest = POLY.setZ(POLY.nest(flat), slice.z); let nest = POLY.setZ(POLY.nest(flat), slice.z);
// slice.tops[0].inner = shell.clone(true); // slice.tops[0].inner = nest;
// slice.tops[0].inner = POLY.setZ(shell.clone(true), slice.z);
// inset offset array by 1/2 diameter then by tool overlap % // inset offset array by 1/2 diameter then by tool overlap %
offset = POLY.offset(nest, [-(roughToolDiam / 2 + camRoughStock), -roughToolDiam * proc.camRoughOver], { offset = POLY.offset(nest, [-(roughToolDiam / 2 + camRoughStock), -roughToolDiam * proc.camRoughOver], {
@ -839,7 +839,7 @@
// create outline slices // create outline slices
if (procOutline) { if (procOutline) {
let shadow = [];//shadowTop.tops; let shadow = [];
let slices = []; let slices = [];
slicer.slice(slicer.interval(outlineDown, { down: true, min: zBottom }), { each: (data, index, total) => { slicer.slice(slicer.interval(outlineDown, { down: true, min: zBottom }), { each: (data, index, total) => {
shadow = POLY.union(shadow.appendAll(data.tops), 0.01, true); shadow = POLY.union(shadow.appendAll(data.tops), 0.01, true);
@ -851,7 +851,7 @@
slices.push(data.slice); slices.push(data.slice);
onupdate(0.2 + (index/total) * 0.1, "outlines"); onupdate(0.2 + (index/total) * 0.1, "outlines");
}, genso: true }); }, genso: true });
shadow = POLY.union(shadow.appendAll(shadowBase.tops), 0.01, true); shadow = POLY.union(shadow.appendAll(shadowTop.tops), 0.01, true);
// extend cut thru (only when z bottom is 0) // extend cut thru (only when z bottom is 0)
if (zThru) { if (zThru) {
@ -1699,11 +1699,11 @@
} }
} }
function add0(val) { function add0(val, opt) {
let s = val.toString(), let s = val.toString(),
d = s.indexOf("."); d = s.indexOf(".");
if (d < 0) { if (d < 0) {
return s + '.0'; return opt ? s : s + '.0';
} else { } else {
return val.toFixed(decimals); return val.toFixed(decimals);
} }
@ -1800,7 +1800,7 @@
} }
if (feed && feed !== pos.f) { if (feed && feed !== pos.f) {
pos.f = feed; pos.f = feed;
nl.append(space).append("F").append(feed * factor); nl.append(space).append("F").append(add0(feed * factor, true));
} }
// update time calculation // update time calculation