Consolidated WipeTower generation in a single pipeline #312

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

Originally created by @Argolein on 3/15/2026

This PR consolidated BBL and non-BBL wipe tower generation into a single pipeline based on BambuStudio's block implementation. It removes the legacy WipeTower2 and unified append_tcr logic.

I don't know how you all like this idea but hopefully this would fix this: https://github.com/OrcaSlicer/OrcaSlicer/issues/12684
And this PR would then be obsolete https://github.com/OrcaSlicer/OrcaSlicer/pull/12742

IMHO it's much easier to maintain one WipeTower pipeline and have adapter layer above it for BBL and non BBL printers.

What has been done:

  • Implemented automatic filament category detection based on filament_type substrings (e.g., PLA=100, ABS=200) so the single pipeline works (BBL WipeTower logic)
  • Ported WipeTowerLayerType logic (Solid, Contact, Contact_UP) to ensure vertical stability and bonding between material blocks.
  • Preserved Preheat logic for tool changers.
  • Preserved interface boost temperature logic and "Cool down from interface boost during prime tower" features
  • Removed now obsolete "cone" Prime Tower wall type also renamed the label "Wipe tower" to "Wipe tower wall" at "Filament Features"
  • Renamed GUI label to "Wipe tower wall" for better clarity
  • More robust printer identification for BBL printers. I could not load BBL test files hence made it more robust in Print.hpp
  • Advanced features (e.g. interface temperature boost) are still activated by the toggle "Enable tower interface features" and the filament needs to be marked as Support Material
  • For legacy reasons and for bug hunting I left WipeTower2 in the repo

Tests

bbl-all-on.gcode.zip

I verified all functions in the gcode file:

  1. Temperature Boost & Cooldown Logic
    19977 M104 S250 T3 ; Preheat T3 to Boost Temp
    19981 M109 S250 T3 ; Wait for Boost Temp
    19998 M109 S250 ; Explicit Boost Wait before Tower
    19999 M104 S235 ; Cooldown to Base Temp (235°C)

  2. Interface Layer Pre-extrusion
    20000 G1 X190.430 Y179.138 E5.0000 F600 ; 5 mm pre-extrusion line

  3. Tower Ironing Area
    29027 ;TYPE:Ironing
    29030 G1 X142.524 Y113.55 E0.0294 ; support ironing
    50691 ; filament_tower_ironing_area = 4,4,4,4

  4. Skip Points
    see lines 785-792 skip-point pathing within the tower wipe sequence

Screenshots :

non BBL tower image image
BBL tower image image

Further testing:

I tested it on macOS with a Snapmaker U1 printer but as there are so many different setting combinations and printer settings this needs more testing of course as it would surprise me that there aren't any bugs.

*Originally created by @Argolein on 3/15/2026* This PR consolidated BBL and non-BBL wipe tower generation into a single pipeline based on BambuStudio's block implementation. It removes the legacy WipeTower2 and unified append_tcr logic. I don't know how you all like this idea but hopefully this would fix this: https://github.com/OrcaSlicer/OrcaSlicer/issues/12684 And this PR would then be obsolete https://github.com/OrcaSlicer/OrcaSlicer/pull/12742 IMHO it's much easier to maintain one WipeTower pipeline and have adapter layer above it for BBL and non BBL printers. # What has been done: - Implemented automatic filament category detection based on filament_type substrings (e.g., PLA=100, ABS=200) so the single pipeline works (BBL WipeTower logic) - Ported WipeTowerLayerType logic (Solid, Contact, Contact_UP) to ensure vertical stability and bonding between material blocks. - Preserved Preheat logic for tool changers. - Preserved interface boost temperature logic and "Cool down from interface boost during prime tower" features - Removed now obsolete "cone" Prime Tower wall type also renamed the label "Wipe tower" to "Wipe tower wall" at "Filament Features" - Renamed GUI label to "Wipe tower wall" for better clarity - More robust printer identification for BBL printers. I could not load BBL test files hence made it more robust in Print.hpp - Advanced features (e.g. interface temperature boost) are still activated by the toggle "Enable tower interface features" and the filament needs to be marked as Support Material - For legacy reasons and for bug hunting I left WipeTower2 in the repo ## Tests [bbl-all-on.gcode.zip](https://github.com/user-attachments/files/26005170/bbl-all-on.gcode.zip) I verified all functions in the gcode file: 1. Temperature Boost & Cooldown Logic 19977 M104 S250 T3 ; Preheat T3 to Boost Temp 19981 M109 S250 T3 ; Wait for Boost Temp 19998 M109 S250 ; Explicit Boost Wait before Tower 19999 M104 S235 ; Cooldown to Base Temp (235°C) 2. Interface Layer Pre-extrusion 20000 G1 X190.430 Y179.138 E5.0000 F600 ; 5 mm pre-extrusion line 3. Tower Ironing Area 29027 ;TYPE:Ironing 29030 G1 X142.524 Y113.55 E0.0294 ; support ironing 50691 ; filament_tower_ironing_area = 4,4,4,4 4. Skip Points see lines 785-792 skip-point pathing within the tower wipe sequence ## Screenshots : <details> <summary>non BBL tower</summary> <img width="1481" height="1007" alt="image" src="https://github.com/user-attachments/assets/b3e492cd-2af1-48fa-bea4-8757bcec135c" /> <img width="1487" height="1009" alt="image" src="https://github.com/user-attachments/assets/e9104577-c77e-4c54-9bce-d7ac99389998" /> </details> <details> <summary>BBL tower</summary> <img width="1484" height="1126" alt="image" src="https://github.com/user-attachments/assets/a2a45791-c69d-4b7e-b493-bc33425ca4fa" /> <img width="1482" height="1206" alt="image" src="https://github.com/user-attachments/assets/d041a06b-bb4d-468e-bff1-5729dcdd2703" /> </details> ## Further testing: I tested it on macOS with a Snapmaker U1 printer but as there are so many different setting combinations and printer settings this needs more testing of course as it would surprise me that there aren't any bugs.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#312