Commit Graph

39 Commits

Author SHA1 Message Date
SoftFever
466c36eaa3 Complete the rib wipe tower port in WipeTower2
The rib tower is now always square (prime_tower_width is ignored, as the
GUI already implies), carries the rib origin offset like the BBL tower so
the rib tips sit inside the configured position, clamps the rib length to
the tower diagonal, and extends the ribs for short towers.
2026-07-27 03:07:07 +08:00
SoftFever
582017235c feat(engine): resolve per-variant config columns for raw filament reads on the export path
When a per-layer nozzle grouping migrates a filament across nozzle
variants, the write-back turns two groups of config arrays from
filament-indexed into column-indexed: the per-variant filament options
(one column per variant a filament uses) and the merged extruder
retract overrides (resized to the column count by apply_override).
Export-path readers that still indexed them with the raw filament id
read a neighbor's column for every filament ordered after a migrating
one: toolchange/standby temperatures (M104/M109), retraction lengths
and feedrates, wipe distance, z-hop types, air-filtration keys, and -
through the Extruder's cached flow term - the extrusion E of every
move.

Now every such read resolves its column through the existing
layer-aware resolver (get_filament_config_index ->
Print::get_filament_config_indx), which returns the raw filament id
whenever no per-layer grouping result is published, so static prints
are byte-inert by construction. The Extruder itself has no layer
knowledge, so it gains an injected config column (set_config_index,
default = filament id) that the generator refreshes at the only two
resolution-changing events - layer change and writer toolchange - and
that re-syncs the cached e_per_mm3 flow term. Old-filament reads
resolve at the current layer, which is safe because the per-layer maps
are gap-filled carry-forward. Whole-array placeholder copies
(toolchange temperature overrides) are rebuilt in filament order,
mirroring the existing per-variant placeholder remap. The resolvers
move to the public section so non-friend helpers (ooze prevention) can
resolve too.

Documented, deliberately unchanged: the wipe tower's per-filament
parameter rows (no layer dimension; tower x per-layer grouping is a
follow-up), travel_slope's physical-extruder read, estimator pre-heat
bookkeeping temps, and index-0 header diagnostics.

