fix: unit scale when visual z set, gcode import origin, negative level z order

This commit is contained in:
Stewart Allen 2026-01-14 10:30:34 -05:00
commit 672b3d1077
5 changed files with 12 additions and 6 deletions

View file

@ -587,7 +587,7 @@ export function zPlaneSelect({ which, onselect }) {
}
clearPops();
zPlaneStart(which, value => {
onselect(parseFloat(value));
onselect(parseFloat(value) / api.view.unit_scale());
});
}

View file

@ -79,6 +79,8 @@ export function cam_export(print, online) {
time: 0
};
// console.log({ offset, origin, stock });
function section(section) {
append();
online({ section });

View file

@ -27,6 +27,9 @@ class OpLevel extends CamOp {
let zBot = zTop - down;
let zList = stepz && down ? util.lerp(zTop, zBot, stepz) : [ zBot ];
// ensure zList is descending
zList.sort((a,b) => b - a);
if (share.ran) {
console.log('skip');
this.skip = true;
@ -49,6 +52,7 @@ class OpLevel extends CamOp {
POLY.fillArea(clear, 1090, stepOver, points);
let layers = this.layers = [];
for (let z of zList) {
let lines = [];
layers.push(lines);

View file

@ -567,7 +567,7 @@ export async function prepare_one(widget, settings, print, firstPoint, update) {
} else
// otherwise move over before descending
if (deltaZ <= -tolerance) {
if (debug) console.log('over before descend');
if (debug) console.log('over before descend', deltaZ, -tolerance);
layerPush(point.clone().setZ(printPoint.z), 0, 0, tool);
newLayer();
}
@ -636,7 +636,7 @@ export async function prepare_one(widget, settings, print, firstPoint, update) {
// plunge safety catch
if (deltaZ < 0 && !contouring) {
if (debug) console.log('deltaZ snap', rate, plungeRate);
if (debug) console.log('plunge safety', deltaZ, rate, plungeRate);
emit = 1;
rate = plungeRate;
}

View file

@ -586,9 +586,9 @@ const dispatch = {
const { process } = settings;
const origin = settings.origin;
const offset = {
x: origin.x - (process.camOriginOffX ?? 0),
y: -origin.y - (process.camOriginOffY ?? 0),
z: origin.z - (process.camOriginOffZ ?? 0)
x: origin.x,// - (process.camOriginOffX ?? 0),
y: -origin.y,// - (process.camOriginOffY ?? 0),
z: origin.z,// + (process.camOriginOffZ ?? 0)
};
const device = settings.device;
const print = setPrint(newPrint(settings, Object.values(wcache)));