check for and correct invalid outline settings. default stock + offset. add 'g' animate shortcut

This commit is contained in:
Stewart Allen 2020-12-06 11:17:33 -05:00
commit a5e98bd892
4 changed files with 20 additions and 3 deletions

View file

@ -64,6 +64,7 @@
* `B` climb vs conventional not fully consistent after refactor * `B` climb vs conventional not fully consistent after refactor
* `B` outside cutting direction in roughing mode inverted * `B` outside cutting direction in roughing mode inverted
* `B` top clearing operations should use linear, not offset, passes * `B` top clearing operations should use linear, not offset, passes
* `B` on rotation, tabs dissociate from parts whose center changes with rotation
* `F` skip "thru" holes checkbox for roughing and outlining * `F` skip "thru" holes checkbox for roughing and outlining
* `F` polygon simplification option in tracing (for image derived maps) * `F` polygon simplification option in tracing (for image derived maps)
* `F` use 3 registration holes to prevent rotation accidents (midline offset one axis) * `F` use 3 registration holes to prevent rotation accidents (midline offset one axis)

View file

@ -463,11 +463,11 @@
camFastFeed: 6000, camFastFeed: 6000,
camFastFeedZ: 300, camFastFeedZ: 300,
camTolerance: 0, camTolerance: 0,
camStockX: 0, camStockX: 5,
camStockY: 0, camStockY: 5,
camStockZ: 0, camStockZ: 0,
camStockOffset: true, camStockOffset: true,
camStockOn: false, camStockOn: true,
camConventional: false, // outputClockwise camConventional: false, // outputClockwise
outputOriginCenter: false, outputOriginCenter: false,
outputInvertX: false, outputInvertX: false,

View file

@ -388,6 +388,9 @@
} }
API.function.export(); API.function.export();
break; break;
case cca('g'): // CAM animate
API.function.animate();
break;
case cca('o'): // manual rotation case cca('o'): // manual rotation
rotateInputSelection(); rotateInputSelection();
break; break;

View file

@ -54,6 +54,8 @@
func.tabClear(); func.tabClear();
func.traceDone(); func.traceDone();
UI.func.animate.style.display = 'none'; UI.func.animate.style.display = 'none';
} else {
checkOutlineSettings(api.conf.get());
} }
// do not persist traces across page reloads // do not persist traces across page reloads
func.traceClear(); func.traceClear();
@ -67,6 +69,16 @@
func.traceDone(); func.traceDone();
}); });
function checkOutlineSettings(settings) {
let ui = api.ui, proc = settings.process;
// fix invalid in/out enabled condition
if (ui.camOutlineIn.checked && ui.camOutlineOut.checked) {
proc.camOutlineIn = proc.camOutlineOut = false;
ui.camOutlineIn.checked = ui.camOutlineOut.checked = false;
api.uc.refresh();
}
}
api.event.on("settings.saved", (settings) => { api.event.on("settings.saved", (settings) => {
current = settings; current = settings;
const proc = settings.process; const proc = settings.process;
@ -78,6 +90,7 @@
if (wannot.tab && wannot.tab.length) hasTabs = true; if (wannot.tab && wannot.tab.length) hasTabs = true;
if (wannot.trace && wannot.trace.length) hasTraces = true; if (wannot.trace && wannot.trace.length) hasTraces = true;
}); });
checkOutlineSettings(settings);
// show/hide dots in enabled process pop buttons // show/hide dots in enabled process pop buttons
api.ui.camRough.marker.style.display = proc.camRoughOn ? 'flex' : 'none'; api.ui.camRough.marker.style.display = proc.camRoughOn ? 'flex' : 'none';
api.ui.camDrill.marker.style.display = api.ui.camDrill.marker.style.display =