From 1e1f47868dc0e90498807f06722f1a8c1945eddc Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sat, 5 Feb 2022 14:50:33 -0500 Subject: [PATCH] create proper Output class. clone brim to current z when output --- src/kiri-mode/fdm/prepare.js | 4 +++- src/kiri/print.js | 31 ++++++++++++++++++++++--------- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/kiri-mode/fdm/prepare.js b/src/kiri-mode/fdm/prepare.js index 77475e43..c4d08d87 100644 --- a/src/kiri-mode/fdm/prepare.js +++ b/src/kiri-mode/fdm/prepare.js @@ -570,7 +570,9 @@ // draft shield if (layerno > 0 && brimout && draftShield) { print.setType('brim'); - print.addPrintPoints(brimout, layerout, null); + print.addPrintPoints(brimout.map(o => o.clone(printPoint.z)), layerout, null); + layerout.last().retract = true; + printPoint = layerout.last().point; } // if a declared extruder isn't used in a layer, use selected diff --git a/src/kiri/print.js b/src/kiri/print.js index 3bc14737..5d065f03 100644 --- a/src/kiri/print.js +++ b/src/kiri/print.js @@ -413,15 +413,28 @@ return a !== undefined ? a : b; } - /** - * @constructor - */ - function Output(point, emit, speed, tool, type) { - this.point = point; // point to emit - this.emit = emit; // emit (feed for printers, power for lasers, cut for cam) - this.speed = speed; - this.tool = tool; - this.type = type; + class Output { + constructor(point, emit, speed, tool, type) { + this.point = point; // point to emit + this.emit = emit; // emit (feed for printers, power for lasers, cut for cam) + this.speed = speed; + this.tool = tool; + this.type = type; + } + + clone(z) { + let o = new Output( + this.point.clone(), + this.emit, + this.speed, + this.tool, + this.type + ); + if (z !== undefined) { + o.point.setZ(z); + } + return o; + } } function setType(type) {