Verification: new Extruder column-injection scenario (defaults, column
follow + flow-cache rescale, filament-indexed reads unaffected, reset
semantics) and a migrating write-back case proving the column shift for
filaments ordered after a migrator and the resolver tracking it (11 +
14 assertions); suites green (libslic3r 48998/169, fff_print 655/61);
20/20 pinned-slice byte gate bit-identical (incl. sequential repro x2
deterministic).
2026-07-12 14:30:39 +08:00
Noisyfox
1c8c7820c8 Initial attempt to make speed configs multi-variant
Co-authored-by: chunmao.guo <chunmao.guo@bambulab.com>
Co-authored-by: zhimin.zeng <zhimin.zeng@bambulab.com>
Co-authored-by: qing.zhang <qing.zhang@bambulab.com>
2026-05-21 09:04:27 +08:00
Noisyfox
e87b0d57b4 Make inner_wall_speed multi-variant 2026-05-21 09:04:27 +08:00
Ioannis Giannakas
25d07eac8f Fix wipe tower first layer leaving gaps when spacing other than 100pc is specified (#12491)
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-02-27 23:57:08 +08:00
SoftFever
db1fe73e85 Fix wipe tower skirt alignment by computing bbx from actual first-layer polygon (#12457) 2026-02-25 12:37:05 +08:00
Argo
769fc137c7 Ported Bambu Studio wipe tower interface features (with improved preheat and cooldown behaviour) - NEW (#12266)
Wipe tower interface features and preheat fixes

Fresh PR branch rebuilt on upstream/main (squash of origin/BBL-studio-wipe-tower-merge) to avoid merge-history issues.
2026-02-13 22:53:25 +08:00
Argo
ed3f0e2898 Fix issue #10971 (#12108)
Sorry had to re-create the PR as I did some chaos in my repo with CLI. xD

Fixes issue https://github.com/OrcaSlicer/OrcaSlicer/issues/10971

Description:
Fix wipe tower filament selection and clean up tool ordering. Added wipe_tower_filament handling to WipeTower2 (store config, mark non-selected tools as “soluble,” and use it in toolchange selection) and ensured the configured wipe‑tower extruder is included in the extruder list for ordering. Removed duplicated/merged tool‑ordering code (extra insert_wipe_tower_extruder definition, duplicate declaration, and redundant reorder block) so the tool order logic runs only once.

<img width="1819" height="799" alt="image" src="https://github.com/user-attachments/assets/cef39026-cf6a-46da-a87a-ef895774699f" />
2026-02-10 10:56:38 +08:00
Rodrigo Faselli
ef876fe577 Wipe Tower Auto Brim bug-fix (Non BBL printers) (#11831)
# Description

Fix application freeze when Prime Tower brim is set to Auto

This PR fixes an issue where enabling Auto brim width for the Prime Tower caused the application to freeze and consume unbounded amounts of memory.

Root cause
0c5f6c9865/src/libslic3r/GCode/WipeTower2.cpp (L2036-L2039)
When Auto brim is selected, the brim width was not being computed and the raw configuration value (-1) was used directly.
This resulted in an effectively infinite loop during Prime Tower brim generation, leading to runaway memory allocation instead of a controlled failure or a crash.

Solution

The Auto brim width is now properly computed based on the Prime Tower height, matching the intended behavior and existing logic used in other slicer implementations.
2026-01-05 20:15:23 +08:00
Ioannis Giannakas
0f397492e7 Fix non bambu wipe tower issues (skirt overlapping with tower, extreme travel moves outside plate boundary) (#11748)
* Fix prime/purge tower extreme travel for non BBL printers
* Fix wipe tower skirt not generating correctly for non bambu printers
2025-12-30 09:28:09 +00:00
Noisyfox
580414265d Merge remote-tracking branch 'upstream/main' into dev/h2d-2
# Conflicts:
#	src/slic3r/GUI/Tab.cpp
2025-09-24 09:15:33 +08:00
SoftFever
b483dff617 Enhance GCode handling for Z-axis movements (#10803)
* Enhance GCode handling for Z-axis movements

- Updated `travel_to_z` method to include a `force` parameter, allowing forced Z movements.
- Modified GCode generation logic to ensure Z position is restored after unknown last positions.
- Enforce z restoreation after tool changer

* Improve filament_multitool_ramming logic

* fix indent
2025-09-21 22:03:54 +08:00
jiangkai.zhao
69d85d0045 ENH: add flat ironing before toolchange
jira: none
Change-Id: Iabe121f9523b662fc90c18365aa642583635a126
(cherry picked from commit 1b467b13c4bbac7d6afd361fee75ccc52eddef9a)
2025-09-16 17:39:10 +08:00
Noisyfox
b55a0226b5 Fix compile error 2025-09-12 16:56:45 +08:00
jiangkai.zhao
70151fed7c ENH: Add gaps in the outer wall of the wipe_tower
and modify the path of travel to the wipe_tower after flushing

jira:none

Change-Id: Id4b0571fd12372c59cf522c13e256c7cc4ac3565
(cherry picked from commit 17771d0fbf753dd22411ce490586958bd643264e)
2025-09-07 21:47:16 +08:00
zhimin.zeng
84dc2d8835 ENH: flush_volume support multi_extruder and fix bug
Change-Id: Id6b041f71ee6e55e68a6937f24ce791caac8e708
(cherry picked from commit 6fbad9ed33b2868a2fffbebdc3a98926431a1093)
2025-08-24 23:18:01 +08:00
anjis
ecfe53e488 The multi-color printing wipe tower now includes the Bambu RIB wall feature (#9881)
* Add new Bambu RIB wall feature, including only the rib wall generation algorithm.

* Fix Linux compilation errors.

* Attempt to fix flatpak build

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2025-06-15 14:53:35 +08:00
Noisyfox
cd2077ebaf Fix prime tower wipe volume calculation (#9235)
* Revert "Fixed an bug that filament_minimal_purge_on_wipe_tower option doesn't work for soluable filament (#8397)"

This reverts commit fcc5489911.

* Fixed an bug that filament_minimal_purge_on_wipe_tower option doesn't work for soluable filament (#8397)

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-04-20 13:36:11 +08:00
SoftFever
fcc5489911 Fixed an bug that filament_minimal_purge_on_wipe_tower option doesn't work for soluable filament (#8397) 2025-02-14 23:38:18 +08:00
SoftFever
0bf2b9dcff respect "Enable Filament ramming" option 2024-10-07 14:34:08 +08:00
Ioannis Giannakas
5bb42bc0d5 Fix wipe tower issues with SEMM and ramming turned off (#6934)
* Fix wipe tower issues with SEMM and ramming turned off

* Purge tower last layer collision potential fix (for SEMM)

* Revert "Purge tower last layer collision potential fix (for SEMM)"

This reverts commit 9fc465c2d9.
2024-10-01 22:54:14 +08:00
SoftFever
65fc14209d Fix a bug that wipe tower has missing extrusions when ramming is disabled (#6894)
* Fix a bug that wipe tower has missing extrusions when ramming is disabled.

* hide "Prime all printing extruders" for SEMM printers
2024-09-25 19:34:18 +08:00
enricoturri1966
7d0fb4f42a preheat work - part 1 2024-07-21 10:29:42 +08:00
SoftFever
a9668728bc Merge branch 'main' into feature/multitool 2024-07-16 23:30:26 +08:00
SoftFever
4b3f91b2e2 Simple preheat, temperary solution 2024-07-16 00:02:38 +08:00
SoftFever
f84c3a00e0 Fix a regression for SEMM when ramming and cooling is disabled 2024-07-14 17:35:12 +08:00
Dylan
230a4aaad8 Limit the max speed on the wipe tower (#6044)
* limit the max speed on the wipe tower
2024-07-11 23:53:32 +08:00
SoftFever
860a41baed update wipe tower according to latest PrusaSlicer 2024-07-10 21:40:10 +08:00
SoftFever
b3fff4ffd5 Removed the copyright and credits in the header of each file. This information is outdated and hard to update. Orca Slicer maintains the autoher info in git history so this is not necessary. 2024-06-15 14:56:44 +08:00
Ioannis Giannakas
43d7ac6a14 SEMM: wipe tower sparse infill speed adjustment (#5415)
* Wipe tower sparse layers speed adjustment

* Updated tooltip and option label

* Tooltip update
2024-05-22 15:27:31 +08:00
Ioannis Giannakas
6920a88e58 SEMM: Introduced parameter to control the maximum speed used for purging in the purge tower (#5304)
* Max wipe tower purge print speed for SEMM

* Max wipe tower purge print speed for SEMM

* Merge branch 'dev-branch' of https://github.com/igiannakas/OrcaSlicer into dev-branch

* Updated float calculation

* Updated float calculation

* Updated tooltip

* Updated label
2024-05-09 23:21:06 +08:00
Ioannis Giannakas
d2e76212b1 Fix wipe tower not showing purged filament volume for non BBL SEMM (#5223)
* Fix wipe tower not showing purged filament values for non BBL SEMM
2024-05-02 21:33:53 +08:00
SVNMLR
4dcfd97181 [Multi Material] Fix first layers of prime tower when using "no sparse layers" (#2764)
* MM - Add check for first layer

* Change: If no sparse layer is on -> Respect the toolchange in the first-layer checkup, to use a brim and slow down printspeed if using a primetower

* Fix comment
2023-11-17 08:01:52 +08:00
SoftFever
bbdd580bb1 fix wipe tower bug: filament end inserted twice 2023-11-16 01:00:59 +08:00
SoftFever
930e1b3bdf limit max wipe tower speed to 90 mm/s 2023-11-16 00:59:45 +08:00
SoftFever
edb5676dd1 Fixed a bug that filament start gcode was inserted twice when wipe tower is enabled
fixed #2673
2023-11-10 18:00:56 +08:00
SoftFever
40c2eccfd6 handle edge cases when Cooling tube position is 0 2023-09-12 20:12:54 +08:00
SoftFever
e624632969 semm 2023-09-09 13:19:59 +08:00
SoftFever
6ff9ff03db wip 2023-09-09 13:19:43 +08:00