mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-08-31 05:47:02 +00:00
FIX: Top surface bridging fail on 3DHC & FL infill
Add 45 degree angle offset when processing the bridge. Need to raise infill_direction to invalidate posPrepareInfill jira: 6774 Change-Id: I5e6bef3aa814b01c5f30398ac745937a67e3ef4c (cherry picked from commit 7b12cab10b88f432a11414f8caa1c6427777a1ba)
This commit is contained in:
@@ -196,7 +196,7 @@ void FillFlippingLine ::_fill_surface_single(
|
|||||||
coord_t line_spacing = coord_t(scale_(this->spacing) / params.density);
|
coord_t line_spacing = coord_t(scale_(this->spacing) / params.density);
|
||||||
|
|
||||||
// reduce density
|
// reduce density
|
||||||
if (params.density < 0.999) line_spacing *= 1.5;
|
if (params.density < 0.999) line_spacing *= 1.08;
|
||||||
|
|
||||||
bb.merge(align_to_grid(bb.min, Point(line_spacing * 4, line_spacing * 4)));
|
bb.merge(align_to_grid(bb.min, Point(line_spacing * 4, line_spacing * 4)));
|
||||||
|
|
||||||
|
|||||||
@@ -2333,9 +2333,17 @@ void PrintObject::bridge_over_infill()
|
|||||||
};
|
};
|
||||||
|
|
||||||
// LAMBDA do determine optimal bridging angle
|
// LAMBDA do determine optimal bridging angle
|
||||||
auto determine_bridging_angle = [](const Polygons &bridged_area, const Lines &anchors, InfillPattern dominant_pattern) {
|
auto determine_bridging_angle = [](const Polygons &bridged_area, const Lines &anchors, InfillPattern dominant_pattern, double infill_direction) {
|
||||||
AABBTreeLines::LinesDistancer<Line> lines_tree(anchors);
|
AABBTreeLines::LinesDistancer<Line> lines_tree(anchors);
|
||||||
|
|
||||||
|
// Check it the infill that require a fixed infill angle.
|
||||||
|
switch (dominant_pattern) {
|
||||||
|
case ip3DHoneycomb:
|
||||||
|
case ipFlippingLine:
|
||||||
|
return (infill_direction + 45.0) * 2.0 * M_PI / 360.;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
|
||||||
std::map<double, int> counted_directions;
|
std::map<double, int> counted_directions;
|
||||||
for (const Polygon &p : bridged_area) {
|
for (const Polygon &p : bridged_area) {
|
||||||
double acc_distance = 0;
|
double acc_distance = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user