Fix Z-before-XY movement in multi-extruder prints with wipe tower #1044

Open
opened 2026-04-05 16:43:54 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @53Aries on 1/17/2026

Description

When wipe tower is enabled, OrcaSlicer generates a standalone Z move before any XY positioning after PRINT_START. This causes the nozzle to travel horizontally at first layer height, potentially dragging across the bed or hitting clips.

Root cause: travel_to_z() was called when initializing the wipe tower, emitting G1 Z before any XY moves.

Solution: Update the writer's internal Z position and mark it unclear instead of calling travel_to_z(). The Z movement is deferred to the first travel_to() which moves XY first, then Z.

Screenshots/Recordings/Graphs

Before:
Screenshot 2026-01-17 110330

After:
Screenshot 2026-01-17 152714

Tests

Sliced SEMM object with multi color and inspected gcode file.

*Originally created by @53Aries on 1/17/2026* # Description When wipe tower is enabled, OrcaSlicer generates a standalone Z move before any XY positioning after PRINT_START. This causes the nozzle to travel horizontally at first layer height, potentially dragging across the bed or hitting clips. Root cause: travel_to_z() was called when initializing the wipe tower, emitting G1 Z before any XY moves. Solution: Update the writer's internal Z position and mark it unclear instead of calling travel_to_z(). The Z movement is deferred to the first travel_to() which moves XY first, then Z. # Screenshots/Recordings/Graphs Before: <img width="813" height="742" alt="Screenshot 2026-01-17 110330" src="https://github.com/user-attachments/assets/4cff59dc-46fb-402e-833f-901bbbab5f9a" /> After: <img width="777" height="681" alt="Screenshot 2026-01-17 152714" src="https://github.com/user-attachments/assets/8b850617-5ab9-4028-ab37-bcb557f8d4da" /> ## Tests Sliced SEMM object with multi color and inspected gcode file.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#1044