Multimaterial "no sparse layers" will make tool collide printed parts when tool change #1305

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

Originally created by @psychotik2k3 on 12/21/2025

Is there an existing issue for this problem?

  • I have searched the existing issues

OrcaSlicer Version

2.3.1

Operating System (OS)

Windows

OS Version

windows 11

Additional system information

not applicable

Printer

snapmaker U1

How to reproduce

If on a multi tool printer project you check "no sparse layers" to have a minimalist prime tower,
when a tool change is happening, the tool will move over the prime tower position, lower Z to the tower height (which may be lower than printed parts), prime and then will park the tool head without going back to the original Z value.
Because of that the tool head will bump into printed parts and either make a shift on X/Y or unhook the part from the bed.

the culprit code seems to be on src/libslic3r/GCode/WipeTower2.cpp

Actual results

here is an example of the generated code i added somment comments

`;WIPE_END
SET_VELOCITY_LIMIT ACCEL=10000 ACCEL_TO_DECEL=5000
EXCLUDE_OBJECT_END NAME=Catan_Border_Straight_Magnetic.stl_id_8_copy_0
G1 Z7.92 F30000
G1 X13.25 Y234.75 Z7.92
G1 Z7.52 ;=====> z height is 7.52
G1 E.8 F2100
G1 E-.8 F1800
G1 Z.12 F30000 ;=====> z height is 0.12
G1 E.8 F2100
;HEIGHT:0.12
;TYPE:Prime tower
;WIDTH:0.5
;--------------------
; CP TOOLCHANGE START
; toolchange #1
; material : PLA -> PLA
;--------------------
; WIPE_TOWER_START
M220 S100
; CP TOOLCHANGE UNLOAD
;WIDTH:1
G1 X13.750 Y235.250
SET_PRESSURE_ADVANCE ADVANCE=0
G1 F20529
G1 X47.250 E1.6283
G1 Y236.250 F7200
G1 F20529
G1 X37.982 E0.4505
;WIDTH:0.5
G1 Y237.000 F2400
G4 S0
G1 E-10 F1800
; filament end gcode
M104 S70 T1 ; set nozzle temperature ;cooldown
; Change Tool1 -> Tool2 (layer 61) ;=====> z height is still 0.12
G91
G0 Z1.5 F600 ;=====> z height is 0.12+1.5=1.62
G90
G1 F21000

; 61
M109 S220 T2 ;=====> z height is 1.62 parts are more than 7mm tall => collision
T2`

Expected results

here is an example of the generated code

`;WIPE_END
SET_VELOCITY_LIMIT ACCEL=10000 ACCEL_TO_DECEL=5000
EXCLUDE_OBJECT_END NAME=Catan_Border_Straight_Magnetic.stl_id_8_copy_0
G1 Z7.92 F30000
G1 X13.25 Y234.75 Z7.92
G1 Z7.52 ;=====> z height is 7.52
G1 E.8 F2100
G1 E-.8 F1800
G1 Z.12 F30000 ;=====> z height is 0.12
G1 E.8 F2100
;HEIGHT:0.12
;TYPE:Prime tower
;WIDTH:0.5
;--------------------
; CP TOOLCHANGE START
; toolchange #1
; material : PLA -> PLA
;--------------------
; WIPE_TOWER_START
M220 S100
; CP TOOLCHANGE UNLOAD
;WIDTH:1
G1 X13.750 Y235.250
SET_PRESSURE_ADVANCE ADVANCE=0
G1 F20529
G1 X47.250 E1.6283
G1 Y236.250 F7200
G1 F20529
G1 X37.982 E0.4505
;WIDTH:0.5
G1 Y237.000 F2400
G4 S0
G1 E-10 F1800
; filament end gcode
M104 S70 T1 ; set nozzle temperature ;cooldown
G1 Z7.52 ;=====> z height is back to 7.52
; Change Tool1 -> Tool2 (layer 61)
G91
G0 Z1.5 F600 ;=====> z height is 7.52+1.5=9.02
G90
G1 F21000

; 61
M109 S220 T2 ;=====> z height is 9.02 no more collision
T2`

Project file & Debug log uploads

log.zip

catan.zip

Checklist of files to include

  • Log file
  • Project file

Anything else?

No response

