Commit Graph

117 Commits

Author SHA1 Message Date
Clifford
04aa26da9a Fix nozzle diameter guards for printers that don't report nozzle info (#13255)
Fix nozzle diameter guards for printers that don't report nozzle info (#13236)

PR #12814 changed DevNozzle::m_diameter default from 0.4f to 0.0f to
mean "unknown" when firmware doesn't push nozzle info, and guarded two
call sites in SelectMachine.cpp. PR #13330 introduced
DevExtderSystem::NozzleDiameterMatchesOrUnknown() and adopted it in
get_printer_preset / CalibUtils / CalibrationWizardPresetPage. A few
reachable sites were still left out and now report "mismatch" / fail
silently for every non-BBL printer (Klipper/Moonraker, RRF, Marlin,
etc.) that doesn't push BBL nozzle data.

The most visible symptom: the "Sync filament colors from AMS" button on
Moonraker printers with AMS/AFC silently does nothing, because
get_printer_preset() couldn't find a matching system preset (fixed in
#13330, but the lookup-string sites below kept the bug visible
elsewhere).

Apply NozzleDiameterMatchesOrUnknown at the two remaining comparison
sites:

  src/slic3r/GUI/Plater.cpp
    - file-load printer-mismatch dialog — don't prompt on every load
    - on_select_preset sync_extruder_list gate — skip 0.0 extruders

For the three filament-lookup string-builder sites, fall back to the
currently-selected printer preset's nozzle diameter so the dropdown
isn't empty when firmware hasn't reported a diameter:

  src/slic3r/GUI/AMSMaterialsSetting.cpp (Popup + on_select_filament)
  src/slic3r/GUI/CaliHistoryDialog.cpp (get_all_filaments)

