handle depth ordering for traces

This commit is contained in:
Stewart Allen 2020-12-01 20:11:19 -05:00
commit 4a84732797
2 changed files with 24 additions and 13 deletions

View file

@ -327,8 +327,9 @@
outlineDiam: 0,
contourx: [],
contoury: [],
trace: [],
drill: [],
layer: 0,
drill: []
};
// todo first move into positon
@ -435,7 +436,22 @@
}
break;
case PRO.TRACE:
console.log({prep_trace: slice});
if (depthFirst) {
depthData.trace.push(slice);
break;
} else {
emitTrace(slice);
}
break;
case PRO.DRILL:
setTool(process.camDrillTool, process.camDrillDownSpeed, process.camDrillDownSpeed);
depthData.drill.appendAll(slice.camLines);
break;
}
update(sliceIndex / slices.length);
});
function emitTrace(slice) {
let { tool, speed, plunge, path } = slice.camTrace;
setTool(tool, speed, plunge);
let traceTool = new CAM.Tool(settings, tool);
@ -446,14 +462,7 @@
}, !poly.open);
});
newLayer();
break;
case PRO.DRILL:
setTool(process.camDrillTool, process.camDrillDownSpeed, process.camDrillDownSpeed);
depthData.drill.appendAll(slice.camLines);
break;
}
update(sliceIndex / slices.length);
});
function polyEmit(poly, index, count, fromPoint) {
let last = null;
@ -602,6 +611,9 @@
});
}
}
depthData.trace.forEach(slice => {
emitTrace(slice);
});
}
// drilling is always depth first, and always output last (change?)

View file

@ -488,7 +488,6 @@
let proc = settings.process;
let traces = (settings.widget[widget.id] || {}).trace || [];
traces.forEach(trace => {
console.log({trace});
let { tool, path } = trace;
let traceTool = new CAM.Tool(settings, tool);
let traceToolDiam = traceTool.fluteDiameter();