Commit Graph

29052 Commits

Author SHA1 Message Date
Rodrigo Faselli
b3fe733bf2 Fix Build (#13694) nightly-builds 2026-05-16 12:56:00 -03:00
SoftFever
a0e1aa2507 update agents.md 2026-05-16 22:22:06 +08:00
yw4z
95b23cea0f [Linux] Fix scrollbar appears while 1 filament exist on filament area (#13363)
init
2026-05-16 22:10:17 +08:00
packerlschupfer
f760f4e462 Fix Flow Ratio dialog shrinking after main window minimize (#13545)
FlowRateCalibrationDialog was missing the SetSizeHints call that every
other calibration dialog in calib_dlg.cpp uses (Cornering, Pa, Pa Pattern,
Max Volumetric Speed, Temperature, Retraction, VFA, Input Shaping). Without
it, the dialog has no enforced minimum size: on wxGTK, iconizing the main
window while the dialog is open triggers a layout/refresh that re-runs
Fit() with transient zero-sized children, collapsing the dialog to ~222x249
px with the OK button clipped and unreachable. The window manager then
honors the (incorrect) small geometry hint, so the user cannot resize it
back manually.

Two changes:

* Add v_sizer->SetSizeHints(this) after Fit() in the constructor, matching
  the pattern used by all other dialogs in this file. This locks in the
  correct minimum the first time Fit() runs, before any iconize event.

* Remove the redundant Fit() from on_dpi_changed. With SetSizeHints in
  place the WM enforces the minimum, but the unconditional Fit() on every
  DPI/refresh signal was the trigger for the shrink path; Refresh() alone
  is sufficient here.

Co-authored-by: Packerlschupfer <packerl@schupfer.at>
2026-05-16 21:29:01 +08:00
Ian Bassi
9ec2fe3c45 Add tooltips to Transfer buttons (#13535)
* Add tooltips to Transfer buttons

Set contextual tooltips for the Discard, Transfer and Save buttons when a dependent preset is present. The code computes the previous and new profile names and provides localized explanatory tooltips that clarify that switching will discard changes, transfer "New Value" settings, or save changes into the current profile. This improves UX by making the consequences of each action explicit.

* added some endlines

Co-Authored-By: yw4z <yw4z@outlook.com>

---------

Co-authored-by: yw4z <yw4z@outlook.com>
2026-05-16 21:28:15 +08:00
Andrei
a0717853df Reduce warnings stemming from libslic3r/Config.hpp (#13533)
https://github.com/prusa3d/PrusaSlicer/pull/15106
2026-05-16 21:16:57 +08:00
gaaat98
82cedc0316 Improved SnapmakerPrinterAgent filament sync (#13265)
* Improved SnapmakerPrinterAgent filament sync

* Update src/slic3r/Utils/SnapmakerPrinterAgent.cpp

Fixed missing assignment

* fixed issues

---------
2026-05-16 20:04:10 +08:00
Kevin J. Lynagh
8dd1dd8921 Fix filament syncing by fixing nozzle diameter guards (#13330)
* Remove unused `get_printer_preset` calls.

* `Plater::check_printer_initialized` should skip nozzle flow type checks if nozzle is unknown.

Also remove unnecessary `is_multi_extruders` check.

* Remove unused `CalibUtils::is_same_nozzle_diameters()` fn.

* Simplify `CalibUtils::check_printable_status_before_cali`.

The single-arity can delegate to the vectorized arity.

* Add `DevExtruderSystem::NozzleDiameterMatchesOrUnknown` to simply checks.

* Update `CalibrationPresetPage::update_sync_button_status()` to use `NozzleDiameterMatchesOrUnknown`.

Simplify logic by iterating over each extruder and checking for diameter and volume type match.

The previous code had several mistakes (from what I could tell):

- `curr_obj->is_multi_extruders()` doesn't imply exactly 2 extruders
- the single/multi branch served no purpose
- the single branch failed to check the volume type

* Specify `std::fabs` and add explicit import.

Ref: https://github.com/OrcaSlicer/OrcaSlicer/pull/13330#discussion_r3133613736

Not sure how idiomatic this is in C++ / OrcaSlicer codebase, but CoPilot suggested it and it seems reasonable.

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-16 19:13:40 +08:00
anjis
427d0f7a9f Support file uploads and the device details page for Elegoo Centauri Carbon 2 (#13212)
* Support file uploads and the device details page for CC2 printers.

* Resolved build issues for Linux and macOS.

* 1. Added `ElegooPrinterWebViewHandler` to handle WebUI messages for Elegoo printers. Other printers will keep the current behavior.
2. Added a static `get_print_host_webui` method in `PrintHost` to retrieve the printer WebUI URL.

* Improved timeout handling for CC2 file upload and SN info APIs.

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-16 15:22:31 +08:00
gedanke
5a136a25d1 perf: speed up startup and show progress in splash screen (#13667)
* perf: speed up startup and show progress in splash screen

Cold-start was ~15 s. Profiled in GUI_App::on_init_inner: 5 s in
preset_bundle->load_presets (sequential vendor loading of ~3000 JSON
profile files), 3.7 s in new MainFrame(), and a 1.5 s splash screen
that closed long before init finished — so the user stared at a
frozen blank screen for several seconds with no feedback.

Changes:

- PresetBundle::load_system_presets_from_json: parallelize vendor
  loading with TBB. ORCA_FILAMENT_LIBRARY is loaded first
  synchronously (it is the inheritance base for filaments); the
  remaining vendors are loaded in parallel into separate PresetBundle
  instances, then sequentially merged. On a typical setup this drops
  load_presets from ~5 s to ~3.5 s; the saving scales with vendor
  count and CPU cores.

- SplashScreen: remove the wxSPLASH_TIMEOUT flag so the splash stays
  visible until the main window is shown explicitly, and add status
  updates at each slow init phase ("Loading printer and filament
  profiles", "Creating main window", "Loading current preset",
  "Showing main window"). The splash is destroyed right after
  mainframe->Show(true).

- MainFrame: FileHistory::LoadThumbnails moved to a detached
  background thread. The previous synchronous call opened every recent
  3MF file at startup — on macOS that triggered the TCC permission
  dialog for ~/Downloads mid-launch, freezing the whole app until the
  user clicked. Letting it run in the background means the UI is
  responsive from the start and thumbnails populate when ready.

* revert: keep LoadThumbnails on the main thread (review feedback)

SoftFever pointed out the detached thread introduces race conditions
(e.g. MainFrame::open_recent_project() reading while the thread writes
m_thumbnails) and that thumbnails may not appear if the homepage shows
before it finishes. LoadThumbnails already uses tbb::parallel_for
internally, so the call-site offload gave no real speedup. Reverted to
the original synchronous call. The macOS TCC-dialog concern that
motivated this will be handled properly in the lazy-init refactor.

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-16 14:42:25 +08:00
Francesco Palmarini
83179d5978 Make flushing volumes dialog resizable (#13663) 2026-05-16 07:37:16 +01:00
Allyn Malventano
fb5296aad6 fix: register enable_filament_dynamic_map and has_filament_switcher config options (#13623)
fix(printconfig): register enable_filament_dynamic_map and has_filament_switcher options

PR #13388 (X2D Support) added import/export for these options in
bbs_3mf.cpp but never registered them in PrintConfig.cpp. Loading any
.3mf containing these keys throws UnknownOptionException at
PartPlate.cpp:6153 when config->apply() looks up the missing definition.
2026-05-16 14:24:26 +08:00
RobertKuszmar
74f2becb23 Fix PrinterWebView only clear deferred url on success (#11508)
* Fix only clear deferred url on success

* add comments

---------

Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-05-16 14:20:43 +08:00
Justin Levine
1555fc92a5 docs(readme): update logo credit GitHub username (#13680) 2026-05-15 22:40:36 -03:00
Ian Bassi
2f7441317b Updates for printer covers (#13660)
* Remove border for X2D image

* RatRig improvement

* Update Elegoo Centauri_cover.png

* Update Kingroon KLP1_cover.png

* Update FlyingBear Reborn3_cover.png

* Update Folgertech FT-6_cover.png

* Update Snapmaker J1_cover.png

* flashforge c5

* RatRir diagonal

* FlashForge perspective

* Update Orca Arena X1 Carbon_cover.png

* Update Tiertime UP310 Pro_cover.png

* Update Folgertech i3_cover.png

* Update FlyingBear Ghost 6_cover.png

* Update Lulzbot Taz 4 or 5_cover.png

* Update Snapmaker J1_cover.png

* Revert "Update Orca Arena X1 Carbon_cover.png"

This reverts commit a6e0f592a1.

* Update Orca Arena X1 Carbon_cover.png

* Update Elegoo Centauri_cover.png

* Update Tiertime UP310 Pro_cover.png

* Update Snapmaker J1_cover.png

* Update Bambu Lab X2D_cover.png

* flashforge creator

* Update Snapmaker U1_cover.png

* Update Folgertech FT-6_cover.png

* Update Kingroon KLP1_cover.png

* Update Folgertech i3_cover.png

* LH stinger

* Update Lulzbot Taz 4 or 5_cover.png

* flyingbear

* LH Stinger

* deltamaker

* ratrig

* Update Generic Repetier Printer_cover.png

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-05-15 20:44:33 -03:00
yw4z
b3bb8604c4 UI fixes / improvements (#12513)
* bbl device selector search box

* align file and more menus with its button

* fix multiline inputbox border color on windows

* fix multiline inputbox border color on windows

* preferences: use content width on combobox dropdowns

* about:  match version text size on macOS

* msg dialog improvements

* fix canvas menu overlapping with sliced plates toolbar

* bbl bind dialog button placement

* bbl color picker

* Update StepMeshDialog.cpp

* drop file dialog

* drop dialog revert fonts

* revert windows multiline border

* Update StepMeshDialog.cpp

* update

* Flushing Volumes: match style of combobox

* fix hyperlink color on canvas notifications

* fix possible issues with shared profiles notification
2026-05-16 01:12:30 +08:00
Francesco Palmarini
d614917d1d Fix H2D LAN print job routing (#13662) 2026-05-16 01:09:31 +08:00
Ocraftyone
4154785025 Speed up encoding check (#10873)
Update encoding check
2026-05-15 23:45:39 +08:00
SoftFever
2167378bbe Enhancement: eliminate UI freeze during cloud preset sync on startup (#13673)
fix: eliminate UI freeze during cloud preset sync on startup
  Move synchronous HTTP calls off the main thread in
  GUI_App::start_sync_user_preset():

  - Call scan_orphaned_info_files() and process_delete_presets() in
    the background sync thread instead of the UI thread, so their
    HTTP DELETE calls don't block startup.
  - Call reload_settings() directly from the background thread
    instead of via CallAfter, so get_user_presets() (HTTP GET) and
    load/save_user_presets (file I/O) run off the main thread.
  - Guard update_side_preset_ui() and app_config->save() with
    is_main_thread_active() / CallAfter so they're safe when called
    from a worker thread.
  - Simplifiy finishFn lambdas: the progress-dialog case only
    destroys the dialog; the no-dialog case is a no-op.
2026-05-15 19:45:24 +08:00
yw4z
cf0dfd12ce Clarify Create nozzle for existing printer (#11773)
* Update CreatePresetsDialog.cpp

* add information for existing nozzles
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