Skip to content

Commit 9d439fc

Browse files
committed
fix: don't always fill perimeter gaps between inner wall and skin/infill (CURA-4027, CURA-4251)
this solves a problem that too many gaps are filled when alternate extra wall is enabled or when the initial layer line width is larger if the infill pattern is concentric
1 parent ca618d9 commit 9d439fc

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/FffPolygonGenerator.cpp

+8-4
Original file line numberDiff line numberDiff line change
@@ -432,12 +432,16 @@ 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;
439435
for (unsigned int layer_nr = 0; layer_nr < mesh.layers.size(); layer_nr++)
440436
{
437+
const ExtruderTrain& train_wall_x = *storage.meshgroup->getExtruderTrain(mesh.getSettingAsExtruderNr("wall_x_extruder_nr"));
438+
bool fill_gaps_between_inner_wall_and_skin_or_infill =
439+
mesh.getSettingInMicrons("infill_line_distance") > 0
440+
&& !mesh.getSettingBoolean("infill_hollow")
441+
&& mesh.getSettingInMicrons("infill_overlap_mm") >= 0
442+
&& !(mesh.getSettingAsFillMethod("infill_pattern") == EFillMethod::CONCENTRIC
443+
&& (mesh.getSettingBoolean("alternate_extra_perimeter") || (layer_nr == 0 && train_wall_x.getSettingInPercentage("initial_layer_line_width_factor") > 100))
444+
);
441445
SliceLayer& layer = mesh.layers[layer_nr];
442446
coord_t wall_line_width_0 = mesh.getSettingInMicrons("wall_line_width_0");
443447
coord_t wall_line_width_x = mesh.getSettingInMicrons("wall_line_width_x");

0 commit comments

Comments
 (0)