diff --git a/src/kiri-mode/cam/client.js b/src/kiri-mode/cam/client.js
index 6a52b451..6bb111a2 100644
--- a/src/kiri-mode/cam/client.js
+++ b/src/kiri-mode/cam/client.js
@@ -509,7 +509,7 @@ CAM.init = function(kiri, api) {
let clazz = notime ? [ "draggable", "notime" ] : [ "draggable" ];
let notable = rec.note ? rec.note.split(' ').filter(v => v.charAt(0) === '#') : undefined;
if (clock) { clazz.push('clock'); title = ` title="end of ops chain\ndrag/drop like an op\nops after this are disabled"` }
- if (notable?.length) label = notable[0].slice(1);
+ if (notable?.length) label += ` (${notable[0].slice(1)})`;
html.appendAll([
`
`,
`
`,
diff --git a/src/kiri-mode/cam/ops.js b/src/kiri-mode/cam/ops.js
index 09cdd6d9..68f144e4 100644
--- a/src/kiri-mode/cam/ops.js
+++ b/src/kiri-mode/cam/ops.js
@@ -963,6 +963,7 @@ class OpTrace extends CamOp {
}
// generate tracing offsets from chosen features
let zTop = workarea.top_z;
+ let zBottom = workarea.bottom_z;
let sliceOut = this.sliceOut = [];
let areas = op.areas[widget.id] || [];
let camTool = new CAM.Tool(settings, tool);
@@ -993,6 +994,9 @@ class OpTrace extends CamOp {
sliceOut.push(slice);
return slice;
}
+ function minZ(z) {
+ return op.bottom && zBottom ? Math.max(zBottom, z - thru) : z - thru;
+ }
function followZ(poly) {
if (op.dogbone) {
CAM.addDogbones(poly, toolDiam / 5, !op.revbone);
@@ -1119,7 +1123,7 @@ class OpTrace extends CamOp {
}
for (let pi of POLY.flatten(poly, [], true))
if (down) {
- let zto = pi.getZ() - thru;
+ let zto = minZ(pi.getZ());
if (zThru && similar(zto,0)) {
zto -= zThru;
}
@@ -1147,10 +1151,7 @@ class OpTrace extends CamOp {
const zbo = widget.track.top - widget.track.box.d;
let zmap = {};
for (let poly of polys) {
- let z = poly.getZ() - thru;
- if (op.bottom && camZBottom) {
- z = Math.max(z, camZBottom) - zbo;
- }
+ let z = minZ(poly.getZ());
if (offover) {
let pnew = POLY.offset([poly], -offover, { minArea: 0, open: true });
if (pnew) {
diff --git a/src/kiri/ui.js b/src/kiri/ui.js
index d891e810..3678d037 100644
--- a/src/kiri/ui.js
+++ b/src/kiri/ui.js
@@ -132,7 +132,7 @@ gapp.register("kiri.ui", [], (root, exports) => {
if (Array.isArray(input)) {
iid = `confirm-input-${rnd}`;
html.append(`
`);
- } else if (input) {
+ } else if (input !== undefined) {
iid = `confirm-input-${rnd}`;
html.append(`
`);
}