Commit Graph

29033 Commits

Author SHA1 Message Date
yw4z
cf0dfd12ce Clarify Create nozzle for existing printer (#11773)
* Update CreatePresetsDialog.cpp

* add information for existing nozzles
nightly-builds
2026-05-15 10:03:17 +08:00
Eldenroot
40888242c6 CLI: add layer_height and sparse_infill_density and wall_loops into result (#13001)
* CLI: add layer_height into result

cherry pick 0b857b4c77

* add sparse_infill_density and wall_loops

cherry pick ea9b20593c
2026-05-15 09:58:45 +08:00
Ocraftyone
23e6d8440d Bump Devcontainer Ubuntu Version (#12252)
Bump ver
2026-05-15 09:57:41 +08:00
yw4z
3471b24362 Fix: Font rendering pixelated when cleartype disabled (#12201)
init
2026-05-15 09:57:12 +08:00
SoftFever
6852845e0f fixed an logic error when adjust logging level 2026-05-15 09:52:19 +08:00
Hyiger
ecc53d9415 Fix LAN printing crashes and hangs on Bambu H2D (#13296)
Two related fixes for LAN printing with newer Bambu networking plugins:

1. FileTransferUtils: guard against missing ft_tunnel_* symbols

   The eMMC tunnel constructor calls ft_tunnel_create / ft_tunnel_set_status_cb
   without checking if the plugin exported them. Older plugins (e.g.
   01.10.01.01) don't have these symbols, so the calls dereference null and
   crash when sending a print. Now throw a clear exception so callers can
   fall back gracefully.

2. PrintJob: disable eMMC print path by default

   Plugin 02.03.00.62's eMMC tunnel code hangs indefinitely at the upload
   phase (30%) on Bambu H2D, blocked inside the plugin waiting on a future
   that never resolves. Cancel doesn't work because the plugin doesn't
   check cancel_fn during the wait. The plain FTP path works reliably.

   Default to try_emmc_print=false; opt-in via AppConfig setting
   "disable_emmc_print" = "0". Also wrap the eMMC tunnel creation in
   try/catch so a missing-plugin exception cleanly falls back to FTP
   instead of killing the worker thread.

Co-authored-by: hyiger <hyiger@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-15 01:06:52 +08:00
Kiss Lorand
d14819e58f Fix air filtration settings hidden on printers that support that feature (#13384)
Enable air filtration support in affected system printer profiles

Some system printer profiles that support air filtration had the feature
incorrectly disabled in the printer settings.

This caused the related filament settings to be hidden, making the feature
unavailable to users even though it is supported by the printer.

Enable "support_air_filtration" in affected system printer profiles and
bump profile version thus forcing Orca to refresh cached settings.

This ensures air filtration settings are visible and usable on printers
that support the feature.
2026-05-15 00:59:19 +08:00
Kiss Lorand
69594fa586 Fix Windows file handoff when single-instance mode is enabled (#12944)
Fix Windows single-instance file handoff

On Windows, opening a model file while OrcaSlicer is already running could
fail when single-instance mode was enabled.

The second launch correctly detected that another instance already existed,
but it could no longer find the running main window to forward the file-open
request. As a result, the new process exited and the file was dropped.

This happened because the existing-instance lookup depended on the native
window title containing "OrcaSlicer". After the titlebar change from #12706,
the title may contain only the project name, so the running instance was no
longer discoverable that way.

Fix this by identifying the existing main window through stable window
properties instead of title text:
- require the expected wxWidgets window class
- require the instance hash properties to exist
- match against the current instance hash

This restores forwarding of externally opened files to the already-running
instance without depending on the current titlebar text.
2026-05-15 00:57:52 +08:00
Kiss Lorand
291b34a8fd Hide some non-applicable settings for tree supports to prevent confusion (#12367)
Hide tree support parameters not in use

- hide independent support layer height for organic tree support
- hide threshold overlap for tree supports

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-15 00:50:20 +08:00
Kiss Lorand
26e6216d91 Fix stale keyboard refresh and auto-resize flicker of speed profile window in Preview tab (#12707)
* Fix speed popup refresh and sizing in Preview

Fix two UX issues in the Preview actual speed profile popup.

Keyboard-driven horizontal slider changes could leave the popup visually stale
until a later input event, which made keyboard navigation feel delayed.
Also, the speed-profile popup could briefly render at an incorrect height
before resizing on the next frame.

This change makes keyboard slider updates explicitly request a follow-up frame,
so refresh no longer depends on incidental mouse activity.

It also removes auto-resize from ToolPositionTableWnd and sizes the popup
before begin() each frame. The popup height is computed from plot height,
table rows, and window paddings, then clamped to at least the height of the
adjacent ToolPosition window.

The popup width is now computed from translated header text and padding terms,
with a 16:9-derived minimum for a more stable appearance. The width is cached
for the session and recalculated when UI scale changes.

Result:
- keyboard navigation updates reliably
- popup no longer shows the transient wrong-height first draw
- sizing is more stable across scale and localization

* Fix ToolPosition window also + other fixes

* Fix compile error when ENABLE_ACTUAL_SPEED_DEBUG disabled

IMGUI_DEFINE_MATH_OPERATORS is needed even if ENABLE_ACTUAL_SPEED_DEBUG is not enabled

* Guard seam fallback vertex index in GCodeViewer
2026-05-15 00:48:23 +08:00
Kiss Lorand
700292f9a6 Fix: Right Edge of G-code Viewer Legend Rows Not Interactive (#11899)
Fix legend hover hit-testing

Fix GCode viewer legend where the eye icon and right edge don’t respond to hover/click unless you click slightly left (works after switching view types unless the vertical slide is used).
2026-05-15 00:46:05 +08:00
Kiss Lorand
d2ca5d3a1e Fix hybrid tree first-layer support base behavior and expose density setting (#13454)
Fix hybrid tree first-layer support base flow and UI consistency

Fix incorrect first-layer generation for hybrid tree supports.

The support base on the first layer used brim flow instead of support material flow,
which could lead to incorrect extrusion behavior and wrong material usage in
multi-material prints.

Additionally, spacing and density for the regular support part were not consistently
derived from the actual first-layer support flow when first-layer and regular
line widths differed.

Hybrid-specific behavior is clarified:
- first-layer expansion applies only to the regular support part
- tree-only regions keep their existing behavior

The first-layer support pattern is aligned with normal and organic tree supports
to ensure consistent and meaningful density behavior.

Also make first-layer support expansion and density settings visible whenever
supports are enabled, as density was already affecting hybrid supports but was
hidden in the UI.
2026-05-15 00:44:40 +08:00
Francesco Palmarini
dd8cb89f6d Fix freeze after hiding sync popup (#13657)
Avoid calling Show() on the main frame when it is already visible from BaseTransparentDPIFrame::on_hide(). On GTK this can re-enter size/layout handling after filament sync and leave the UI unresponsive.
2026-05-15 00:41:04 +08:00
Ian Bassi
9c5f33fd57 Fix Filament for Features (#13607) 2026-05-14 23:55:55 +08:00
SoftFever
85d8e04fc8 Increase the timeout threshold for loading profiles. (#13661) 2026-05-14 17:39:54 +08:00
Noisyfox
1c21402981 Fix issue that printer name disappear if profile is modified (#13653)
Fix issue that printer name disappear if profile (other than the first one among its variants) is modified
for printers that have multiple variants with different nozzle size
2026-05-14 00:17:24 +08:00
HYzd766
b97d74892f Update Qidi X-Max 4 0.4 nozzle.json (#13526)
Modify non-printable areas
2026-05-14 00:15:43 +08:00
Ian Bassi
3e866c4aa1 Fix build (#13654)
Remove wxInitializer fixture from tests
2026-05-13 12:31:14 -03:00
Ian Bassi
edf52a9355 Update spanish translation (#13652) 2026-05-13 10:55:30 -03:00
Myrko
a128ad22f6 Aanycubic Kobra X profile (#13529)
* [Fix] Anycubic machine print profiles fix-patch

default_material changed. Wrong referenced Material deleted. No filament profile available.

* Anycubic Kobra X profile

These are the files for a new printer profile in OrcaSlicer for Anycubic Kobra X
Tested on Ubuntu 26.04 LTS.
Local Build = passed
OrcaSlicer Profile Validator = passed
Python Profile Validation Script = passed

* Rename resources/profiles/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json

correcct folder

* Rename resources/profiles/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json

* Rename 0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json to process0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic/process0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic Kobra X.json to resources/profiles/Anycubic/machine/Anycubic Kobra X.json

* Rename resources/profiles/Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/machine/Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic Kobra X_buildplate_model-test.stl to resources/profiles/Anycubic/Anycubic Kobra X_buildplate_model-test.stl

* Rename resources/profiles/Anycubic Kobra X_buildplate_texture-test.svg to resources/profiles/Anycubic/Anycubic Kobra X_buildplate_texture-test.svg

* Rename resources/profiles/Anycubic Kobra X_cover.png to resources/profiles/Anycubic/Anycubic Kobra X_cover.png

* Rename resources/profiles/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic ASA @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic PVA @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle.json

* Rename resources/profiles/Generic PETG @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra X 0.4 nozzle.json

* Delete resources/profiles/Anycubic/Anycubic Kobra X_buildplate_texture-test.svg

wrong file

* Delete resources/profiles/Anycubic/Anycubic Kobra X_buildplate_model-test.stl

wrong file

* corrected Files

correct files uploaded (buildplate).
missing file was included (hotned)

* Delete resources/profiles/Anet directory

No profiles found for vendor: Anet at OrcaSlicer/resources/profiles/Anet.json

* Delete resources/profiles/Anycubic.json

Replaced

* Replaced

Replaced after running: python3 ./orca_filament_lib.py --fix --force

* Space indentation correction via script

Space indentation correction via script

* Space indentation correct via script

Indentation Check Failed
python3 ./scripts/orca_filament_lib.py --fix --force

* Space indentation corrected via script

Indentation Check Failed
python3 ./scripts/orca_filament_lib.py --fix --force

* Tab correction

* Tab correction

* Tab correction

* Tab correction

* fix format

* Anet restore

* Create Anet A8 Plus 0.4 nozzle.json

* restored Anet

* Delete resources/profiles/Anet/machine directory

the Anet profile is corrupted

* Create Anet A8 Plus.json

* machine

* Rename resources/profiles/Anet/Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/machine/Anet A8 Plus 0.4 nozzle.json

corect folder

* Filament

* Rename resources/profiles/Anet/Anycubic Generic ABS @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic ABS @Anet A8 Plus 0.4 nozzle.json

* Rename resources/profiles/Anet/Anycubic Generic ASA @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic ASA @Anet A8 Plus 0.4 nozzle.json

* Rename resources/profiles/Anet/Anycubic Generic PA @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PA @Anet A8 Plus 0.4 nozzle.json

* Rename resources/profiles/Anet/Anycubic Generic PA-CF @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PA-CF @Anet A8 Plus 0.4 nozzle.json

* Rename resources/profiles/Anet/Anycubic Generic PC @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PC @Anet A8 Plus 0.4 nozzle.json

* Rename resources/profiles/Anet/Anycubic Generic PETG @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PETG @Anet A8 Plus 0.4 nozzle.json

* Rename resources/profiles/Anet/Anycubic Generic PLA @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PLA @Anet A8 Plus 0.4 nozzle.json

* Rename resources/profiles/Anet/Anycubic Generic PLA-CF @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PLA-CF @Anet A8 Plus 0.4 nozzle.json

* Rename resources/profiles/Anet/Anycubic Generic PVA @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PVA @Anet A8 Plus 0.4 nozzle.json

* Rename resources/profiles/Anet/Anycubic Generic TPU @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic TPU @Anet A8 Plus 0.4 nozzle.json

* process

* Rename resources/profiles/Anet/0.15mm Optimal @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/process/0.15mm Optimal @Anet A8 Plus 0.4 nozzle.json

* Rename resources/profiles/Anet/0.20mm Standard @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/process/0.20mm Standard @Anet A8 Plus 0.4 nozzle.json

* Rename resources/profiles/Anet/0.30mm Draft @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/process/0.30mm Draft @Anet A8 Plus 0.4 nozzle.json

* Delete resources/profiles/Anet/machine directory

* Delete resources/profiles/Anet/filament directory

* Delete resources/profiles/Anet/process directory

* restore

* Rename resources/profiles/Anet/Anet A8 Plus.json to resources/profiles/Anet/machine/Anet A8 Plus.json

* restore

* restore

* Delete resources/profiles/Anet/machine/Anet A8 Plus.json

* Changed to original OrcaSlicer profile

My modified printer profiles were overwritten by the original OrcaSlicer profiles. This reversed the changes made under “default_materials.” As a result, 47 errors appear when running the “Python Profile Validation Script”!

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-13 20:53:07 +08:00
Noisyfox
1e11e80bd1 Fix a regression that second extruder settings not properly handled for H2D/X2D (#13648)
Fix a regression that second extruder settings not properly handled for H2D/X2D (OrcaSlicer/OrcaSlicer#13559)

The problem here is how it deals with comparasion between signed & unsigned unmbers. It will convert both into unsigned then do the comparasion,
which means when `extruder_id` is `-1` (which is a valid value, means all extruders), it will be treated as `0xFFFFFFFF` which is obviously greater than `nozzle_volumes->size()`
then be reset to `0`. So when the parameter dialog is built (which will call this function with `extruder_id=-1`), only the first extruder will be set to the correct variant index.
2026-05-13 20:48:50 +08:00
Ian Bassi
34f7d562da Small text update (#13651)
Since this is a new, long string, I'm adding a line break to make it easier to read.
2026-05-13 09:35:22 -03:00
Ian Bassi
0382b27346 Lang update (#13622)
* Update fix model

* updated

* List missing files

* Orca Slicer to OrcaSlicer

* Revert "Orca Slicer to OrcaSlicer"

This reverts commit 711d796e05c4eaaa7579280f83f6ecd555fe3560.

* Only update date if a change was made

* Gcodewriter messages

* #13432 update

* Update OrcaSlicer_it.po
2026-05-13 09:13:09 -03:00
Kappa971
ef8d5a81c4 Update Italian translation (#13585)
* Update Italian translation

* Fix Italian translation

* Fix Italian translation

* Reverts last changes to English text

* Fix typo
2026-05-13 08:59:35 -03:00
Andrew
33be9775dc Fix inconsistent displayed name (#13645)
* Add get_json_string_field helper

Introduce get_json_string_field in OrcaCloudServiceAgent.cpp to safely extract string fields from JSON objects.

* Add resolve_display_name helper

Introduce resolve_display_name to normalize provider metadata labels for the UI. The helper returns the first non-empty value from display_name, nickname, full_name, name, falling back to username, resolving human-facing label across varying provider payloads.

* Replace safe_str anonymous function

Replace get_json_string_field for better readability.

* Replace resolution flow for nickname with function

Consolidate both flows into one function for easier maintenance and more consistency.

* Update OrcaCloudServiceAgent.hpp

* Add OrcaCloudServiceAgent display name tests

Add unit tests verifying OrcaCloudServiceAgent resolves a user's display name from various session JSON shapes.
2026-05-13 17:58:08 +08:00
Thomas Henauer
a167702038 Linux: use GTK sink for Wayland Bambu liveview (#13432)
* Use GTK sink for Wayland liveview

Keep native Wayland sessions on the GTK backend and use a GTK widget based GStreamer sink for Bambu liveview instead of the Wayland video overlay path, which can render black on NVIDIA/Hyprland.

Keep the existing wxMediaCtrl path for X11 and continue preferring software H.264 decoding while demoting GL and hardware decoder paths that caused liveview crashes.

* Narrow Linux liveview fix to native Wayland

* Tighten native Wayland liveview setup

* Tighten Wayland liveview teardown and rank setup

* Package GStreamer gtksink for Wayland liveview

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-13 00:01:10 +08:00
Alexandre Folle de Menezes
e90e22ae82 Improve the language on some strings (#13553)
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2026-05-12 12:55:57 -03:00
Ian Chua
1c7022f4c8 fix: custom zbolt profile filament selection showing only @system (#13468)
* fix: custom zbolt profile filament selection showing only @system

* update renamed_from

* fixed renamed_from

* limit empty compatible_printers exclusion logic to OFL

* restore intended behaviour, updated base files

* rever exclusion logic fix

* reduce fix to just check parent in exclusion list

* remove m_errors increment
2026-05-12 20:17:22 +08:00
Rodrigo Faselli
ad2915e07e Fix collision with the bed using tree supports (#13524)
Fix colllision with the bed using tree supports
2026-05-12 17:46:07 +08:00
Donovan Baarda
dc5897d7b5 Update eigen to v5.0.1 and libigl to v2.6.0. (#11311)
* Update eigen from v3.3.7 to v5.0.1.

This updates eigen from v3.3.7 released on  December 11, 2018-12-11 to v5.0.1
released on 2025-11-11. There have be a large number of bug-fixes,
optimizations, and improvements between these releases. See the details at;

https://gitlab.com/libeigen/eigen/-/releases

It retains the previous custom minimal `CMakeLists.txt`, and adds a
README-OrcaSlicer.md that explains what version and parts of the upstream
eigen release have been included, and where the full release can be found.

* Update libigl from v2.0.0 (or older) to v2.6.0.

This updates libigl from what was probably v2.0.0 released on 2018-10-16 to
v2.6.0 released on 2025-05-15. It's possible the old version was even older
than that but there is no version indicators in the code and I ran out of
patience identifying missing changes and only went back as far as v2.0.0.

There have been a large number of bug-fixes, optimizations, and improvements
between these versions. See the following for details;

https://github.com/libigl/libigl/releases

I retained the minimal custom `CMakeLists.txt`, added `README.md` from the
libigl distribution which identifies the version, and added a
README-OrcaSlicer.md that details the version and parts that have been
included.

* Update libslic3r for libigl v2.6.0 changes.

This updates libslic3r for all changes moving to eigen v5.0.1 and libigl
v2.6.0. Despite the large number of updates to both dependencies, no changes
were required for the eigen update, and only one change was required for the
libigl update.

For libigl, `igl::Hit` was changed to a template taking the Scalar type to
use. Previously it was hard-coded to `float`, so to minimize possible impact
I've updated all places it is used from `igl::Hit` to `igl::Hit<float>`.

* Add compiler option `-DNOMINMAX` for libigl with MSVC.

MSVC by default defines `min(()` and `max()` macros that break
`std::numeric_limits<>::max()`. The upstream cmake that we don't include
adds `-DNOMINMAX` for the libigl module when compiling with MSVC, so we need
to add the same thing here.

* Fix src/libslic3r/TriangleMeshDeal.cpp for the unmodified upstream libigl.

This fixes `TriangleMeshDeal.cpp` to work with the unmodified upstream
libigl v2.6.0. loop.{h,cpp} implementation.

This file and feature was added in PR "BBS Port: Mesh Subdivision" (#12150)
which included changes to `loop.{h,cpp}` in the old version of libigl. This PR
avoids modifying the included dependencies, and uses the updated upstream
versions of those files without any modifications, which requires fixing
TriangleMeshDeal.cpp to work with them.

In particular, the modifications made to `loop.{h,cpp}` included changing the
return type from void to bool, adding additional validation checking of the
input meshes, and returning false if they failed validation. These added
checks looked unnecessary and would only have caught problems if the input
mesh was very corrupt.

To make `TriangleMeshDeal.cpp` work without this built-in checking
functionality, I removed checking/handling of any `false` return value.

There was also a hell of a lot of redundant copying and casting back and forth
between float and double, so I cleaned that up. The input and output meshs use
floats for the vertexes, and there would be no accuracy benefits from casting
to and from doubles for the simple weighted average operations done by
igl::loop(). So this just uses `Eigen:Map` to use the original input mesh
vertex data directly without requiring any copy or casting.

* Move eigen from included `deps_src` to externaly fetched `deps`.

This copys what PrusaSlicer did and moved it from an included dependency under
`deps_src` to an externaly fetched dependency under `deps`. This requires
updating some `CMakeList.txt` configs and removing the old and obsolete
`cmake/modules/FindEigen3.cmake`. The details of when this was done in
PrusaSlicer and the followup fixes are at;

* 21116995d7
* https://github.com/prusa3d/PrusaSlicer/issues/13608
* https://github.com/prusa3d/PrusaSlicer/pull/13609
* e3c277b9ee

For some reason I don't fully understand this also required fixing
`src/slic3r/GUI/GUI_App.cpp` by adding `#include <boost/nowide/cstdio.hpp>` to
fix an `error: ‘remove’ is not a member of ‘boost::nowide'`. The main thing I
don't understand is how it worked before. Note that this include is in the
PrusaSlicer version of this file, but it also significantly deviates from what
is currently in OrcaSlicer in many other ways.

* Whups... I missed adding the deps/Eigen/Eigen.cmake file...

* Tidy some whitespace indenting in CMakeLists.txt.

* Ugh... tabs indenting needing fixes.

* Change the include order of deps/Eigen.

It turns out that although Boost includes some references to Eigen, Eigen also
includes some references to Boost for supporting some of it's additional
numeric types.

I don't think it matters much since we are not using these features, but I
think technically its more correct to say Eigen depends on Boost than the
other way around, so I've re-ordered them.

* Add source for Eigen 5.0.1 download to flatpak yml config.

* Add explicit `DEPENDS dep_Boost to deps/Eigen.

I missed this before. This ensures we don't rely on include orders to make
sure Boost is installed before we configure Eigen.

* Add `DEPENDS dep_Boost dep_GMP dep_MPFR` to deps/Eigen.

It turns out Eigen can also use GMP and MPFR for multi-precision and
multi-precision-rounded numeric types if they are available.

Again, I don't think we are using these so it doesn't really matter, but it is
technically correct and ensures they are there if we ever do need them.

* Fix deps DEPENDENCY ordering for GMP, MPFR, Eigen, and CGAL.

I think this is finally correct. Apparently CGAL also optionally depends on
Eigen, so the correct dependency order from lowest to highest is GMP, MPFR, Eigen, and CGAL.

---------

Co-authored-by: Donovan Baarda <dbaarda@google.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2026-05-12 15:09:13 +08:00
SoftFever
797ee70b0b fixed an issue that FilamentGroupPopup dialog didn't dismiss on macOS (#13574)
On macOS, PopupWindow::OnMouseEvent2 synthesizes a wxEVT_ENTER_WINDOW on
`this` whenever the hovered target transitions from a child back to the
popup itself. wxPopupTransientWindow's OnIdle re-acquires mouse capture
once the cursor leaves the popup, so the next MOTION (with the cursor
already outside) hits OnMouseEvent2 with no child and synthesizes ENTER
on the popup — which would otherwise cancel the dismissal timer started
by OnLeaveWindow. Verify the cursor is actually inside before resetting.
2026-05-12 00:44:14 +08:00
SoftFever
2c259307a5 adjust log level to avoid large log files 2026-05-11 22:39:21 +08:00
Ian Bassi
527ccbd9ba IS Wiki improved (#13571) 2026-05-11 11:28:30 -03:00
SoftFever
2cc865f2aa Fixed a crash occurs when switching between multi tool printers 2026-05-11 22:14:21 +08:00
SoftFever
107c2dfbbd The "Default Filament" may saved in the OrcaSlicer.conf which caused … (#13570)
The "Default Filament" may saved in the OrcaSlicer.conf which caused misleading confusions. Ignore it so Orca won't select it on next loading.
2026-05-11 22:11:26 +08:00
Ian Bassi
f90ca09b3d Fix new IS wiki redirection (#13569) 2026-05-11 09:02:10 -03:00
Ian Bassi
ec424fb674 Machine Input Shaping (#11202)
* Base IS Machine

* Toggle line

* Rebase

* Intento 1

* Wiki IS

* Flavorized

* Tooltips

* Calibration using the same list

* max

* Reorder JD validation

* Refactor set input shaping

* Calibrations IS

* Default values

* Axis

* Orca comments

* Rename input_shaping_enable to input_shaping_emit

Refactor all references of the input shaping configuration option from 'input_shaping_enable' to 'input_shaping_emit' across the codebase. This improves clarity by better reflecting the option's purpose of controlling whether input shaping commands are emitted in the generated G-code.

Restore DONT EMIT FOR KLIPPER

* Refactor input shaping option toggling logic

Simplifies and consolidates the logic for toggling input shaping related options in TabPrinter::toggle_options(). Uses a loop to handle enabling/disabling lines based on GCode flavor compatibility, and refines the conditions for toggling individual options.

* Improve input shaping option toggling logic in TabPrinter

* GrayOut Emit to gcode limits for klipper

* Typo

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

* Typo

* Skip Y input-shaper when type is Disable

If marlin2 and disabled it will be already disabled at X.

* IS expert

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

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-11 19:38:40 +08:00
yw4z
c8be7fb708 Tool Position window improve reading of vertex info (#12614)
* Update GCodeViewer.cpp

* improve reading feature types and enable actual flow rate

* Update GCodeViewer.cpp

* Update GCodeViewer.cpp

* Update GCodeViewer.cpp

* Apply suggestion from @Copilot

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

* hide actual speed and actual flow

---------

Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-05-11 12:20:35 +08:00
yw4z
133dc1c8e5 Printer selection dialog redesign (#12248)
* init

* remove debug

* update

* cleanup

* update

* animate sidebar and search bar when reduce motion not enabled

* add custom snappy scrolling to fix lags

* cleanup

* update

* scroll to vendor after layout change

* improve snapping on events

* update

* match UI of setup guide
2026-05-11 02:16:13 +03:00
pghwinter
f8db5b8ba3 Adjust creality generic ASA first layer temp from 60c to 100c (#13558)
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
2026-05-10 15:30:24 -03:00
SoftFever
3a52fb3b3a Fixed an issue that X2D 0.4 don't have default material 2026-05-11 01:48:18 +08:00
SoftFever
c0ae2bda99 Fix DropDown submenus on Linux/Wayland (#13563)
Hovering a group item (e.g. "Generic" in the filament list) now opens
its submenu correctly. The dropdown stays usable while moving the
cursor between the parent list and the submenu, and dismisses normally
when the user clicks outside.
2026-05-11 01:32:59 +08:00
Igor Mammedov
d37444b34a K2 Plus/K2: add print area bounding box for adaptive bed mesh (#13290)
* K2 Plus: add print area bounding box for adaptive bed mesh

The K2 firmware reads MINX/MINY/MAXX/MAXY gcode comments to
determine the adaptive bed mesh area. Without these, it falls
back to full bed mesh even when calibration is enabled.

K2 Pro also reads these comments (its profiles already had them).

Signed-off-by: Igor Mammedov <niallain@gmail.com>

* K2: add print area bounding box for adaptive bed mesh

Same change as K2 Plus — prepend MINX/MINY/MAXX/MAXY gcode comments
so firmware can determine the adaptive bed mesh area.
K2 Pro already had these.

Signed-off-by: Igor Mammedov <niallain@gmail.com>

* Creality: bump profile version to 02.03.02.72

Signed-off-by: Igor Mammedov <niallain@gmail.com>

---------

Signed-off-by: Igor Mammedov <niallain@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-10 22:30:36 +08:00
FlashforgeUser
cd826d0207 Add Flashforge printer profile for Creator 5, Creator 5 Pro. (#13259)
* Add Flashforge printer profile for Creator 5, Creator 5 Pro.

* Add Flashforge printer png for Creator 5, Creator 5 Pro.

* fix Flashforge printer profile for Creator 5, Creator 5 Pro.

* Add Flashforge printer profile for Creator 5, Creator 5 Pro.

---------

Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-10 22:13:28 +08:00
Byeon Ho cheol.
44f2b4f363 Add Cubicon xCeler-Mini printer model and material profiles (#13172)
* Add Cubicon xCeler-Mini printer model and material profiles

- Add xCeler-Mini machine configuration and 0.4mm nozzle profile
- Add filament profiles for all Cubicon materials (PLA, PLA+, PLAi21, ABS, ABSk, ABS-A100, PETG, PC, PA-CF) for xCeler-Mini
- Add default process profile for xCeler-Mini 0.4mm nozzle
- Add xCeler-Mini cover image
- Update Cubicon.json to register xCeler-Mini machine, filaments, process, and machine list
- Update PA-CF and PLA base filament profiles (filament_max_volumetric_speed adjustment)
- Fix missed per-machine filament and process profiles for xCeler-I and xCeler-Plus

* fix format

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-10 22:02:19 +08:00
yogihybo
c4c133475f Add Repetier Gcode Flavor as option (#13126)
* Fixed PrintConfig.hpp order so Repetier outputs, updated ConfigWizard to use gcode_flavor value rather than static

Add Repetier to enum values and labels

Update to add Repetier base profile to the setup wizard

Re-order gcode_flavors in PrintConfig.hpp and PrintConfig.cpp to match

Revise ConfigWizard.cpp to use gcode_flavor rather than list order

Add Repetier profiles and include in custom.json (profile disables m73 and stop emit machine limits which Repetier doesn't use)

* Fix JSON formatting in Custom.json

* Add support for pressure advance in Repetier flavor

* Add Repetier flavor show motion ability tab is visible

* Refactor jerk handling for Repetier flavor

* Update resources/profiles/Custom/machine/MyRepetier 0.4 nozzle.json

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

* Update resources/profiles/Custom/machine/fdm_repetier_common.json

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

* Update src/libslic3r/PrintConfig.cpp

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

* add back localisation flag for Klipper

* tidy up indentation and braces

* Space indentation for Repetier profiles changed to tab

* Fix space indentation in Custom.json file for Repetier profiles

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-10 21:27:09 +08:00
julianramirezarango-source
86e74f3f48 Add FILL3D PLA Basic, PETG, PP, PPCF, PA filament profiles (#12973)
Add FILL3D additional filament profiles (PLA Basic, PETG, PETG CF, PP, PPCF, PA)

Extends the FILL3D brand support in OrcaFilamentLibrary, following the
PLA Turbo profile merged in #12801.

New profiles:
- FILL3D PLA Basic  (FILL3D002 / FILL3D002SYS)
- FILL3D PETG       (FILL3D003 / FILL3D003SYS)
- FILL3D PP         (FILL3D004 / FILL3D004SYS)
- FILL3D PPCF       (FILL3D005 / FILL3D005SYS)
- FILL3D PA         (FILL3D006 / FILL3D006SYS)
- FILL3D PETG CF    (FILL3D007 / FILL3D007SYS)

Each material has a @base.json with FILL3D-tuned settings and a
minimal @System.json. Validated with orca_extra_profile_check.py: 0 errors.

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-10 21:23:53 +08:00
Robert Baker
972dae22af Add Anycubic Kobra 3 Max (#11586)
Fix Kobra 3 Max printable area and JSON spacing
2026-05-10 21:20:09 +08:00
Kiss Lorand
cad12e4b8a Warn user for abnormal temperature differences for nozzle and bed (first layer vs other layers) (#12345)
Warn for first and other layers big temperature delta

Warn user if temperature differences (first layer vs other layers) for nozzle and plates are above a certain delta.

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-10 15:14:35 +08:00
Kiss Lorand
4e507fffb2 Fix support interface semantics, gap handling, behavior; fix bottom interface generation for organic trees; fix non organic tree interfaces (#11812)
* Fix support interface semantics and gap handling

Fix zero-gap interface detection and gap initialization for supports and raft.
Ensures correct top/bottom contact semantics and avoids relying on default zero gaps.

* Additional fixes and robustness improvements

Fix incorrect coupling between top and bottom support interface spacing and density, ensuring bottom interfaces use their own parameters for smoothing and toolpath generation.
Restore correct bottom interface generation for organic (tree) supports when a non-zero bottom Z gap is used, and preserve contacts even when base polygons are empty.
Improve robustness of organic support slicing by fixing layer index drift and guarding against degenerate polygon boolean operations.

* Typo and semantics fix

differnt_support_interface_filament -> different_support_interface_filament

soluble -> zero_top_z_gap

* Fix non organic tree bottom support interface generation

Slim tree bottom interface layer numbers were capped by the object's layer number beneath it.
Fixed by refactoring the generation algorithm.

* Fix non organic tree interlaced support generation

Deterministic local interlaced support layers generation for non-organic tree support

* Enable support interface multimaterial for non organic tree

Enables mixed-material support interface behavior for non organic tree support type.

* Fix tree support interface layer counts and contact handling

- Correct non‑organic tree top interface layer budgeting so gaps don’t consume a layer (N stays N).
- Remove the extra roof interface pass that was duplicating the 2nd layer.
- Organic tree: use only the lowest contact footprint and avoid extra bottom‑contact extrusion so interface count matches the user setting.

* Bugfixes (a lot)

Many, many bugs fixed, majority edge-case but still not  playing by the rule.
Some of them:
- on multilevel base, on very small level variations the support was capped to the topmost level height
- non-organic tree had gaps for supports in a multilevel base situiation
- independent support layer height had issues with support interfaces (base support beneath bottom interface, top contact layer sometimes missing)
- organic tree had issues with small variation multi-level base
- organic tree support with zero top Z distance could overlap support-material and interface-material paths when separate materials were used
- many, many others (I lost track of them)
2026-05-10 15:12:56 +08:00