From 423049d8866e4f1aba0a7053a42725cc780a4289 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Tue, 25 Oct 2022 20:23:53 -0400 Subject: [PATCH] add sliceSupportGrow to help merge close supports --- src/kiri-mode/fdm/slice.js | 6 +++++- src/kiri/conf.js | 1 + src/kiri/init.js | 3 ++- web/kiri/lang/en.js | 2 ++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/kiri-mode/fdm/slice.js b/src/kiri-mode/fdm/slice.js index f7d7a2ca..fd25ee01 100644 --- a/src/kiri-mode/fdm/slice.js +++ b/src/kiri-mode/fdm/slice.js @@ -778,7 +778,11 @@ FDM.slice = function(settings, widget, onupdate, ondone) { forSlices(0.5, promises ? 0.6 : 0.7, slice => { let params = slice.params || process; let density = params.sliceSupportDensity; - let supports = slice.supports = slice.topShells(); + let supports = slice.topShells(); + if (params.sliceSupportGrow > 0) { + supports = POLY.expand(supports, params.sliceSupportGrow, slice.z, []); + } + slice.supports = supports; slice.tops = undefined; // remove outline leave only supports let polys = []; if (density) { diff --git a/src/kiri/conf.js b/src/kiri/conf.js index 1e88462d..ef93dff6 100644 --- a/src/kiri/conf.js +++ b/src/kiri/conf.js @@ -318,6 +318,7 @@ const conf = exports({ sliceSupportSize: 5, sliceSupportArea: 0.1, sliceSupportSpan: 5, + sliceSupportGrow: 0, sliceSupportExtra: 0, sliceSupportAngle: 50, sliceSupportNozzle: 0, diff --git a/src/kiri/init.js b/src/kiri/init.js index b32c81c9..59ddd96d 100644 --- a/src/kiri/init.js +++ b/src/kiri/init.js @@ -1870,7 +1870,8 @@ gapp.register("kiri.init", [], (root, exports) => { sliceSupportGap: uc.newInput(LANG.sp_gaps_s, {title:LANG.sp_gaps_l, bound:uc.bound(0,5), convert:uc.toInt, modes:FDM}), fdmSep: uc.newBlank({class:"pop-sep", modes:FDM}), sliceSupportArea: uc.newInput(LANG.sp_area_s, {title:LANG.sp_area_l, bound:uc.bound(0.0,200.0), convert:uc.toFloat, modes:FDM}), - sliceSupportExtra: uc.newInput(LANG.sp_xpnd_s, {title:LANG.sp_xpnd_l, bound:uc.bound(0.0,200.0), convert:uc.toFloat, modes:FDM}), + sliceSupportExtra: uc.newInput(LANG.sp_xpnd_s, {title:LANG.sp_xpnd_l, bound:uc.bound(0.0,10.0), convert:uc.toFloat, modes:FDM}), + sliceSupportGrow: uc.newInput(LANG.sp_grow_s, {title:LANG.sp_grow_l, bound:uc.bound(0.0,10.0), convert:uc.toFloat, modes:FDM}), fdmSep: uc.newBlank({class:"pop-sep", modes:FDM}), sliceSupportAngle: uc.newInput(LANG.sp_angl_s, {title:LANG.sp_angl_l, bound:uc.bound(0.0,90.0), convert:uc.toFloat, modes:FDM}), sliceSupportSpan: uc.newInput(LANG.sp_span_s, {title:LANG.sp_span_l, bound:uc.bound(0.0,200.0), convert:uc.toFloat, modes:FDM, show:() => ui.sliceSupportEnable.checked}), diff --git a/web/kiri/lang/en.js b/web/kiri/lang/en.js index d76bb7e9..169420d8 100644 --- a/web/kiri/lang/en.js +++ b/web/kiri/lang/en.js @@ -417,6 +417,8 @@ self.kiri.lang['en-us'] = { sp_area_l: ["minimum area for","a support column","in millimeters","smaller values will","slow detection"], sp_xpnd_s: "expand", sp_xpnd_l: ["expand support area","beyond part boundary","in millimeters"], + sp_grow_s: "grow", + sp_grow_l: ["grow support column to fill small gaps","in millimeters"], sp_nozl_s: "extruder", sp_nozl_l: ["in multi-extruder systems","the extruder to use for","support material"], sp_outl_s: "outline",