diff --git a/src/kiri/conf.js b/src/kiri/conf.js index f47753fd..0c7f2acf 100644 --- a/src/kiri/conf.js +++ b/src/kiri/conf.js @@ -373,6 +373,7 @@ outputCoastDist: 0, outputPurgeTower: true, outputBeltFirst: false, + outputAvoidGaps: true, outputLayerRetract: false, outputOriginCenter: true, outputLoops: 0, diff --git a/src/kiri/init.js b/src/kiri/init.js index 2846b6e0..aefc4961 100644 --- a/src/kiri/init.js +++ b/src/kiri/init.js @@ -1851,6 +1851,7 @@ sliceLayerStart: UC.newSelect(LANG.sl_strt_s, {title:LANG.sl_strt_l, modes:FDM}, "start"), fdmSep: UC.newBlank({class:"pop-sep", modes:FDM}), outputLayerRetract: UC.newBoolean(LANG.ad_lret_s, onBooleanClick, {title:LANG.ad_lret_l, modes:FDM}), + outputAvoidGaps: UC.newBoolean(LANG.ad_agap_s, onBooleanClick, {title:LANG.ad_agap_l, modes:FDM}), outputBeltFirst: UC.newBoolean(LANG.ad_lbir_s, onBooleanClick, {title:LANG.ad_lbir_l, show: isBelt, modes:FDM}), camConventional: UC.newBoolean(LANG.ou_conv_s, onBooleanClick, {title:LANG.ou_conv_l, modes:CAM}), camEaseDown: UC.newBoolean(LANG.cr_ease_s, onBooleanClick, {title:LANG.cr_ease_l, modes:CAM}), diff --git a/src/kiri/print.js b/src/kiri/print.js index 025a9ff1..d2b8448d 100644 --- a/src/kiri/print.js +++ b/src/kiri/print.js @@ -590,7 +590,7 @@ }); }); // if intersecting, look for a route around - if (int && opt.danger) { + if (int && opt.routeAround) { return !routeAround(p1, p2); } return int; diff --git a/src/mode/fdm/prepare.js b/src/mode/fdm/prepare.js index 5e15a680..1f54ffda 100644 --- a/src/mode/fdm/prepare.js +++ b/src/mode/fdm/prepare.js @@ -393,6 +393,7 @@ offset, layerout, { + routeAround: process.outputAvoidGaps, seedPoint: printPoint.sub(offset), danger: isDanger, params, // range parameters diff --git a/web/kiri/lang/en.js b/web/kiri/lang/en.js index 0d5f31a9..d041fa97 100644 --- a/web/kiri/lang/en.js +++ b/web/kiri/lang/en.js @@ -614,6 +614,8 @@ kiri.lang['en-us'] = { ad_lbir_l: ["always print shells touching the","belt before any other shells"], ad_lret_s: "layer retract", ad_lret_l: ["force filament retraction","between layers"], + ad_agap_s: "avoid gaps", + ad_agap_l: ["route around gaps rather","than perform a retract","when possible"], ad_play_s: "polish layers", ad_play_l: ["polish up to specified","# of layers at a time"], ad_pspd_s: "polish speed",