Also remove the dead SyncAmsInfoDialog::is_same_nozzle_diameters method
surfaced while auditing the affected sites — it was introduced
2024-12-30 in commit ad79ed6d93 ("ENH:add SyncAmsInfoDialog",
cherry-picked from Bambu's internal branch) but a caller was never
wired up on the OrcaSlicer side. Dead since introduction.

Fixes #13236
Refs #12814 #13330

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-05-27 20:41:15 +08:00
glowstab
9956ad5b48 X2D Support (#13388)
# Description

Adresses #13294 

- Adds the X2D printer definition, machine presets, process presets,
filament presets, BBL profile index entries, CLI config entries,
filament blacklist updates, and printer/load/calibration/cover assets.
- Updates dual-nozzle handling to use configured toolhead labels and
match Bambu X2D hotend placeholders.
- Adds X2D-specific wipe tower cooling placeholder support and 3MF
filament/nozzle change sequence metadata import/export plumbing.

# Note

I own a P2S and an X2D. That's all. I frankly have no idea if my changes
cause regression on other printers, and have no capability to test. I
know that for my X2D, which runs an AMS, .2mm nozzles, SuperTack, and in
LAN mode, this has been working without issue.

# Screenshots/Recordings/Graphs

<img width="606" height="380" alt="Dual nozzle control"
src="https://github.com/user-attachments/assets/0d1c1063-4621-4097-b97c-d739557bf18c"
/>

*Dual nozzle control*

<img width="726" height="260" alt="image"
src="https://github.com/user-attachments/assets/270355b7-ca67-4ca3-ad19-582b8f11411b"
/>

*Multi nozzle filament override*

<img width="416" height="202" alt="X2D Machine config and dual nozzle
support"
src="https://github.com/user-attachments/assets/6a5c07b2-0d20-4819-8f42-d60731313249"
/>

*X2D Machine config and dual nozzle support*

<img width="397" height="142" alt="Filament for Supports test prints"
src="https://github.com/user-attachments/assets/3c7546bd-0e27-4d56-89b7-d9ca18c976f9"
/>

*Filament for Supports has been used in over 20 hours of test prints*

<img width="210" height="263" alt="Left vs Right filament distinction"
src="https://github.com/user-attachments/assets/03322268-b669-4f14-8d77-c4d96843d219"
/>

*Left vs Right filament distinction*

<img width="557" height="327" alt="Custom filament mapping"
src="https://github.com/user-attachments/assets/c1c4396f-7359-474e-80bd-78fec22f9c82"
/>

*Custom filament mapping*

<img width="556" height="314" alt="Auto map"
src="https://github.com/user-attachments/assets/d83e3217-edce-4340-886e-043962003a30"
/>

*Auto map*

<img width="689" height="664" alt="LAN mode send print with X2D preview
and no errors"
src="https://github.com/user-attachments/assets/76009bbf-31d3-4a6c-979c-8643b487c824"
/>

*LAN mode send print with X2D preview and no errors, dual nozzle
selection*


## Tests

- 20 hours of dual-nozzle printing.
- 100% CTest tests passed
- Validated 208 changed JSON files.

<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
Fix #13294
2026-05-10 02:21:13 +08:00
Noisyfox
fb1f4a7d24 Automatically select external spool if it's the only installed filament (#13356)
* Clean up code

* Filament mapping select ext slot automatically when no AMS filament inserted (OrcaSlicer/OrcaSlicer#13103)

* Show warning if external filament type does not match the one in sliced file
2026-05-09 13:14:27 +08:00
SoftFever
c04be9ab37 Introducing Orca Cloud: https://cloud.orcaslicer.com (#13414)
* Add OrcaCloud sync platform and preset bundle sharing system

  Introduce OrcaCloud, a cloud sync platform for user presets, alongside
  a preset bundle system that enables sharing printer/filament/process
  profiles as local exportable bundles or subscribed cloud bundles.

  OrcaCloud platform:
  - Auth to Orca Cloud
  - Encrypted token storage (file-based or system keychain)
  - User preset sync with
  - Profile migration from default/bambu folders on first login
  - Homepage integration with entrance to cloud.orcaslicer.com

  Preset bundles:
  - Local bundle import/export with bundle_structure.json metadata
  - Subscribed cloud bundles with version-based update checking
  - Thread-safe concurrent bundle access with read-write mutex
  - Canonical bundle preset naming (_local/<id>/... and _subscribed/<id>/...)
  - Bundle presets are read-only; grouped under subheaders in combo boxes
  - PresetBundleDialog with auto-sync toggle, refresh, update notifications
  - Hyperlinked bundle names to cloud bundle pages

  Co-authored-by: Sabriel Koh <sabrielkcr@gmail.com>
  Co-authored-by: Derrick <derrick992110@gmail.com>
  Co-authored-by: Mykola Nahirnyi <mnahirnyi@amcbridge.com>
  Co-authored-by: Ian Chua <iancrb00@gmail.com>
  Co-authored-by: Draginraptor <draginraptor@gmail.com>
  Co-authored-by: ExPikaPaka <112851715+ExPikaPaka@users.noreply.github.com>
  Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
  Co-authored-by: Ocraftyone <Ocraftyone@users.noreply.github.com>
  Co-authored-by: yw4z <ywsyildiz@gmail.com>
  Co-authored-by: peterm-m <101202951+peterm-m@users.noreply.github.com>

* Fixed an issue on Windows it failed to login Orca Cloud with Google account
2026-05-01 18:01:29 +08:00
SoftFever
0af0327d60 Fix narrow/wide string concat in SyncAmsInfoDialog.cpp
Same pattern as earlier fixes: const char[] + std::wstring fails in
wx 3.3 where wxUSE_STD_CONTAINERS=ON. Wrap with wxString().
2026-03-25 11:30:21 +08:00
SoftFever
1065d85dbc Fix wxEXPAND | wxALIGN_* sizer flag conflicts for wxWidgets 3.2+
wxWidgets 3.2+ asserts on invalid sizer flag combinations where
wxEXPAND (which fills the entire space in the secondary direction)
is combined with wxALIGN_* flags (which are meaningless when expanding).
Remove the conflicting wxALIGN_* flags from all 112 occurrences across
21 files, keeping wxEXPAND and any non-conflicting flags intact.
2026-03-24 20:50:44 +08:00
Argo
ffc8a3e307 Adds (AMS) filament sync options: Only sync color / sync all (#12169)
This PR adds a new filament sync mode setting for device-based filament synchronization.
Users can now choose between syncing both filament preset + color (current behavior) or syncing color only, so calibrated local filament profiles are preserved while still updating slot colors from the printer.
It also includes small UI improvements for the new preference entry and sync status messaging.

<img width="665" height="671" alt="image" src="https://github.com/user-attachments/assets/23980846-0113-48ab-84aa-adf5cdab8ab6" />
2026-02-10 09:12:30 +08:00
Argo
1aee0cf526 AMS Filament sync fix for locked Tool 1 & 2 (#12180)
Toolchanger printers with 4 tools were incorrectly treated as dual-nozzle (IDEX-style) printers in AMS Sync. So I was locked to just tool 1/2. 

Adjusted AMS Sync to use dual-nozzle logic only for true 2-nozzle setups (nozzle_nums == 2 and filament_map in {1,2}), and route 3+ tool toolchangers through the generic mapping flow so all tool IDs are handled correctly.

Before: 
<img width="2276" height="1738" alt="image" src="https://github.com/user-attachments/assets/ccebc020-37cf-4af6-8568-a9f331f6c08c" />

After:
<img width="2236" height="1662" alt="image" src="https://github.com/user-attachments/assets/030f49c3-463d-4355-95ba-ba8f95a01ecd" />

Tested on / with:
- Snamaker U1
- ARM macOS
2026-02-05 18:18:59 +08:00
Noisyfox
760f66d3d7 Merge remote-tracking branch 'upstream/main' into dev/p2s-pr
# Conflicts:
#	src/slic3r/GUI/Plater.cpp
#	src/slic3r/GUI/PrePrintChecker.cpp
#	src/slic3r/GUI/StatusPanel.cpp
2025-11-18 09:17:13 +08:00
Alexandre Folle de Menezes
77f7514d97 Fix spacing and punctuation issues (#11244) 2025-11-17 09:35:53 +00:00
xin.zhang
ff1e48a9c4 FIX: the event should be skipped, so that the CheckBox could be toggled
JIRA: [STUDIO-14861]
Change-Id: I72e9e77c0e81e9cf64de7258ca09c225d5c3f807
(cherry picked from commit 9861c3d6bcd7e2720d1fccaacb820e13b5d7adb7)
2025-10-28 15:29:58 +08:00
zhou.xu
a57cc4aa58 FIX:Fix the display issue of dropdown boxes at different resolutions
jira: STUDIO-14605
Change-Id: Ib15b721be1b0e56652bea38d4754032f9a056792
(cherry picked from commit 2044bc85596177c8df4d74299d25498007b5213f)
2025-10-28 15:29:55 +08:00
xin.zhang
299b821c5f ENH: support mix mapping
jira: [STUDIO-13673]
Change-Id: Ic1c89457f5154c108dbab41850ed49561aa34fde
(cherry picked from commit 12942e0545424e2528cc3f3c9aa6947b76469b3d)
2025-10-28 15:29:50 +08:00
xin.zhang
1494731eab FIX: check with internal filament type
jira: [STUDIO-14216]
Change-Id: I89e0d62b572872d7e2ea8e6e57ac662b64baf92b
(cherry picked from commit 6767c2334bbfcffa41d4d020ee4f2e183a327cee)
2025-10-28 15:29:47 +08:00
Noisyfox
1bbdb3fa8e Fix dialog icon 2025-10-19 11:41:50 +08:00
Noisyfox
56d8bd8fbe Fix option nullable 2025-10-10 16:57:16 +08:00
Noisyfox
3ea51fc41f Fix crash when sync ams 2025-10-08 22:43:22 +08:00
Noisyfox
754e602b53 Fix color & position of device info sync dialogs 2025-10-08 18:03:20 +08:00
Noisyfox
a9c0490c68 Update color 2025-10-05 16:02:17 +08:00
xin.zhang
4a787f6ff8 ENH: clean codes about device
JIRA: [STUDIO-13609]
Change-Id: I591de7033360b9570600006cfbce2148a8d031d5
(cherry picked from commit e9c774be8f4c89b8dafa14ef56913612fb68bd0c)
2025-10-02 09:30:48 +08:00
haolin.tian
e17c8bfb80 FIX: remove legacy MQTT optimizations; disconnect previous printer on switch
jira: STUDIO-13455

Change-Id: I88f48801f443b3830fbd2bccbc53577f615e6d96
(cherry picked from commit 562ac1a3e7e75e1cab5e42ab09cec719bf698184)
(cherry picked from commit 5143086c5efb4d974e27ba4f55bd82752ded0a93)
2025-10-01 23:32:08 +08:00
zhou.xu
517b6c09a8 FIX:WxColour (0x00AE42) represents bgr input, incorrect use
jira: STUDIO-12347
Change-Id: If03e23f2ee7cbb5dcb124453fb0a1ea67c3633a0
(cherry picked from commit 8a22fab6d73fe2694b5006712d5e72619ddea51c)
2025-09-24 10:40:45 +08:00
zhou.xu
d7c15664dd ENH:moudify text for SyncNozzleAndAmsDialog
jira: STUDIO-12221
Change-Id: Ib6ba969ca97da53d7bcc04b5db08d83389bf4b5c
(cherry picked from commit 37013329a69854545be2d369021f89e54b9727ec)
2025-09-23 17:20:09 +08:00
tao wang
0317e0dd88 ENH:auto switch to using local broker for data transmission
jira:[STUDIO-11616]

Change-Id: I91066a629684dcff4efc73f310c2e0a7843954f4
(cherry picked from commit ac805e7d9150f56d40ec261fd2ed4007e1413b8e)
2025-09-23 09:20:15 +08:00
zhou.xu
6871bdd3b9 ENH:update text
jira: STUDIO-12117
Change-Id: Idb8af2fd8826c6e0098dbb9ece1da6b8b9109c96
(cherry picked from commit 38364e36c19ba3d35bf08656d5cc62bb5849f21f)
2025-09-23 09:05:19 +08:00
zhou.xu
d408db2fde ENH:change wxStaticText to label in linux to solve darkmode problem
jira: STUDIO-11419
Change-Id: If7373deb03962ffd860a02acbf47b66f4dd68539
(cherry picked from commit c4325ade348731764afe3e645768387e402f8332)
(cherry picked from commit 02fcbc785efae3c96a134a7ae77920693c95dc08)
2025-09-21 18:03:25 +08:00
tao wang
dc56608d13 NEW:add pre print checker
jira:[none]

Change-Id: Ic1469d30dff30e1eba92d8bfacf58d0f0b789157
(cherry picked from commit 8cfa735c6cac432a2b97dea7703e810f8eef6d04)
2025-09-21 13:48:03 +08:00
xin.zhang
f5314b2ae1 ENH: remove unused codes
jira: [none]
Change-Id: Ia4c14367577ffff9ddcdaf528a8e79f9c1a59209
(cherry picked from commit 7ac47daa69c25c1830ebe4a54b8ce25fdfb00114)
2025-09-21 13:48:01 +08:00
xin.zhang
472a48acc6 ENH: add nozzle type ntTungstenCarbide
jira: [STUDIO-11597]
Change-Id: Ibec41549042d253aeb85ba81e93e7c26a4a56ed2
(cherry picked from commit 1352cff31427eadd2c85ce4c9602ab3379a5ae9e)
2025-09-21 13:48:01 +08:00
zhou.xu
d367136341 FIX:Missed an unmatched processing and add update_final_thumbnail_data
jira: STUDIO-11528
Change-Id: Ibc5b8423731d5028c8f3d2fb14518cfd26293a21
(cherry picked from commit d66d18529a874de5314748ee0cfded6b459eceb8)
2025-09-21 13:47:58 +08:00
zhou.xu
d692b8b6cb FIX:fix ams sync error when all map is unmapped and change to override mode
jira: STUDIO-11482
Change-Id: If73721c9a0419c616201c441a1ce6e5a4fed380a
(cherry picked from commit 3cf6d2e3afaa8975031b1464b303e6f6a326ddb7)
2025-09-21 13:47:57 +08:00
zhou.xu
836cfc5383 ENH:For reset buttons in small language environments, use fixed spacing
jira: STUDIO-11335
Change-Id: I6869c677176f9048731d23eb993dc3b0076f56b8
(cherry picked from commit 6c8df0c5be8168aabe60eb96eebc7bb2372be462)
2025-09-21 13:47:52 +08:00
xin.zhang
94fed58ff9 ENH: update Send to print dialog
jira: [STUDIO-11230][STUDIO-11260][STUDIO-11259]
Change-Id: I6fdbeebf2a491f354c122eb35e5858bd6e72591c
(cherry picked from commit f3992d3e9420e0bd4987c6ca4cfe96f9f35bdcd1)
2025-09-21 13:47:52 +08:00
zhou.xu
2d3d68c922 ENH:When the AMS option is turned on or off, update the correct thumbnail
jira: none
Change-Id: Ia001e4baa7de72ab077cf0fb76c45d4cb8bac088
(cherry picked from commit 89aa62f8b4cd11fa10a898956f1c57ae1ef64a70)
2025-09-21 13:47:50 +08:00
tao wang
157bec00a1 ENH:auto switch use ams option
jira:[none]

Change-Id: Ia1d5231284515226277b16d771342141e654a23d
(cherry picked from commit 956f1b9a59c11bce0428c3162beac45a5272c919)
2025-09-20 15:30:05 +08:00
zhou.xu
dd6fff08f7 FIX:delete no use code
jira: STUDIO-11059
Change-Id: Ief3e45f4e6cc079c60161b9b9a55b2152013b70e
(cherry picked from commit ab26fb71a50c930c4c3945f91d275dbe78ea8c5c)
2025-09-18 17:01:19 +08:00
zhou.xu
d87cbcf2f2 ENH:modidy width of SyncNozzleAndAmsDialog and FinishSyncAmsDialog
jira: STUDIO-11045
Change-Id: I99164b2172aeb7fb955348fc87f7da24aefe930c
(cherry picked from commit 61f61bce3ed12fbceff7fe98eead6b27a39df5ea)
2025-09-18 16:44:03 +08:00
xin.zhang
68741d019c FIX: move network hold to MainFrame
jira: [STUDIO-10994]
Change-Id: I2c30ba3b0f17d52079332634a9a2dd138859e083
(cherry picked from commit 506e82cb02a79d97a30effde53fe85c7d278858c)
2025-09-18 16:22:57 +08:00
zhou.xu
06a86289cc FIX:Optimize button and checkbox resolution adaptation
jira: STUDIO-11003
Change-Id: Ia6325e3069a09cef45643442ad6f6ee929958446
(cherry picked from commit 7901e9fbaaa65e4746a16a89791a4a835db0e71e)
2025-09-18 16:20:19 +08:00
zhou.xu
5113b2c2dc ENH:the "distance" var should init to 0 in the release environment of Mac
jira: STUDIO-10967
Change-Id: I85b1e87dc80846f50c3bd29c7aa05f89c39d17de
(cherry picked from commit 4b368cb2ecafd53ad1bbe61946bb9b1bafce64cb)
2025-09-18 16:16:20 +08:00
xin.zhang
907573a158 ENH: support msw_rescale
jira: [STUDIO-10907]
Change-Id: I1e06043fad6345c47e8c5ceb28db204955aa0969
(cherry picked from commit 193caabdc79d966e8226b5a9b340763b1711d0f3)
2025-09-18 15:43:34 +08:00
xin.zhang
293787609b FIX: show all re-fill while sending print
jira: [STUDIO-10888]
Change-Id: I2b1a98eddd2c34a83a73ef7cbef39ab05d569aef
(cherry picked from commit ee76a2191ff633af3311ef659b9feb63e7bdedeb)
2025-09-18 15:22:56 +08:00
zhou.xu
d434c743f3 ENH:add "reset all" function
jira: none
Change-Id: Iac2c267e95ca0589bf2e6d6d536d70d3b3e4a70c
(cherry picked from commit 7239f7bfaad2e1dc488118188addda3fb015793a)
2025-09-18 10:18:18 +08:00
zhou.xu
111d7ca501 ENH:modify text
jira: STUDIO-10690
Change-Id: I5716f11b33550fae87948f7915b518f18dcab594
(cherry picked from commit 62a06d3351f05fca6459b0292497df6c6385a2d8)
2025-09-18 10:08:17 +08:00
zhou.xu
dc9d5661c3 ENH:adjust UI in AmsMapingPopup
jira: none
Change-Id: Ib2e7e642d7a1700abb92eca2546614b2fd7d2bd4
(cherry picked from commit 5c8d62097384836a1a6d496983734c4e3220baaa)
2025-09-18 10:08:08 +08:00
zhou.xu
15c24d903f FIX:update_items_check_state after reset_one_ams_material
jira: none
Change-Id: I1081445da90c6f3267121b864a0e0d868b6b719b
(cherry picked from commit 61a3ffbf4369df2b0a18f7c1f7480c51f24124e8)
2025-09-17 23:09:13 +08:00
zhou.xu
587e524302 ENH:Optimize the case with only external components
jira: STUDIO-9989
Change-Id: I7be626e8c86f684029a4c34fc8b800b880fe1fcd
(cherry picked from commit 1ea13f9846e5b66b0304cd4b6bcbfbb21d8919d8)
2025-09-17 23:08:16 +08:00
xin.zhang
7b4b655ba1 FIX: update the mapping item
jira: [STUDIO-9942]
Change-Id: I5b46fb530f08d0de4c8cf5a23707ec539d82356d
(cherry picked from commit 8b237bf959d2718c0397530af599c3a24a650d74)
2025-09-17 22:45:11 +08:00
jun.zhang
51efa961d4 FIX: thumbnail anti-aliasing
jira: STUDIO-10640

Change-Id: I70a7f6794a17df7d15b02bc7b4cdaee5bf95151a
(cherry picked from commit 9511a523632b6b12aa50cac1ae061d9062841bbf)
(cherry picked from commit ca259355bb71905868c8d231af66c719c2ccea48)
2025-09-17 22:08:59 +08:00
zhou.xu
3d93ed271b ENH:Add a colon to the text
jira: STUDIO-10691
Change-Id: I3cbc1dbc8c05689fe63f8c1af28cab2ab2cef6cd
(cherry picked from commit 986f0c72b85a1b1a0204d79cb149d684422c4b5b)
2025-09-17 21:50:20 +08:00