*Originally created by @psychotik2k3 on 12/21/2025* ### Is there an existing issue for this problem? - [x] I have searched the existing issues ### OrcaSlicer Version 2.3.1 ### Operating System (OS) Windows ### OS Version windows 11 ### Additional system information not applicable ### Printer snapmaker U1 ### How to reproduce If on a multi tool printer project you check "no sparse layers" to have a minimalist prime tower, when a tool change is happening, the tool will move over the prime tower position, lower Z to the tower height (which may be lower than printed parts), prime and then will park the tool head without going back to the original Z value. Because of that the tool head will bump into printed parts and either make a shift on X/Y or unhook the part from the bed. the culprit code seems to be on [src/libslic3r/GCode/WipeTower2.cpp](https://github.com/OrcaSlicer/OrcaSlicer/blob/e32dbd3802169116700d130747e50236d29b42bf/src/libslic3r/GCode/WipeTower2.cpp#L2434) ### Actual results here is an example of the generated code i added somment comments `;WIPE_END SET_VELOCITY_LIMIT ACCEL=10000 ACCEL_TO_DECEL=5000 EXCLUDE_OBJECT_END NAME=Catan_Border_Straight_Magnetic.stl_id_8_copy_0 G1 Z7.92 F30000 G1 X13.25 Y234.75 Z7.92 G1 Z7.52 ;=====> z height is 7.52 G1 E.8 F2100 G1 E-.8 F1800 G1 Z.12 F30000 ;=====> z height is 0.12 G1 E.8 F2100 ;HEIGHT:0.12 ;TYPE:Prime tower ;WIDTH:0.5 ;-------------------- ; CP TOOLCHANGE START ; toolchange #1 ; material : PLA -> PLA ;-------------------- ; WIPE_TOWER_START M220 S100 ; CP TOOLCHANGE UNLOAD ;WIDTH:1 G1 X13.750 Y235.250 SET_PRESSURE_ADVANCE ADVANCE=0 G1 F20529 G1 X47.250 E1.6283 G1 Y236.250 F7200 G1 F20529 G1 X37.982 E0.4505 ;WIDTH:0.5 G1 Y237.000 F2400 G4 S0 G1 E-10 F1800 ; filament end gcode M104 S70 T1 ; set nozzle temperature ;cooldown ; Change Tool1 -> Tool2 (layer 61) ;=====> z height is still 0.12 G91 G0 Z1.5 F600 ;=====> z height is 0.12+1.5=1.62 G90 G1 F21000 ; 61 M109 S220 T2 ;=====> z height is 1.62 parts are more than 7mm tall => collision T2` ### Expected results here is an example of the generated code `;WIPE_END SET_VELOCITY_LIMIT ACCEL=10000 ACCEL_TO_DECEL=5000 EXCLUDE_OBJECT_END NAME=Catan_Border_Straight_Magnetic.stl_id_8_copy_0 G1 Z7.92 F30000 G1 X13.25 Y234.75 Z7.92 G1 Z7.52 ;=====> z height is 7.52 G1 E.8 F2100 G1 E-.8 F1800 G1 Z.12 F30000 ;=====> z height is 0.12 G1 E.8 F2100 ;HEIGHT:0.12 ;TYPE:Prime tower ;WIDTH:0.5 ;-------------------- ; CP TOOLCHANGE START ; toolchange #1 ; material : PLA -> PLA ;-------------------- ; WIPE_TOWER_START M220 S100 ; CP TOOLCHANGE UNLOAD ;WIDTH:1 G1 X13.750 Y235.250 SET_PRESSURE_ADVANCE ADVANCE=0 G1 F20529 G1 X47.250 E1.6283 G1 Y236.250 F7200 G1 F20529 G1 X37.982 E0.4505 ;WIDTH:0.5 G1 Y237.000 F2400 G4 S0 G1 E-10 F1800 ; filament end gcode M104 S70 T1 ; set nozzle temperature ;cooldown **G1 Z7.52** ;=====> z height is back to 7.52 ; Change Tool1 -> Tool2 (layer 61) G91 G0 Z1.5 F600 ;=====> z height is 7.52+1.5=9.02 G90 G1 F21000 ; 61 M109 S220 T2 ;=====> z height is 9.02 no more collision T2` ### Project file & Debug log uploads [log.zip](https://github.com/user-attachments/files/24281767/log.zip) [catan.zip](https://github.com/user-attachments/files/24281769/catan.zip) ### Checklist of files to include - [x] Log file - [x] Project file ### Anything else? _No response_
Sign in to join this conversation.
No Label bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#1305