File tree Expand file tree Collapse file tree 1 file changed +16
-1
lines changed
Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -432,6 +432,10 @@ void FffPolygonGenerator::processPerimeterGaps(SliceDataStorage& storage)
432432 {
433433 continue ;
434434 }
435+ bool fill_gaps_between_inner_wall_and_skin_or_infill =
436+ mesh.getSettingInMicrons (" infill_line_distance" ) > 0
437+ && !mesh.getSettingBoolean (" infill_hollow" )
438+ && mesh.getSettingInMicrons (" infill_overlap_mm" ) >= 0 ;
435439 for (unsigned int layer_nr = 0 ; layer_nr < mesh.layers .size (); layer_nr++)
436440 {
437441 SliceLayer& layer = mesh.layers [layer_nr];
@@ -458,7 +462,18 @@ void FffPolygonGenerator::processPerimeterGaps(SliceDataStorage& storage)
458462 }
459463
460464 // gap between inner wall and skin/infill
461- // are note handled. There might be gaps due to alternate extra perimeter or due to initial layer line width multiplier
465+ if (fill_gaps_between_inner_wall_and_skin_or_infill && part.insets .size () > 0 )
466+ {
467+ const Polygons outer = part.insets .back ().offset (-1 * line_width / 2 - perimeter_gaps_extra_offset);
468+
469+ Polygons inner = part.infill_area ;
470+ for (const SkinPart& skin_part : part.skin_parts )
471+ {
472+ inner.add (skin_part.outline );
473+ }
474+ inner = inner.unionPolygons ();
475+ part.perimeter_gaps .add (outer.difference (inner));
476+ }
462477
463478 // add perimeter gaps for skin insets
464479 for (SkinPart& skin_part : part.skin_parts )
You can’t perform that action at this time.
0 commit comments