diff --git a/src/kiri/mode/cam/op-area.js b/src/kiri/mode/cam/op-area.js index ed80252e..ee274dd0 100644 --- a/src/kiri/mode/cam/op-area.js +++ b/src/kiri/mode/cam/op-area.js @@ -76,7 +76,9 @@ class OpArea extends CamOp { let poly = newPolygon().fromArray(arr); aminz = Math.min(aminz, poly.minZ()); polys.push(poly); - if (axisIndex) { + // user-selected traces are not rotated + // those based on shadow (outline, rough) are + if (!op.rotated && axisIndex) { // traces come from unrotatead widget edges poly.applyRotations(axisIndex); } diff --git a/src/kiri/mode/cam/op-outline.js b/src/kiri/mode/cam/op-outline.js index 1d995719..19c17fb2 100644 --- a/src/kiri/mode/cam/op-outline.js +++ b/src/kiri/mode/cam/op-outline.js @@ -39,6 +39,7 @@ class OpOutline extends CamOp { rate, rename: rename ?? "outline", revbones, + rotated: true, smooth: 0, spindle, steps: op.wide ? op.steps + 1 : 1, @@ -66,6 +67,7 @@ class OpOutline extends CamOp { rate, rename: rename ?? "outline", revbones, + rotated: true, smooth: 0, spindle, surfaces: {}, diff --git a/src/kiri/mode/cam/op-rough.js b/src/kiri/mode/cam/op-rough.js index 8a1800bc..153a206c 100644 --- a/src/kiri/mode/cam/op-rough.js +++ b/src/kiri/mode/cam/op-rough.js @@ -48,6 +48,7 @@ class OpRough extends CamOp { leave_z: op.leavez, ov_botz: op.ov_botz, ov_topz: op.ov_topz, + rotated: true, areas: { [widget.id]: areas.map(p => p.toArray()) }, surfaces: {} })); @@ -72,6 +73,7 @@ class OpRough extends CamOp { leave_z: op.leavez, ov_botz: op.ov_botz, ov_topz: op.ov_topz, + rotated: true, areas: { [widget.id]: areas.map(p => p.toArray()) }, surfaces: {}, flats: Object.keys(slicer.zFlat).map(v => parseFloat(v)).sort((a,b) => b-a), @@ -96,6 +98,7 @@ class OpRough extends CamOp { outline: !op.omitthru, ov_botz: op.ov_botz, ov_topz: op.ov_topz, + rotated: true, areas: { [widget.id]: areas.map(p => p.toArray()) }, surfaces: {}, thru: true