From f27605eac166d36b79f4db8890cd38f19adc1fc2 Mon Sep 17 00:00:00 2001 From: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> Date: Tue, 27 Jan 2026 19:12:18 -0300 Subject: [PATCH] 3d honeycomb bug fix (with infill combination) improve bridge direction (#12062) * fill 3d honeycomb bugfix * fix bridges Co-Authored-By: tome9111991 <57866234+tome9111991@users.noreply.github.com> * Fix typo * cleaning * Remove bridging angle adjustment for ip3DHoneycomb * Adjust layer height scaling for infill consistency * PR comments --------- Co-authored-by: tome9111991 <57866234+tome9111991@users.noreply.github.com> --- src/libslic3r/Fill/Fill3DHoneycomb.cpp | 6 ++++-- src/libslic3r/PrintObject.cpp | 15 +++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/libslic3r/Fill/Fill3DHoneycomb.cpp b/src/libslic3r/Fill/Fill3DHoneycomb.cpp index de4aaeacd3..6429a81073 100644 --- a/src/libslic3r/Fill/Fill3DHoneycomb.cpp +++ b/src/libslic3r/Fill/Fill3DHoneycomb.cpp @@ -224,7 +224,9 @@ void Fill3DHoneycomb::_fill_surface_single( // This means that the resultant infill won't be an ideal truncated octahedron, // but it should look better than the equivalent quantised version - coordf_t layerHeight = scale_(thickness_layers); + //Orca: uses a fixed layer height to avoid inconsistent bridges and variable layer height artifacts. + //coordf_t layerHeight = scale_(thickness_layers); + coordf_t layerHeight = scale_(1.0); // ceiling to an integer value of layers per Z // (with a little nudge in case it's close to perfect) coordf_t layersPerModule = floor((gridSize * 2) / (zScale * layerHeight) + 0.05); @@ -300,4 +302,4 @@ void Fill3DHoneycomb::_fill_surface_single( } } -} // namespace Slic3r \ No newline at end of file +} // namespace Slic3r diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 4b4237dca1..fc68fce76b 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -2615,13 +2615,16 @@ void PrintObject::bridge_over_infill() auto determine_bridging_angle = [](const Polygons &bridged_area, const Lines &anchors, InfillPattern dominant_pattern, double infill_direction) { AABBTreeLines::LinesDistancer lines_tree(anchors); + // Orca: since 3D Honeycomb was "fixed" by forcing coordf_t layerHeight = scale_(1.0), this is no longer needed. + // CorssHatch also does not need fixed angle. + // // Check it the infill that require a fixed infill angle. - switch (dominant_pattern) { - case ip3DHoneycomb: - case ipCrossHatch: - return (infill_direction + 45.0) * 2.0 * M_PI / 360.; - default: break; - } + //switch (dominant_pattern) { + //case ip3DHoneycomb: + //case ipCrossHatch: + // return (infill_direction + 45.0) * 2.0 * M_PI / 360.; + //default: break; + //} std::map counted_directions; for (const Polygon &p : bridged_area) {