From 69f20f711f54e8c268c30dae7ca712b289d5d961 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Mon, 14 Feb 2022 18:52:29 -0500 Subject: [PATCH] allow raft and brim/shield to co-exist --- src/kiri-mode/fdm/prepare.js | 12 +++++++----- src/kiri/init.js | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/kiri-mode/fdm/prepare.js b/src/kiri-mode/fdm/prepare.js index 3c3b65f9..1a80bcd5 100644 --- a/src/kiri-mode/fdm/prepare.js +++ b/src/kiri-mode/fdm/prepare.js @@ -119,14 +119,17 @@ // if raft is specified if (process.outputRaft) { let offset = newPoint(0,0,0), - height = nozzle; + height = nozzle, + rafts = process.outputBrimCount ? + POLY.expand(brims, nozzle * 4, 0, null, 1) : brims; + // cause first point of raft to be used printPoint = null; let raft = function(height, angle, spacing, speed, extrude) { let slice = KIRI.newSlice(zoff + height / 2); - brims.forEach(function(brim) { + rafts.forEach(function(brim) { // use first point of first brim as start point if (printPoint === null) printPoint = brim.first(); let t = slice.addTop(brim); @@ -163,9 +166,8 @@ // retract after last raft layer output.last().last().retract = true; } - // raft excludes brims - else - // if using brim vs raft + + // if using brim or skirt if (process.outputBrimCount) { let polys = [], preout = []; diff --git a/src/kiri/init.js b/src/kiri/init.js index f93fb844..f8135628 100644 --- a/src/kiri/init.js +++ b/src/kiri/init.js @@ -1786,9 +1786,9 @@ outputBrimCount: UC.newInput(LANG.fl_skrt_s, {title:LANG.fl_skrt_l, convert:UC.toInt, modes:FDM, show:isNotBelt}), outputBrimOffset: UC.newInput(LANG.fl_skro_s, {title:LANG.fl_skro_l, convert:UC.toFloat, modes:FDM, show:isNotBelt}), fdmSep: UC.newBlank({class:"pop-sep", modes:FDM, show:isNotBelt}), - outputDraftShield: UC.newBoolean(LANG.fr_draf_s, onBooleanClick, {title:LANG.fr_draf_l, modes:FDM, trigger: true, show:() => !UI.outputRaft.checked && isNotBelt()}), outputRaftSpacing: UC.newInput(LANG.fr_spac_s, {title:LANG.fr_spac_l, convert:UC.toFloat, bound:UC.bound(0.0,3.0), modes:FDM, show: () => UI.outputRaft.checked && isNotBelt() }), - outputRaft: UC.newBoolean(LANG.fr_nabl_s, onBooleanClick, {title:LANG.fr_nabl_l, modes:FDM, trigger: true, show:() => !UI.outputDraftShield.checked && isNotBelt()}), + outputRaft: UC.newBoolean(LANG.fr_nabl_s, onBooleanClick, {title:LANG.fr_nabl_l, modes:FDM, trigger: true, show:() => isNotBelt()}), + outputDraftShield: UC.newBoolean(LANG.fr_draf_s, onBooleanClick, {title:LANG.fr_draf_l, modes:FDM, trigger: true, show:() => isNotBelt()}), fdmInfill: UC.newGroup(LANG.fi_menu, $('settings'), {modes:FDM}), sliceFillType: UC.newSelect(LANG.fi_type, {modes:FDM, trigger:true}, "infill"),