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--)
|
||||
{
|
||||
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.
|
||||
// Adding some epsilon should help resolve those cases.
|
||||
if (bead_R <= start_R + scaled<coord_t>(0.005))
|
||||
// Adding small epsilon should help resolve those cases.
|
||||
if (bead_R <= start_R + 1)
|
||||
{ // Junction coinciding with start node is used in this function call
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user