Skip to content

Commit 0540d55

Browse files
committed
There should always be an internal region, even if the speed is 100%.
Even if the overhang wall speed is set to 100%, and thus wouldn't normally change, the minimum layer time for overhanging walls (split off from the minimum layer time, which is the whole point of this ticket) still should take effect -- which we can't detect if the merged regions are just one big everything blob. part of CURA-12352
1 parent 1953eb5 commit 0540d55

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/FffGcodeWriter.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3112,14 +3112,16 @@ bool FffGcodeWriter::processInsets(
31123112
{
31133113
AngleDegrees overhang_angle;
31143114
Ratio speed_factor;
3115+
bool chunk = true;
31153116
};
31163117

31173118
// Create raw speed regions
31183119
const AngleDegrees overhang_step = (90.0 - wall_overhang_angle) / static_cast<double>(overhang_angles_count);
31193120
std::vector<SpeedRegion> speed_regions;
31203121
speed_regions.reserve(overhang_angles_count + 1);
31213122

3122-
speed_regions.push_back(SpeedRegion{ wall_overhang_angle, 1.0_r }); // Initial internal region, always 100% speed factor
3123+
constexpr bool dont_chunk_first = false;
3124+
speed_regions.push_back(SpeedRegion{ wall_overhang_angle, 1.0_r, dont_chunk_first }); // Initial internal region, always 100% speed factor
31233125

31243126
for (size_t angle_index = 1; angle_index <= overhang_angles_count; ++angle_index)
31253127
{
@@ -3136,7 +3138,7 @@ bool FffGcodeWriter::processInsets(
31363138
| ranges::views::chunk_by(
31373139
[](const auto& region_a, const auto& region_b)
31383140
{
3139-
return region_a.speed_factor == region_b.speed_factor;
3141+
return region_a.chunk && region_b.chunk && region_a.speed_factor == region_b.speed_factor;
31403142
});
31413143

31423144
// If finally necessary, add actual calculated speed regions

0 commit comments

Comments
 (0)