FIX: Alternating change of wall layers

must be double walls between a double wall and another double wall, or it's easy to break with low strength filament

Change-Id: I2bb3a3b77e7ea964d2e94aaf7407449b86df84b2
This commit is contained in:
jiaxi.chen 2025-01-16 15:18:48 +08:00 committed by lane.wei
parent 76a1ea21d5
commit f9a4581e42

View File

@ -3352,13 +3352,18 @@ void TreeSupport::smooth_nodes()
std::swap(pts, pts1); std::swap(pts, pts1);
std::swap(radii, radii1); std::swap(radii, radii1);
} }
else { }
// interpolate need_extra_wall in the end // interpolate need_extra_wall in the end
for (size_t i = 1; i < branch.size() - 1; i++) { int idx_first_double_wall = -1;
if (branch[i - 1]->need_extra_wall && branch[i + 1]->need_extra_wall) int idx_last_double_wall = -1;
branch[i]->need_extra_wall = true; for (size_t i = 0; i < pts.size(); i++) {
if (branch[i]->need_extra_wall) {
if (idx_first_double_wall < 0) idx_first_double_wall = i;
idx_last_double_wall = i;
} }
} }
if (idx_last_double_wall >= 0 && idx_first_double_wall >= 0 && idx_last_double_wall > idx_first_double_wall) {
for (size_t i = idx_first_double_wall + 1; i < idx_last_double_wall; i++) branch[i]->need_extra_wall = true;
} }
} }
} }