Commit Graph

116 Commits

Author SHA1 Message Date
glowstab
8c18983284 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
43e5afc302 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
c86ca771de 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
01577fd335 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
be2fe13578 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
ef0bfe6197 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
cb00543bb2 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
dc889e387d 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
42d063fc8d Fix spacing and punctuation issues (#11244) 2025-11-17 09:35:53 +00:00
xin.zhang
3df639499b 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
39cd3b1f66 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
63046174d1 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
106dbdecb4 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
c23b4c53d7 Fix dialog icon 2025-10-19 11:41:50 +08:00
Noisyfox
f050dc3430 Fix option nullable 2025-10-10 16:57:16 +08:00
Noisyfox
ea0440c953 Fix crash when sync ams 2025-10-08 22:43:22 +08:00
Noisyfox
849d7f37a6 Fix color & position of device info sync dialogs 2025-10-08 18:03:20 +08:00
Noisyfox
05aedd6d92 Update color 2025-10-05 16:02:17 +08:00
xin.zhang
aae50ecd58 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
d022bac5e3 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
2422ad8013 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
627e8e635b 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
da8da58d52 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
5da190ff0f ENH:update text
jira: STUDIO-12117
Change-Id: Idb8af2fd8826c6e0098dbb9ece1da6b8b9109c96
(cherry picked from commit 38364e36c19ba3d35bf08656d5cc62bb5849f21f)
2025-09-23 09:05:19 +08:00
zhou.xu
733fe68126 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
19372977d1 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
f1d0bd02ea ENH: remove unused codes
jira: [none]
Change-Id: Ia4c14367577ffff9ddcdaf528a8e79f9c1a59209
(cherry picked from commit 7ac47daa69c25c1830ebe4a54b8ce25fdfb00114)
2025-09-21 13:48:01 +08:00
xin.zhang
c0753eb2db 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
e056c01d5c 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
31514734e3 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
97e9d79577 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
5fe2813b0b 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
e3f9bb70c5 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
f2a71a0c12 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
680586ec84 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
8effcfbaf9 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
051f8b1737 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
b04517f100 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
2e48a8fd4b 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
b459d8b1fc 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
3eb37a924d 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
20aa9db03e 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
289a9105ea ENH:modify text
jira: STUDIO-10690
Change-Id: I5716f11b33550fae87948f7915b518f18dcab594
(cherry picked from commit 62a06d3351f05fca6459b0292497df6c6385a2d8)
2025-09-18 10:08:17 +08:00
zhou.xu
e264e89909 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
e47f33b0ab 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
12aad725a0 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
a4c92da019 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
b380c1c4d1 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
2e00222af9 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
tao wang
cab969f5c0 ENH:remove useless ams information
jira:[none]

Change-Id: I2c3319e19e3e46c575c28d8e3b3c41e63552b503
(cherry picked from commit b2ed01716b8fa0b18341e1dad50243e76b6a9ed0)
2025-09-17 21:50:05 +08:00