Follow-up to 0161a59a93
: Too big epsilon created tiny unconnected extrusions, so epsilon was changed to the smallest value that allows resolving rounding issues after division by two.
This commit is contained in:
parent
4fa76b2d8b
commit
17e7b182ee
@ -2029,10 +2029,10 @@ void SkeletalTrapezoidation::generateJunctions(ptr_vector_t<BeadingPropagation>&
|
|||||||
for (junction_idx = (std::max(size_t(1), beading->toolpath_locations.size()) - 1) / 2; junction_idx < num_junctions; junction_idx--)
|
for (junction_idx = (std::max(size_t(1), beading->toolpath_locations.size()) - 1) / 2; junction_idx < num_junctions; junction_idx--)
|
||||||
{
|
{
|
||||||
coord_t bead_R = beading->toolpath_locations[junction_idx];
|
coord_t bead_R = beading->toolpath_locations[junction_idx];
|
||||||
// toolpath_locations computed inside DistributedBeadingStrategy be off by 1 because of rounding errors.
|
// toolpath_locations computed inside DistributedBeadingStrategy could be off by 1 because of rounding errors.
|
||||||
// In GH issue #8472, these roundings errors caused missing the middle extrusion.
|
// In GH issue #8472, these roundings errors caused missing the middle extrusion.
|
||||||
// Adding some epsilon should help resolve those cases.
|
// Adding small epsilon should help resolve those cases.
|
||||||
if (bead_R <= start_R + scaled<coord_t>(0.005))
|
if (bead_R <= start_R + 1)
|
||||||
{ // Junction coinciding with start node is used in this function call
|
{ // Junction coinciding with start node is used in this function call
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user