diff --git a/src/sliceActions/addBrim.js b/src/sliceActions/addBrim.js index 6307e9b..f3e7627 100644 --- a/src/sliceActions/addBrim.js +++ b/src/sliceActions/addBrim.js @@ -27,9 +27,10 @@ export default function addBrim(slices, settings) { })) ), new Shape([], true)).simplify('pftNonZero'); - firstLayer.brim = []; + firstLayer.brim = new Shape([], true); + for (let offset = 0; offset < brimSize; offset += nozzleDiameter) { const brimPart = brim.offset(offset, offsetOptions); - firstLayer.brim.unshift(brimPart); + firstLayer.brim = firstLayer.brim.join(brimPart); } } diff --git a/src/sliceActions/optimizePaths.js b/src/sliceActions/optimizePaths.js index 7def91d..661e7e0 100644 --- a/src/sliceActions/optimizePaths.js +++ b/src/sliceActions/optimizePaths.js @@ -7,13 +7,9 @@ export default function optimizePaths(slices, settings) { for (let layer = 0; layer < slices.length; layer ++) { const slice = slices[layer]; - if (typeof slice.brim !== 'undefined') { - for (let i = 0; i < slice.brim.length; i ++) { - if (slice.brim[i].paths.length > 0) { - slice.brim[i] = optimizeShape(slice.brim[i], start); - start.copy(slice.brim[i].lastPoint(true)); - } - } + if (typeof slice.brim !== 'undefined' && slice.brim.paths.length > 0) { + slice.brim = optimizeShape(slice.brim, start); + start.copy(slice.brim.lastPoint(true)); } const parts = []; diff --git a/src/sliceActions/removePrecision.js b/src/sliceActions/removePrecision.js index a237a06..2ecd8df 100644 --- a/src/sliceActions/removePrecision.js +++ b/src/sliceActions/removePrecision.js @@ -25,9 +25,7 @@ export default function removePrecision(slices) { slice.support.scaleDown(inversePrecision); } if (typeof slice.brim !== 'undefined') { - for (let i = 0; i < slice.brim.length; i ++) { - slice.brim[i].scaleDown(inversePrecision); - } + slice.brim.scaleDown(inversePrecision); } } } diff --git a/src/sliceActions/slicesToGCode.js b/src/sliceActions/slicesToGCode.js index 049bab5..cbc38a2 100644 --- a/src/sliceActions/slicesToGCode.js +++ b/src/sliceActions/slicesToGCode.js @@ -48,9 +48,7 @@ export default function slicesToGCode(slices, settings) { }, {}); if (typeof slice.brim !== 'undefined') { - for (let i = 0; i < slice.brim.length; i ++) { - pathToGCode(null, false, gcode, slice.brim[i], false, false, z, profiles.brim); - } + pathToGCode(null, false, gcode, slice.brim, true, true, z, profiles.brim); } for (let i = 0; i < slice.parts.length; i ++) {