Commit Graph

322 Commits

Author SHA1 Message Date
Mykola Nahirnyi
87ceeaa0aa Wires in generated files 2026-05-27 10:02:24 +03:00
Ian Bassi
ff68a2859d Ignore Jerk values Warning if using JD (#13575)
* Ignore Jerk values if using JD

* add flavor check
2026-05-19 09:42:44 -03:00
Ioannis Giannakas
3370e224b2 Cooling: add per-printer non-zero fan PWM floor and fix N=0 fan ramp override (#13715)
* Cooling: add per-printer non-zero fan PWM floor and fix N=0 ramp override
* updated parameter naming
2026-05-19 09:40:53 +01:00
Ioannis Giannakas
d52d0a082d Option to always travel to wipe tower before Tx commands on multi-toolhead setups using type 2 tower (#13703)
* Option to always travel to wipe tower before Tx commands on multi-toolhead setups using type 2 tower
2026-05-17 20:46:08 +01:00
Ian Bassi
635d96183d Make filament compatibility temperature-aware (#13522)
* Make filament compatibility temperature-aware

Extend filament compatibility checks to consider actual nozzle temperatures and temperature ranges.
Print::check_multi_filaments_compatibility now accepts nozzle temperatures and range lows/highs; it resolves missing ranges from material defaults, computes per-filament effective temperatures, and checks pairwise compatibility (including high/low/mid mixed cases).
Updated callers in Print::check_multi_filament_valid and CalibrationWizardPresetPage to pass nozzle settings, consolidated user-facing warning strings, and fixed extruder index handling and minor logic/path improvements.

Clarify incompatible nozzle temperature warnings

* Update Print.cpp

* Remove json usage

* Reduce messages
2026-05-09 14:30:24 +08:00
SoftFever
9bc2eb7476 Merge branch 'main' into zaa 2026-04-28 16:57:02 +08:00
tome9111991
fdff62c796 Fix: collision warnings (#12122)
* Fix: Enable instance collision detection in GCode and Print clearance

Squashed commit containing:
- Fix gcode path conflict detection in ConflictChecker.cpp by iterating all instances.
- Improve clearance validation in Print.cpp by calculating convex hulls per instance (fixes scaling/mirroring issues).
- Added // Orca: comments to mark changes.

* Fix Wipe Tower G-code conflict detection for WipeTower2

* Fix: Improve object/instance selection for collision and validation warnings

- Updated validation logic in Print.cpp to report specific ModelInstance instead of ModelObject for collision/clearance warnings.

- Updated NotificationManager and Plater to handle ModelInstance selection in 'Jump to' links.

- Added fallback to object selection if specific instance cannot be selected.

- Included fixes for G-code conflict detection (ConflictChecker, GLCanvas3D) to also report instances.

- Improved GUI_ObjectList to update canvas selection when items are selected via API.

* Fix: Prevent crash when loading .3mf projects

Moved update_selections_on_canvas() out of ObjectList::select_items() to avoid premature UI updates during loading. Canvas updates are now explicitly called in NotificationManager and Plater callbacks where needed.

* Fix: Address code review comments

- Fix memory allocation for extrusion layers deep copy

- Remove unused variable in GLCanvas3D

- Fix string formatting crash risk in NotificationManager

- Remove dead code in Plater

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-04-26 18:01:41 +08:00
Misterff1
81d81da08c Add more granular control over exhaust fan speed during print and on completion (#13228)
# Description

This commit adds the enhancement of https://github.com/OrcaSlicer/OrcaSlicer/issues/13116

- Adds checkboxes to enable or disable the fan speed override during print or after printing is completed. This allows users to, for example, only override the fan speed during printing whilst leaving the fan speed as is set in the machine gcode at the end. 
- Two new flags are added for this: `activate_air_filtration_during_print[extruder]` and `activate_air_filtration_on_completion[extruder]`. These can be used to more finely control machine gcode
- Current filament settings remain as they are: `activate_air_filtration[extruder]` settings are unaffected and by default both new flags are set to true, ensuring the same set behavior as before.

# Screenshots/Recordings/Graphs

<img width="856" height="208" alt="Screenshot From 2026-04-09 18-57-14" src="https://github.com/user-attachments/assets/e71e7de3-2def-4046-b5dc-55bf3b516ce5" />

As you can see there are now checkboxes left of the fan speeds. They have their own tooltip too, which also helps identify the correct flags for users who want to adjust their machine gcode.


## Tests
I have thoroughly tested this on my own computer (CachyOS) and on my printer. I have also carefully checked the gcode in every possible state this is in and ensured that the unsaved changes dialog properly displays the labels for these settings. Flags are set properly, sliced files properly use the flags if you check for them in machine gcode and default behavior is unaffected for those who have already changed settings for air filtration. From what I can see, this does exactly what it should be doing without any issues.
2026-04-22 23:28:18 +08:00
Richard Copra
00704c368f make initial layer travel move acceleration and jerk configurable (#11674)
* make initial layer travel move acceleration and jerk configurable

* Update spelling to match UI pattern

* Update min integer and re-order to match patterns

---------

Co-authored-by: Thomas Scheiblauer <tom@sharkbay.at>
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
2026-04-22 09:55:24 +08:00
Ian Bassi
16727644bb Reduce size by Json Fromatting (#13163)
Reduce the size of current and new JSONs by standardising them with 1 tab indentation instead of 4 spaces.
This effectively reduces the size by almost 20 MB.

| Current | New |
|---|---|
| 85.2 Mib | 67 Mib |

Used [JQ](https://jqlang.org/) `--tab` to automatically format every current JSON.

> [!NOTE]
> Some profiles had the arrays on the same line, but those created by Orca were in the standard format (each object below the previous one). In some cases, this increases the number of tabs due to the new lines, but the increase is negligible, and this way both the base profiles and those created by Orca maintain the same style.
2026-04-15 22:58:12 +08:00
Aleksandr Dobkin
39ef7a5b7a Adjust ZAA configuration 2026-03-26 04:21:36 -07:00
SoftFever
4314f5d804 Merge branch 'main' into zaa 2026-03-18 18:10:35 +08:00
SoftFever
70b9bedf94 Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-18 17:50:39 +08:00
SoftFever
13b08385c8 check precise_z_height and enable_prime_tower conflicts in print validate 2026-03-18 16:59:20 +08:00
SoftFever
d58d9be07b Add wipe_tower_type printer setting to replace vendor-based wipe tower selection
Previously, wipe tower behavior was determined by checking if the printer
  was a QIDI vendor. This introduces a configurable enum (Type 1 / Type 2)
  so any printer can select its wipe tower implementation. BBL printers
  remain hardcoded to Type 1. Qidi profiles default to Type 1.
2026-03-15 22:19:53 +08:00
Aleksandr Dobkin
b945c957d8 Merge branch 'main' into zaa 2026-03-11 01:04:44 -07:00
Valerii Bokhan
b919148c66 Fix: Added a warning if the Hollow base pattern is selected for the non-tree supports (#12710)
Fixes point 4 of #12684
2026-03-10 23:56:00 +08:00
SoftFever
db7507b84e Some QoL tweaks (#12700)
* 1. Calculate `FilamentTempType` based on `filament_info.json`, with a fallback to the temperature range.
2. Clean up some strings.

* Update src/slic3r/GUI/ObjColorDialog.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-09 20:52:12 +08:00
SoftFever
eb6da907a9 Fix crash when slicing multi-material print with wipe tower (#12682)
The WipeTower2 code path never called construct_mesh(), leaving
wipe_tower_mesh_data as std::nullopt. GCode export then dereferenced
it unconditionally, triggering an assertion failure / crash.
2026-03-09 13:31:11 +08:00
Alexandre Folle de Menezes
d54adafdaa Grammar and spelling fixes on GUI strings (#12410) 2026-03-03 17:36:42 -03:00
Valerii Bokhan
5e30783dcf Enhancement: Enabling base patterns (infill) for Organic supports (#12141)
Enhancement: Enabling base patterns for Organic supports
2026-02-28 18:25:21 +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
SoftFever
00eb461b1c Merge branch 'main' into feature/zaa-contouring 2026-02-10 13:53:52 +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
Matthias Nott
963f8d86b7 feat: Add Z Anti-Aliasing (ZAA) contouring support
Port Z Anti-Aliasing from BambuStudio-ZAA (https://github.com/adob/BambuStudio-ZAA)
to OrcaSlicer. ZAA eliminates stair-stepping on curved and sloped top surfaces
by raycasting each extrusion point against the original 3D mesh and micro-adjusting
Z height to follow the actual surface geometry.

Key changes:
- Add ContourZ.cpp raycasting algorithm (~330 lines)
- Extend geometry with 3D support (Point3, Line3, Polyline3, MultiPoint3)
- Template arc fitting for 2D/3D compatibility
- Change ExtrusionPath::polyline from Polyline to Polyline3
- Add 5 ZAA config options (zaa_enabled, zaa_min_z, etc.)
- Add posContouring pipeline step in PrintObject
- Update GCode writer for 3D coordinate output
- Add ZAA settings UI in Print Settings > Quality
- Add docs/ZAA.md with usage and implementation details

ZAA is opt-in and disabled by default. When disabled, the slicing pipeline
is unchanged.
2026-02-09 20:42:26 +01:00
Vovodroid
a254bec6b2 Check instances for collision (#11866) 2026-01-26 12:07:44 -03:00
Ioannis Giannakas
d9c48c3d53 Clarify shrinkage compensation warning message & tooltips (#12031) 2026-01-21 15:17:19 +00:00
Kiss Lorand
5c05e036c4 Fix: Apply bed–filament compatibility checks to all printers (#11432)
### What was the issue?

The check that validates whether a filament is compatible with the selected build plate type was only executed for Bambu Lab printers.
Other printers skipped this entirely, even though they can also use multiple plate types with different temperature requirements.

This caused cases where:
- incompatible filament/plate combinations went unnoticed,
- users received no warning even when the bed type clearly couldn’t support the selected filament.

### What’s changed?
- The validation block extends beyond BambuLab printers.
- Now all printers get the same compatibility check:
  - if a filament requires a bed temperature not supported by the chosen plate,
  - Orca shows the same clear error message as it does for BBL printers.
- Show the selected filament preset name (alias if present) in bed/filament mismatch warnings instead of substituting the parent preset.

### Why this helps
- Consistent behavior across all printer brands.
- Prevents invalid filament/plate setups that could cause print failures.
- Makes plate presets more robust and predictable for custom and community printers.

### Notes
- No behavior changes for BBL printers — they keep the existing checks.
- Other printers now benefit from them too.
2026-01-15 19:02:58 +08:00
Ioannis Giannakas
a83b005f8b Bug fix: Display max_junction_deviation warning dialogue only on marlin printers (#11891)
# Description

max_junction_deviation value is only available for marlin2 printers. Update warning dialogue conditions to only display it for Marlin 2 printers.

Fixes #11889

# Screenshots/Recordings/Graphs

Before:
![image](https://github.com/user-attachments/assets/62f5bbf0-b726-43b0-9c89-7aaee65e35ce)

After:
![image](https://github.com/user-attachments/assets/ec9b83d6-b07d-4885-ba5a-a723387838f5)
2026-01-09 23:33:34 +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
4efaee4c98 Merge branch 'main' into dev/p2s-pr 2025-11-04 10:26:47 +08:00
HYzd766
a351aa8cb0 Multi-color code compatible with QIDI models (#11185)
* The 0.30mm layer height configuration for the 0.4 nozzle of the QIDI model has been removed

* Merge branch 'main' into main

* Merge branch 'SoftFever:main' into main

* Revert "The 0.30mm layer height configuration for the 0.4 nozzle of the QIDI model has been removed"

This reverts commit 8d296720b8.

* Update Qidi Q2 0.4 nozzle.json

修改Q2打印高度

* Merge branch 'SoftFever:main' into main

* Merge branch 'SoftFever:main' into main

* change machine_gcode

* Merge branch 'main' of https://github.com/HYzd766/OrcaSlicer

* Merge branch 'SoftFever:main' into main

* Multi-color code compatible with QIDI models

* Merge branch 'main' into main

* toggle axis visibility on canvas (#9666)

* toggle axis visibility on canvas

* set show_axes config on toggle

* fix: Add pause and filament change to machine gcodes for Sovol SV08 MAX (#11214)

* Add fixed Ironing Angle setting for uniform surface finish (#11195)

* Initial working fixed ironing angle implemented with new Fixed ironing angle setting

* update documentation

* Combine Fill.is_using_template_angle and Fill.alternate_fill_direction into Fill.fixed_angle

* Rename SurfaceFillParams.is_using_template_angle to SurfaceFillParam.fixed_angle.
2025-11-03 21:34:11 +08:00
xin.zhang
934f32bd8c FIX: remove some warnings
jira: [none]
Change-Id: I0e74b7316d0efe38c65e1f695b2a09eb09103552
(cherry picked from commit 766c6e004145325bcc7a6addfce27842ee9504de)
2025-10-28 15:29:56 +08:00
weizhen.xie
6161c5c9bc Fix: The skirt data cache of the object was not cleared, causing the skirt paths to be duplicated.
Jira: STUDIO-14819

Change-Id: Id8716bc54b0b0ae027cfab7e924eb6f8daaf478c
(cherry picked from commit eac888093102bca0056780ebd285e868db9ab64b)
2025-10-28 15:29:56 +08:00
jiangkai.zhao
b9cd05dc86 FIX:When a smaller negative number is entered for the primer_tower_extra_rib_length, the program crashes.
jira: STUDIO-14677
Change-Id: I67477535ce2e88a2bded23959195ba9b95abf75a
(cherry picked from commit 21e01c87b678bc4f639293363591142fc9884f2d)
2025-10-28 15:29:55 +08:00
Ian Bassi
a839b81fdf Calibration Cornering Jerk Test + Generic interpolator + Fix (#10962) 2025-10-26 20:44:19 +08:00
Noisyfox
8e0e8ce461 Merge remote-tracking branch 'remote/main' into dev/h2d-2
# Conflicts:
#	src/libslic3r/PrintConfig.cpp
#	src/slic3r/GUI/ConfigManipulation.cpp
2025-10-19 23:11:13 +08:00
Ian Bassi
a48235691e Material Type standarization + Technical Filament Types (#10553)
* New materials

* Temps

* Full filament type list

* Improve nozzle temperature range validation messages

Separates minimum and maximum recommended temperature warnings for nozzle configuration + generig °c usage.

Co-Authored-By: Alexandre Folle de Menezes <afmenez@gmail.com>

* Material Updates

Co-Authored-By: Rodrigo <162915171+RF47@users.noreply.github.com>

* petg-cf10 should be petg-cf

options.

* Pla reduced range

* Adjust some temps

* FilamentTempType Temperature-based logic

* chamber temps

* Fromatting

* Filament chamber temperature range support

Introduces get_filament_chamber_temp_range to retrieve safe chamber temperature limits for filament types. Updates ConfigManipulation to use these limits instead of hardcoded values.

* add adhesion coefficient and yield strength

Replaces hardcoded material checks for adhesion coefficient and yield strength with lookup functions using extended FilamentType struct.

* Thermal length

* Fix

* Refactor filament type data to MaterialType class

Moved filament type properties and related lookup functions from PrintConfig.cpp into a new MaterialType class.

* Fix adhesion_coefficient

Co-Authored-By: SoftFever <softfeverever@gmail.com>

---------

Co-authored-by: Alexandre Folle de Menezes <afmenez@gmail.com>
Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-10-19 21:57:34 +08:00
Noisyfox
da2934d02a Revert "ENH:instead of prime_volume by filament_prime_volume"
This reverts commit e7e6405ad3.
2025-10-05 19:16:05 +08:00
weizhen.xie
7bc01c625d ENH: Add a button to control whether to enable volumetric-speed fitting
Jira: None
Change-Id: I8d9fd3468dbfb8904d164b289f9d5223e476145c
(cherry picked from commit 3acf97f1b3cf12d34a3679eef550cc26e03eb86c)
2025-10-03 23:28:58 +08:00
zhimin.zeng
811060aabb FIX: the wipe tower should not show for printer which is not support clumping
jira: none
Change-Id: Ife535adb406224252fe8b0b3e7807a3e84752cc2
(cherry picked from commit 2f2bc935bfeb325de548e4cf867eb2d3a5d67879)
2025-10-03 23:08:56 +08:00
weizhen.xie
38a18dc086 ENH: Polynomial fitting via Gaussian regression for determining the filament_max_volumetric_speed
Jira: none
Change-Id: Iab1ef65f0546884c60d2a9e39213a07d76a1f483
(cherry picked from commit 186948cc91b12d547b7168104ba629d40c333d1b)
2025-10-03 23:08:54 +08:00
songwei.li
561f4ebfbd FIX: enable_prime_tower and enable_wrapping_detection warning does not work
The translated strings cannot match the correct config, delete the translation of these two opt_key

jira: STUDIO-13989, STUDIO-13988
Change-Id: I5e8ebf342b5bb18c1ca6a88a3916197941c0cb03
(cherry picked from commit a84d9ab466b1f6b1ccb727d4f34cdb7c2eb8e30a)
2025-10-03 21:44:59 +08:00
Noisyfox
a932821168 Rename wipe tower ribs related options 2025-10-02 22:56:54 +08:00
weizhen.xie
b42afde4d0 FIX:Unify the wipe tower size calculation logic between frontend and backend.
Jira:STUDIO-13711

Change-Id: I498b83d2f9892068a29290b154b7f64f0dca9396
(cherry picked from commit 477ab2f2a48ea6cf49305ebcae88f30e1bf97008)
2025-10-02 18:08:27 +08:00
weizhen.xie
1d52ab4738 FIX: Optimize the convex hull calculation logic when checking for overlaps between the assembly and sensitive areas.
Jira: STUDIO-13686

Change-Id: I7ec402e7da150fd6f22eac079c7e4809d42eabde
(cherry picked from commit 16bff83ca2a4269b7c792f3485a902b5d027433e)
2025-10-02 18:03:33 +08:00
songwei.li
f82783259a ENH: add jump to potion button for Clumping detection by object error
Added option information to the error prompt to facilitate users to jump to the corresponding option

jira: none
Change-Id: I3f13acac08a1e84625dc22363822989f1eab7ec7
(cherry picked from commit 96b4e6610fa532b74247abe925d8c8d19869bf93)
2025-10-02 18:00:54 +08:00
songwei.li
ad45236056 ENH: add warning about enable_wrapping_detection without prime tower
Add warning about enable_wrapping_detection without prime tower. Note: Only one of this warning, check_multi_filament_valid, and support_enforcer without support can be displayed at the same time.

jira: none
Change-Id: Ic8f0fc7ab62b63af1604e32b7380642741669462
(cherry picked from commit 698c0d16c99e13244101c06d7a3a8ff66ae2e4d0)
2025-10-02 18:00:40 +08:00
zhimin.zeng
89c58fb4d9 FIX: add clumping detect area parameter
1. add wrapping detect area parameter
2. fix spiral retract bug
3. modify the enable parameter to print config
4. close clumping detect for manual cali mode
jira: STUDIO-13761 & STUDIO-13766

Change-Id: Ib597ca48a0342a8ae3930f5e790085987f252374
(cherry picked from commit 698a5e6bc0b281ba77fc1fd7692daec09cb440b4)
2025-10-02 17:07:17 +08:00
songwei.li
1304b315c7 FIX: Error in setting variable layer height
Because the function in print.cpp mistakenly considers models with different variable layer height configurations to be the same, the layer height configurations of the copied objects are optimized and overwritten. Fixed function: auto is_print_object_the_same = [this](const PrintObject* object1, const PrintObject* object2)

jira: STUDIO-13507
Change-Id: Ic4b3a479e8984b46a2f9557f65826951b8979646
(cherry picked from commit 2d5137914e9699c4fe9ddbbc76f13b85dbc3a1a9)
2025-10-02 09:43:13 +08:00