add cam index operation. not wired into slice/preview yet
This commit is contained in:
parent
8a4c6ef560
commit
05cdb29d11
10 changed files with 92 additions and 31 deletions
|
|
@ -35,7 +35,7 @@ kiri.load(() => {
|
||||||
const { api } = kiri;
|
const { api } = kiri;
|
||||||
|
|
||||||
function animate_clear2(api) {
|
function animate_clear2(api) {
|
||||||
moto.space.platform.showGridBelow(true);
|
// moto.space.platform.showGridBelow(true);
|
||||||
kiri.client.animate_cleanup2();
|
kiri.client.animate_cleanup2();
|
||||||
$('layer-animate').innerHTML = '';
|
$('layer-animate').innerHTML = '';
|
||||||
$('layer-toolpos').innerHTML = '';
|
$('layer-toolpos').innerHTML = '';
|
||||||
|
|
@ -71,7 +71,7 @@ kiri.load(() => {
|
||||||
pauseButton.style.display = 'none';
|
pauseButton.style.display = 'none';
|
||||||
api.event.emit('animate', 'CAM');
|
api.event.emit('animate', 'CAM');
|
||||||
api.alerts.hide(alert);
|
api.alerts.hide(alert);
|
||||||
moto.space.platform.showGridBelow(false);
|
// moto.space.platform.showGridBelow(false);
|
||||||
$('render-hide').onclick();
|
$('render-hide').onclick();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,12 @@ CAM.init = function(kiri, api) {
|
||||||
isIndexed = settings.process.camStockIndexed;
|
isIndexed = settings.process.camStockIndexed;
|
||||||
animVer = isIndexed ? 1 : 0;
|
animVer = isIndexed ? 1 : 0;
|
||||||
updateStock();
|
updateStock();
|
||||||
|
SPACE.platform.setVisible(!isIndexed);
|
||||||
|
for (let widget of api.widgets.all()) {
|
||||||
|
widget.setIndexed(camStock && isIndexed ? camStock.scale.z : 0);
|
||||||
|
}
|
||||||
|
api.platform.update_top_z();
|
||||||
|
$('cam-index').style.display = isIndexed ? '' : 'none';
|
||||||
}
|
}
|
||||||
|
|
||||||
// wire up animate button in ui
|
// wire up animate button in ui
|
||||||
|
|
@ -95,7 +101,7 @@ CAM.init = function(kiri, api) {
|
||||||
api.event.on("mode.set", (mode) => {
|
api.event.on("mode.set", (mode) => {
|
||||||
isCamMode = mode === 'CAM';
|
isCamMode = mode === 'CAM';
|
||||||
$('set-tools').style.display = isCamMode ? '' : 'none';
|
$('set-tools').style.display = isCamMode ? '' : 'none';
|
||||||
kiri.space.platform.setColor(isCamMode ? 0xeeeeee : 0xcccccc);
|
SPACE.platform.setColor(isCamMode ? 0xeeeeee : 0xcccccc);
|
||||||
updateStock(undefined, 'internal');
|
updateStock(undefined, 'internal');
|
||||||
UI.func.animate.style.display = isCamMode ? '' : 'none';
|
UI.func.animate.style.display = isCamMode ? '' : 'none';
|
||||||
if (!isCamMode) {
|
if (!isCamMode) {
|
||||||
|
|
@ -211,6 +217,7 @@ CAM.init = function(kiri, api) {
|
||||||
let settings = API.conf.get();
|
let settings = API.conf.get();
|
||||||
let { process, device } = settings;
|
let { process, device } = settings;
|
||||||
switch (ev.target.innerText) {
|
switch (ev.target.innerText) {
|
||||||
|
case "index": return func.opAddIndex();
|
||||||
case "laser on": return func.opAddLaserOn();
|
case "laser on": return func.opAddLaserOn();
|
||||||
case "laser off": return func.opAddLaserOff();
|
case "laser off": return func.opAddLaserOff();
|
||||||
case "gcode": return func.opAddGCode();
|
case "gcode": return func.opAddGCode();
|
||||||
|
|
@ -252,6 +259,10 @@ CAM.init = function(kiri, api) {
|
||||||
func.opAdd(popOp.gcode.new());
|
func.opAdd(popOp.gcode.new());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
func.opAddIndex = () => {
|
||||||
|
func.opAdd(popOp.index.new());
|
||||||
|
};
|
||||||
|
|
||||||
func.opAddLevel = () => {
|
func.opAddLevel = () => {
|
||||||
func.opAdd(popOp.level.new());
|
func.opAdd(popOp.level.new());
|
||||||
};
|
};
|
||||||
|
|
@ -1302,6 +1313,12 @@ CAM.init = function(kiri, api) {
|
||||||
action: UC.newRow([ UC.newButton(LANG.edit, gcodeEditor()) ], {class:"ext-buttons f-row"})
|
action: UC.newRow([ UC.newButton(LANG.edit, gcodeEditor()) ], {class:"ext-buttons f-row"})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
createPopOp('index', {
|
||||||
|
degrees: 'camIndexAxis',
|
||||||
|
}).inputs = {
|
||||||
|
degrees: UC.newInput(LANG.ci_degr_s, {title:LANG.ci_degr_l, convert:UC.toFloat, bound:UC.bound(-360,360.0) })
|
||||||
|
};
|
||||||
|
|
||||||
const editEnable = gcodeEditor('Laser Enable Script', 'enable');
|
const editEnable = gcodeEditor('Laser Enable Script', 'enable');
|
||||||
const editOn = gcodeEditor('Laser On Script', 'on');
|
const editOn = gcodeEditor('Laser On Script', 'on');
|
||||||
const editOff = gcodeEditor('Laser Off Script', 'off');
|
const editOff = gcodeEditor('Laser Off Script', 'off');
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,16 @@ class CamOp {
|
||||||
prepare() { }
|
prepare() { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class OpIndex extends CamOp {
|
||||||
|
constructor(state, op) {
|
||||||
|
super(state, op);
|
||||||
|
state.setAxisIndex(op.degrees);
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare(ops, progress) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class OpGCode extends CamOp {
|
class OpGCode extends CamOp {
|
||||||
constructor(state, op) {
|
constructor(state, op) {
|
||||||
super(state, op);
|
super(state, op);
|
||||||
|
|
@ -83,7 +93,7 @@ class OpLevel extends CamOp {
|
||||||
|
|
||||||
slice(progress) {
|
slice(progress) {
|
||||||
let { op, state } = this;
|
let { op, state } = this;
|
||||||
let { settings, widget, sliceAll } = state;
|
let { settings, widget, addSlices } = state;
|
||||||
let { updateToolDiams, thruHoles, tabs, cutTabs } = state;
|
let { updateToolDiams, thruHoles, tabs, cutTabs } = state;
|
||||||
let { bounds, zMax, ztOff, color, tshadow } = state;
|
let { bounds, zMax, ztOff, color, tshadow } = state;
|
||||||
let { stock } = settings;
|
let { stock } = settings;
|
||||||
|
|
@ -107,7 +117,7 @@ class OpLevel extends CamOp {
|
||||||
slice.output()
|
slice.output()
|
||||||
.setLayer("level", {face: color, line: color})
|
.setLayer("level", {face: color, line: color})
|
||||||
.addPolys(this.lines);
|
.addPolys(this.lines);
|
||||||
sliceAll.push(slice);
|
addSlices(slice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -140,7 +150,7 @@ class OpRough extends CamOp {
|
||||||
|
|
||||||
slice(progress) {
|
slice(progress) {
|
||||||
let { op, state } = this;
|
let { op, state } = this;
|
||||||
let { settings, widget, slicer, sliceAll, unsafe, color } = state;
|
let { settings, widget, slicer, addSlices, unsafe, color } = state;
|
||||||
let { updateToolDiams, thruHoles, tabs, cutTabs, cutPolys } = state;
|
let { updateToolDiams, thruHoles, tabs, cutTabs, cutPolys } = state;
|
||||||
let { tshadow, shadowTop, ztOff, zBottom, zMax, shadowAt } = state;
|
let { tshadow, shadowTop, ztOff, zBottom, zMax, shadowAt } = state;
|
||||||
let { process, stock } = settings;
|
let { process, stock } = settings;
|
||||||
|
|
@ -178,7 +188,7 @@ class OpRough extends CamOp {
|
||||||
slice.output()
|
slice.output()
|
||||||
.setLayer("face", {face: color, line: color})
|
.setLayer("face", {face: color, line: color})
|
||||||
.addPolys(slice.camLines);
|
.addPolys(slice.camLines);
|
||||||
sliceAll.push(slice);
|
addSlices(slice);
|
||||||
camFaces.push(slice);
|
camFaces.push(slice);
|
||||||
z -= zstep;
|
z -= zstep;
|
||||||
}
|
}
|
||||||
|
|
@ -351,7 +361,7 @@ class OpRough extends CamOp {
|
||||||
});
|
});
|
||||||
|
|
||||||
this.sliceOut = slices.filter(slice => slice.camLines);
|
this.sliceOut = slices.filter(slice => slice.camLines);
|
||||||
sliceAll.appendAll(this.sliceOut);
|
addSlices(this.sliceOut);
|
||||||
}
|
}
|
||||||
|
|
||||||
prepare(ops, progress) {
|
prepare(ops, progress) {
|
||||||
|
|
@ -449,7 +459,7 @@ class OpOutline extends CamOp {
|
||||||
|
|
||||||
slice(progress) {
|
slice(progress) {
|
||||||
let { op, state } = this;
|
let { op, state } = this;
|
||||||
let { settings, widget, slicer, sliceAll, tshadow, thruHoles, unsafe, color } = state;
|
let { settings, widget, slicer, addSlices, tshadow, thruHoles, unsafe, color } = state;
|
||||||
let { updateToolDiams, zThru, zBottom, shadowTop, tabs, cutTabs, cutPolys } = state;
|
let { updateToolDiams, zThru, zBottom, shadowTop, tabs, cutTabs, cutPolys } = state;
|
||||||
let { zMax, ztOff } = state;
|
let { zMax, ztOff } = state;
|
||||||
let { process, stock } = settings;
|
let { process, stock } = settings;
|
||||||
|
|
@ -618,7 +628,7 @@ class OpOutline extends CamOp {
|
||||||
.addPolys(slice.camLines);
|
.addPolys(slice.camLines);
|
||||||
}
|
}
|
||||||
|
|
||||||
sliceAll.appendAll(slices);
|
addSlices(slices);
|
||||||
this.sliceOut = slices;
|
this.sliceOut = slices;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -698,7 +708,7 @@ class OpContour extends CamOp {
|
||||||
|
|
||||||
slice(progress) {
|
slice(progress) {
|
||||||
let { op, state } = this;
|
let { op, state } = this;
|
||||||
let { sliceAll } = state;
|
let { addSlices } = state;
|
||||||
// we need topo for safe travel moves when roughing and outlining
|
// we need topo for safe travel moves when roughing and outlining
|
||||||
// not generated when drilling-only. then all z moves use bounds max.
|
// not generated when drilling-only. then all z moves use bounds max.
|
||||||
// also generates x and y contouring when selected
|
// also generates x and y contouring when selected
|
||||||
|
|
@ -709,7 +719,7 @@ class OpContour extends CamOp {
|
||||||
},
|
},
|
||||||
ondone: (slices) => {
|
ondone: (slices) => {
|
||||||
this.sliceOut = slices;
|
this.sliceOut = slices;
|
||||||
sliceAll.appendAll(slices);
|
addSlices(slices);
|
||||||
},
|
},
|
||||||
contour: op,
|
contour: op,
|
||||||
state: state
|
state: state
|
||||||
|
|
@ -788,7 +798,7 @@ class OpTrace extends CamOp {
|
||||||
slice(progress) {
|
slice(progress) {
|
||||||
let { op, state } = this;
|
let { op, state } = this;
|
||||||
let { tool, rate, down, plunge, offset } = op;
|
let { tool, rate, down, plunge, offset } = op;
|
||||||
let { settings, widget, sliceAll, zMax, zTop, zThru, tabs } = state;
|
let { settings, widget, addSlices, zMax, zTop, zThru, tabs } = state;
|
||||||
let { updateToolDiams, cutTabs, cutPolys, healPolys, color } = state;
|
let { updateToolDiams, cutTabs, cutPolys, healPolys, color } = state;
|
||||||
let { process, stock } = settings;
|
let { process, stock } = settings;
|
||||||
let { camStockClipTo, camZBottom } = process;
|
let { camStockClipTo, camZBottom } = process;
|
||||||
|
|
@ -814,7 +824,7 @@ class OpTrace extends CamOp {
|
||||||
}
|
}
|
||||||
function newSliceOut(z) {
|
function newSliceOut(z) {
|
||||||
let slice = newSlice(z);
|
let slice = newSlice(z);
|
||||||
sliceAll.push(slice);
|
addSlices(slice);
|
||||||
sliceOut.push(slice);
|
sliceOut.push(slice);
|
||||||
return slice;
|
return slice;
|
||||||
}
|
}
|
||||||
|
|
@ -987,7 +997,7 @@ class OpPocket extends CamOp {
|
||||||
const debug = false;
|
const debug = false;
|
||||||
let { op, state } = this;
|
let { op, state } = this;
|
||||||
let { tool, rate, down, plunge, expand, contour, smooth, tolerance } = op;
|
let { tool, rate, down, plunge, expand, contour, smooth, tolerance } = op;
|
||||||
let { settings, widget, sliceAll, zMax, zTop, zThru, tabs, color } = state;
|
let { settings, widget, addSlices, zMax, zTop, zThru, tabs, color } = state;
|
||||||
let { updateToolDiams, cutTabs, cutPolys, healPolys, shadowAt } = state;
|
let { updateToolDiams, cutTabs, cutPolys, healPolys, shadowAt } = state;
|
||||||
let { process, stock } = settings;
|
let { process, stock } = settings;
|
||||||
// generate tracing offsets from chosen features
|
// generate tracing offsets from chosen features
|
||||||
|
|
@ -1022,7 +1032,7 @@ class OpPocket extends CamOp {
|
||||||
}
|
}
|
||||||
function newSliceOut(z) {
|
function newSliceOut(z) {
|
||||||
let slice = newSlice(z);
|
let slice = newSlice(z);
|
||||||
sliceAll.push(slice);
|
addSlices(slice);
|
||||||
sliceOut.push(slice);
|
sliceOut.push(slice);
|
||||||
return slice;
|
return slice;
|
||||||
}
|
}
|
||||||
|
|
@ -1206,7 +1216,7 @@ class OpDrill extends CamOp {
|
||||||
|
|
||||||
slice(progress) {
|
slice(progress) {
|
||||||
let { op, state } = this;
|
let { op, state } = this;
|
||||||
let { settings, sliceAll, tslices, updateToolDiams } = state;
|
let { settings, addSlices, tslices, updateToolDiams } = state;
|
||||||
let { zBottom, zThru, thruHoles, color } = state;
|
let { zBottom, zThru, thruHoles, color } = state;
|
||||||
|
|
||||||
let drills = [],
|
let drills = [],
|
||||||
|
|
@ -1272,14 +1282,14 @@ class OpDrill extends CamOp {
|
||||||
slice.output()
|
slice.output()
|
||||||
.setLayer("drill", {face: color, line: color})
|
.setLayer("drill", {face: color, line: color})
|
||||||
.addPolys(drill);
|
.addPolys(drill);
|
||||||
sliceAll.push(slice);
|
addSlices(slice);
|
||||||
sliceOut.push(slice);
|
sliceOut.push(slice);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
prepare(ops, progress) {
|
prepare(ops, progress) {
|
||||||
let { op, state } = this;
|
let { op, state } = this;
|
||||||
let { settings, widget, sliceAll, updateToolDiams } = state;
|
let { settings, widget, addSlices, updateToolDiams } = state;
|
||||||
let { setTool, setSpindle, setDrill, emitDrills } = ops;
|
let { setTool, setSpindle, setDrill, emitDrills } = ops;
|
||||||
|
|
||||||
setTool(op.tool, undefined, op.rate);
|
setTool(op.tool, undefined, op.rate);
|
||||||
|
|
@ -1296,7 +1306,7 @@ class OpRegister extends CamOp {
|
||||||
|
|
||||||
slice(progress) {
|
slice(progress) {
|
||||||
let { op, state } = this;
|
let { op, state } = this;
|
||||||
let { settings, widget, bounds, sliceAll, zMax, zThru, color } = state;
|
let { settings, widget, bounds, addSlices, zMax, zThru, color } = state;
|
||||||
let { updateToolDiams } = state;
|
let { updateToolDiams } = state;
|
||||||
|
|
||||||
let tool = new CAM.Tool(settings, op.tool);
|
let tool = new CAM.Tool(settings, op.tool);
|
||||||
|
|
@ -1376,7 +1386,7 @@ class OpRegister extends CamOp {
|
||||||
}
|
}
|
||||||
for (let z of base.util.lerp(z1, z2, op.down)) {
|
for (let z of base.util.lerp(z1, z2, op.down)) {
|
||||||
let slice = newSlice(z);
|
let slice = newSlice(z);
|
||||||
sliceAll.push(slice);
|
addSlices(slice);
|
||||||
sliceOut.push(slice);
|
sliceOut.push(slice);
|
||||||
start(z);
|
start(z);
|
||||||
rept(4, o2, oy => {
|
rept(4, o2, oy => {
|
||||||
|
|
@ -1416,14 +1426,14 @@ class OpRegister extends CamOp {
|
||||||
slice.output()
|
slice.output()
|
||||||
.setLayer("register", {face: color, line: color})
|
.setLayer("register", {face: color, line: color})
|
||||||
.addPolys(polys);
|
.addPolys(polys);
|
||||||
sliceAll.push(slice);
|
addSlices(slice);
|
||||||
sliceOut.push(slice);
|
sliceOut.push(slice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
prepare(ops, progress) {
|
prepare(ops, progress) {
|
||||||
let { op, state } = this;
|
let { op, state } = this;
|
||||||
let { settings, widget, sliceAll, updateToolDiams } = state;
|
let { settings, widget, addSlices, updateToolDiams } = state;
|
||||||
let { setTool, setSpindle, setDrill, emitDrills } = ops;
|
let { setTool, setSpindle, setDrill, emitDrills } = ops;
|
||||||
|
|
||||||
if (op.axis === '-') {
|
if (op.axis === '-') {
|
||||||
|
|
@ -1447,7 +1457,7 @@ class OpXRay extends CamOp {
|
||||||
}
|
}
|
||||||
|
|
||||||
slice(progress) {
|
slice(progress) {
|
||||||
let { widget, sliceAll } = this.state;
|
let { widget, addSlices } = this.state;
|
||||||
let slicer = new kiri.cam_slicer(widget.getPoints(), {
|
let slicer = new kiri.cam_slicer(widget.getPoints(), {
|
||||||
zlist: true,
|
zlist: true,
|
||||||
zline: true
|
zline: true
|
||||||
|
|
@ -1461,7 +1471,7 @@ class OpXRay extends CamOp {
|
||||||
// data.tops.forEach(top => slice.addTop(top));
|
// data.tops.forEach(top => slice.addTop(top));
|
||||||
slice.lines = data.lines;
|
slice.lines = data.lines;
|
||||||
slice.xray();
|
slice.xray();
|
||||||
sliceAll.push(slice);
|
addSlices(slice);
|
||||||
}, over: false, flatoff: 0, edges: true, openok: true };
|
}, over: false, flatoff: 0, edges: true, openok: true };
|
||||||
slicer.slice(xrayind, xrayopt);
|
slicer.slice(xrayind, xrayopt);
|
||||||
// xrayopt.over = true;
|
// xrayopt.over = true;
|
||||||
|
|
@ -1476,7 +1486,7 @@ class OpShadow extends CamOp {
|
||||||
|
|
||||||
slice(progress) {
|
slice(progress) {
|
||||||
let state = this.state;
|
let state = this.state;
|
||||||
let { ops, slicer, widget, unsafe, sliceAll, shadowAt } = state;
|
let { ops, slicer, widget, unsafe, addSlices, shadowAt } = state;
|
||||||
|
|
||||||
let real = ops.map(rec => rec.op).filter(op => op);
|
let real = ops.map(rec => rec.op).filter(op => op);
|
||||||
let drill = real.filter(op => op.type === 'drill').length > 0;
|
let drill = real.filter(op => op.type === 'drill').length > 0;
|
||||||
|
|
@ -1509,7 +1519,7 @@ class OpShadow extends CamOp {
|
||||||
data.slice.shadow = tshadow;
|
data.slice.shadow = tshadow;
|
||||||
if (false) {
|
if (false) {
|
||||||
const slice = data.slice;
|
const slice = data.slice;
|
||||||
sliceAll.push(slice);
|
addSlices(slice);
|
||||||
slice.output()
|
slice.output()
|
||||||
.setLayer("shadow", {line: 0x888800, thin: true })
|
.setLayer("shadow", {line: 0x888800, thin: true })
|
||||||
.addPolys(POLY.setZ(tshadow.clone(true), data.z), { thin: true });
|
.addPolys(POLY.setZ(tshadow.clone(true), data.z), { thin: true });
|
||||||
|
|
@ -1651,6 +1661,7 @@ CAM.OPS = CamOp.MAP = {
|
||||||
"laser on": OpLaserOn,
|
"laser on": OpLaserOn,
|
||||||
"laser off": OpLaserOff,
|
"laser off": OpLaserOff,
|
||||||
"gcode": OpGCode,
|
"gcode": OpGCode,
|
||||||
|
"index": OpIndex,
|
||||||
"flip": CamOp
|
"flip": CamOp
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,8 @@ CAM.slice = function(settings, widget, onupdate, ondone) {
|
||||||
color = dark ? 0xbbbbbb : 0,
|
color = dark ? 0xbbbbbb : 0,
|
||||||
tabs = widget.anno.tab,
|
tabs = widget.anno.tab,
|
||||||
unsafe = proc.camExpertFast,
|
unsafe = proc.camExpertFast,
|
||||||
units = settings.controller.units === 'in' ? 25.4 : 1;
|
units = settings.controller.units === 'in' ? 25.4 : 1,
|
||||||
|
axisIndex = undefined;
|
||||||
|
|
||||||
if (tabs) {
|
if (tabs) {
|
||||||
// make tab polygons
|
// make tab polygons
|
||||||
|
|
@ -136,6 +137,20 @@ CAM.slice = function(settings, widget, onupdate, ondone) {
|
||||||
return shadows[z] = POLY.setZ(shadow, z);
|
return shadows[z] = POLY.setZ(shadow, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setAxisIndex(degrees) {
|
||||||
|
axisIndex = degrees;
|
||||||
|
}
|
||||||
|
|
||||||
|
function addSlices(slices) {
|
||||||
|
if (!Array.isArray(slices)) {
|
||||||
|
slices = [ slices ];
|
||||||
|
}
|
||||||
|
sliceAll.appendAll(slices);
|
||||||
|
if (axisIndex !== undefined) {
|
||||||
|
console.log({post_axis_index: slices});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let state = {
|
let state = {
|
||||||
settings,
|
settings,
|
||||||
widget,
|
widget,
|
||||||
|
|
@ -146,7 +161,8 @@ CAM.slice = function(settings, widget, onupdate, ondone) {
|
||||||
healPolys,
|
healPolys,
|
||||||
shadowAt,
|
shadowAt,
|
||||||
slicer,
|
slicer,
|
||||||
sliceAll,
|
addSlices,
|
||||||
|
setAxisIndex,
|
||||||
updateToolDiams,
|
updateToolDiams,
|
||||||
zBottom,
|
zBottom,
|
||||||
zThru,
|
zThru,
|
||||||
|
|
|
||||||
|
|
@ -565,6 +565,7 @@ const conf = exports({
|
||||||
camStockOffset: true,
|
camStockOffset: true,
|
||||||
camStockClipTo: false,
|
camStockClipTo: false,
|
||||||
camStockIndexed: false,
|
camStockIndexed: false,
|
||||||
|
camIndexAxis: 0,
|
||||||
camStockOn: true,
|
camStockOn: true,
|
||||||
camConventional: false, // outputClockwise
|
camConventional: false, // outputClockwise
|
||||||
outputOriginCenter: false,
|
outputOriginCenter: false,
|
||||||
|
|
|
||||||
|
|
@ -77,10 +77,11 @@ function platformUpdateOrigin() {
|
||||||
space.platform.setRulers(ruler, ruler, 1 / api.view.unit_scale(), 'X', isBelt ? 'Z' : 'Y');
|
space.platform.setRulers(ruler, ruler, 1 / api.view.unit_scale(), 'X', isBelt ? 'Z' : 'Y');
|
||||||
|
|
||||||
let { x, y, z } = origin;
|
let { x, y, z } = origin;
|
||||||
|
let oz = process.camStockIndexed ? z / 2 : z;
|
||||||
if (controller.showOrigin && MODE !== MODES.SLA) {
|
if (controller.showOrigin && MODE !== MODES.SLA) {
|
||||||
space.platform.setOrigin(x, y, z, true);
|
space.platform.setOrigin(x, y, oz, true);
|
||||||
} else {
|
} else {
|
||||||
space.platform.setOrigin(x, y, z,false);
|
space.platform.setOrigin(x, y, oz, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,10 @@ class Widget {
|
||||||
this.setModified();
|
this.setModified();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setIndexed(z) {
|
||||||
|
this.track.indexed = z;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* moves top of widget to given Z
|
* moves top of widget to given Z
|
||||||
*
|
*
|
||||||
|
|
@ -476,6 +480,9 @@ class Widget {
|
||||||
mesh.position.z = -this.track.zcut || 0;
|
mesh.position.z = -this.track.zcut || 0;
|
||||||
this.track.top = mbz;
|
this.track.top = mbz;
|
||||||
}
|
}
|
||||||
|
if (this.track.indexed) {
|
||||||
|
mesh.position.z -= this.track.indexed / 2;
|
||||||
|
}
|
||||||
let ntz = {
|
let ntz = {
|
||||||
pz: pos.z,
|
pz: pos.z,
|
||||||
mpz: mesh.position.z
|
mpz: mesh.position.z
|
||||||
|
|
|
||||||
|
|
@ -938,6 +938,9 @@ th, tr, td, label {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 5px;
|
gap: 5px;
|
||||||
}
|
}
|
||||||
|
#cam-index {
|
||||||
|
grid-column-start: span 2;
|
||||||
|
}
|
||||||
#op-add-list {
|
#op-add-list {
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
||||||
|
|
@ -483,6 +483,7 @@
|
||||||
<i class="fas fa-plus"></i>
|
<i class="fas fa-plus"></i>
|
||||||
<div id="op-add-pop" class="f-col">
|
<div id="op-add-pop" class="f-col">
|
||||||
<div id="op-add-list" class="opdiv op-grid">
|
<div id="op-add-list" class="opdiv op-grid">
|
||||||
|
<div id="cam-index" title="rotate index axis">index</div>
|
||||||
<div id="laser-on" title="turn on laser mode">laser on</div>
|
<div id="laser-on" title="turn on laser mode">laser on</div>
|
||||||
<div id="laser-off" title="turn off laser mode">laser off</div>
|
<div id="laser-off" title="turn off laser mode">laser off</div>
|
||||||
<div title="flip part and load profile for other side for double-sided work">flip</div>
|
<div title="flip part and load profile for other side for double-sided work">flip</div>
|
||||||
|
|
|
||||||
|
|
@ -556,6 +556,10 @@ self.kiri.lang['en-us'] = {
|
||||||
cf_nvrt_s: "z bottom",
|
cf_nvrt_s: "z bottom",
|
||||||
cf_nvrt_l: "invert z bottom setting to follow stock",
|
cf_nvrt_l: "invert z bottom setting to follow stock",
|
||||||
|
|
||||||
|
// CNC INDEX AXIS
|
||||||
|
ci_degr_s: "degrees",
|
||||||
|
ci_degr_l: "degrees to rotate the A (indexed) axis",
|
||||||
|
|
||||||
// CNC LASER
|
// CNC LASER
|
||||||
cl_powr_s: "power",
|
cl_powr_s: "power",
|
||||||
cl_powr_l: "laser power from 0 to 1.0",
|
cl_powr_l: "laser power from 0 to 1.0",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue