Ultimaker / CuraEngine

Powerful, fast and robust engine for converting 3D models into g-code instructions for 3D printers. It is part of the larger open source project Cura.
https://ultimaker.com/en/products/cura-software
GNU Affero General Public License v3.0
1.67k stars 880 forks source link

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

Open Dogm opened 1 year ago

Dogm commented 1 year ago

Application Version 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

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

Which use

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.