Ultimaker/CuraEngine

[5.x.x] Bug with random CW/CCW wall directions in thin walls

Dogm opened this issue · 0 comments

Dogm commented

Application Version
[5.3.0], [5.2.2], [5.1.0] all 5.x.x

Platform
Tested on Windows but most likely relevant for all platforms

Steps to Reproduce

  1. use Thing 0.4 mm thin wall (https://www.thingiverse.com/thing:173992/files)
  2. use Ultimaker S5 printer profile with all defaults and Print cores AA 0.4 on both nozzles
  3. load model into platform
  4. scale only Z coord up to 100mm long
  5. rotate about the Z axis so that the sharp edge looks at the back of the platform
  6. configure quality profile fast 0.2 mm
  7. configure Z seam alignment (User specified) and by default Z seam position (back) - this just for fixed seam position
  8. slice + preview
  9. use (layer progress bar) for check every layer
  10. check several last movements ( 2-3 from layer progress bar) on every layers for see about different CW->CCW direction of wall walk
  • Each new slice you will have another pool of layers with CW->CCW changed directions.

Layer 483 CW - ok
image

Layer 482 CW - ok
image

Layer 481 CCW - bad
image

Layer 480 CW - ok
image

Layer 479 CW - ok
image

Actual Results
Results affect on real print quality - non-uniform layers of the outer wall at different heights in the printed model.
All thin walls affected this bug.

Expected results
All external walls must be CW direction

Additional Information
I investigated in the engine what exactly affects such a random change of direction.
In my opinion, the problem is in the call cascade in the file

  • \src\SkeletalTrapezoidation.cpp
    • SkeletalTrapezoidation::generateToolpaths()

Which use

  • .conan.......\include\boost\polygon\voronoi_diagram.hpp

Normal CW polygons data formed from a clipper enters this class
and in output in generated_toolpaths there are already random changes in directions

I think the problem is the competitiveness of the outer walls and the inner hole in this file.