Commit Graph

154 Commits

Author SHA1 Message Date
SoftFever
28b7127150 feat(gui): multi-nozzle UI for H2C/A2L
Multi-nozzle sync widget, AMS rack-nozzle mapping popup, calibration rework, send-dialog nozzle mapping and extruder-count UI. Includes the fix to persist the AMS sync badge on filament cards (H2C/A2L and direct-sync printers).
2026-07-09 01:16:26 +08:00
Kris Austin
b58025575d fix: isolate calibration temp paths per user (#14619)
* fix: isolate calibration temp paths per user

The calibration temp files under <temp>/calib were file-scope statics
initialized before set_temporary_dir() runs at startup, so they kept
using the shared system temp root and missed the per-user isolation
added in #14607. On Linux every account shares /tmp, so the first user
to calibrate owns /tmp/calib and later users fail to write there, the
same cross-user collision #14607 fixed for model backups, STEP import,
and part skip.

Build the paths lazily from temporary_dir() instead, through a
calib_temp_dir() accessor and a calib_temp_file() join helper. The base
becomes <temp>/orcaslicer_<uid>/calib on Linux and is unchanged on
Windows, where the temp dir is already per user.

Also make StoreParams::path a std::string rather than a non-owning
const char*. The calibration code had to keep a std::string alive
solely to feed that pointer, and the field was uninitialized by
default; owning the string removes the lifetime hazard for all three
callers and makes the entry guard a reliable empty() check. Confined to
the 3mf project exporter (three callers, two internal reads); no
on-disk, format, or ABI impact.

Follows up on #14607 per @Noisyfox's review suggestion.
2026-07-08 21:14:05 +08:00
SoftFever
b226919217 Fix an issue that speed_values is double inserted 2026-06-22 18:13:22 +08:00
Noisyfox
6690bdf149 Fix calibration
Co-authored-by: zhimin.zeng <zhimin.zeng@bambulab.com>
2026-05-21 23:40:51 +08:00
Noisyfox
8a6573db19 Fix usage of most of the multi-variant parameters 2026-05-21 13:15:33 +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
Francesco Palmarini
d614917d1d Fix H2D LAN print job routing (#13662) 2026-05-16 01:09:31 +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
Ian Bassi
bfb70c598c CalibUtils: Center mesh models (#13252) 2026-04-20 19:18:14 -03:00
Alexandre Folle de Menezes
17e534cac4 Add missing space after extruder name (#12547) 2026-03-03 17:25:33 -03:00
Ian Bassi
5ec4874b33 Linux: Repaired VFA tower (#12290)
* Update CalibUtils.cpp

* VFA.drc case to vfa.drc
2026-02-14 23:23:25 -03:00
Ian Bassi
ed1b03fe6d Reduce Orca weight: Resources to Draco (#12194)
# Description

Transforming internal 3D Files to DRC to reduce orca size

## Calibs

(Not counting temperature_tower)
Original 6,01 MB
Converted 1,57 MB

- Mesh (STL/3MF) to LossLess DRC
	- SCV-V2 116kb -> 15kb
	- fast_tower_test 66kb -> 9kb
	- ringing_tower 172kb -> 22kb
	- pressure_advance_test 124kb -> 16kb
	- tower_with_seam 2kb -> 1kb
	- retraction_tower 1.726kb -> 97kb (done at 25, if 0 = 212kb)
	- ~~temperature_tower~~ Updated, fixed, wider range and Draco in: #12103 5.075kb -> 485kb
	- vfa 1.453kb -> 179kb
- Step
	- SpeedTestStructure 1.312kb -> 86kb
		- Imported:
			- Linear Deflection: 0.002
			- Angle Deflection: 0.25
		- Exported as LossLess DRC

## Handy Models

Original 4,66 MB
Converted 1,53 MB

- STL/3MF to LossLess DRC (Maybe reduce the bit depth???)
	- 3DBenchy 2.417kb -> 570kb (done at 25, if 0 = 1.340kb)
	- calicat 43kb -> 6kb
	- ksr_fdmtest_v4 128kb -> 74kb
	- Orca_stringhell 63kb -> 37kb
	- OrcaToleranceTest 758kb -> 94kb
	- Stanford_Bunny 755kb -> 187kb (done at 25, if 0 = 316kb)
	- Voron_Design_Cube_v7 34kb -> 21kb

## Bit used

After some test with a lot of models and all possible combinations it's safe to say that >20 is BondingBox and mm3 volume the best it can.
So i used 25 just as a safe value in:

- Stanford_Bunny
- 3DBenchy
- retraction_tower

<img width="324" height="499" alt="imagen" src="https://github.com/user-attachments/assets/bb5000cf-c1fa-4153-af2f-691ea59bc254" />
<img width="324" height="499" alt="imagen" src="https://github.com/user-attachments/assets/f38e3528-0d05-4621-984e-f107a0eec91e" />

## MultiPart 3MF

Didint change them, too much trouble for small changes.
2026-02-09 10:48:29 +08:00
SoftFever
978e3b79b5 refactor 2026-01-26 19:34:14 +08:00
Neo
a5f00c4138 Small Loop Memory Optimizations (#11887)
# Description
### `src/libslic3r/PrintApply.cpp` changes (line 318)
Change `const auto` to `const auto&` for loops (simple optimization) .


### `src/slic3r/Utils/CalibUtils.cpp` changes (lines 762, 766, 779, 783/784, 814, 816, 831, 835, 837, 1001)
Define config_pattern
`const auto& config_pattern = SuggestedConfigCalibPAPattern();` (line 762 and 814)

Replace calls of `SuggestedConfigCalibPAPattern()` with `config_pattern` (lines 766, 775, 779, 783, 784, 816, 831, 835, 837)

Change `const auto` to `const auto&` for loops (simple optimization) (lines 816, 835, 837, 1001)

*Also gets rid of the five compiler warnings out of the few hundred/thousand (when building the entire project) that warn about copying loop variables*
i.e.
```/home/neo/git/OrcaSlicer-EDIT-TEMP/src/slic3r/Utils/CalibUtils.cpp:828: note: use reference type to prevent copying
/home/neo/git/OrcaSlicer-EDIT-TEMP/src/slic3r/Utils/CalibUtils.cpp:832: warning: loop variable ‘opt’ creates a copy from type ‘const std::pair<std::__cxx11::basic_string<char>, int>’ [-Wrange-loop-construct]
  832 |     for (const auto opt : SuggestedConfigCalibPAPattern().int_pairs) { print_config.set_key_value(opt.first, new ConfigOptionInt(opt.second)); }
```
## Tests
Should have no functional difference. Contains optimizations, calibrations appear to still function well.
2026-01-15 22:09:30 +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
Noisyfox
ea85db92ba Fix sd card state detection
follow up of 4b7b81a0a2
2025-11-01 13:58:14 +08:00
Noisyfox
f6a4ebe87c Fix auto calib crash 2025-11-01 13:52:41 +08:00
Noisyfox
320d8e435e Revert "FIX: the pa pattern is not work"
This reverts commit 64766860df.
2025-11-01 12:49:59 +08:00
Noisyfox
00122a9de5 Merge branch 'main' into dev/p2s-pr
# Conflicts:
#	src/slic3r/GUI/Jobs/PrintJob.cpp
#	src/slic3r/GUI/SelectMachine.cpp
#	src/slic3r/GUI/SendToPrinter.cpp
#	src/slic3r/Utils/CalibUtils.cpp
2025-10-29 21:03:22 +08:00
Seref
4b7b81a0a2 Add setting to enable uploads to abnormal Storage; improve sd_card_state error reporting (#10981)
* Add option to allow upload to SD-Cards marked as abnormal, also add better error description

+ Adds the options under the Network Settings to allow upload to abnormal SD-Card.
+ If not enabled user will now see why the upload is stuck at 10% depending on the sd_card_state (Readonly/Abnormal)

* Merging with current branch, and updateing "sd-card" to "storage"

* Generate localization and also change remaining sd_card_abnormal states to _storage_abnormal

* Fix issues from merge, and other bugfixes.

* Regenerate localization files.

* Improve Missing Storage Message, Add skip for abnormal storage in printer select dialog
2025-10-29 20:32:38 +08:00
hemai
d4e6b73de1 FIX: update tips msg for single extuder printer
Jira: [STUDIO-15067]
Change-Id: Ieddce97efd740747cec67beb5d13d8a05f9554e2
(cherry picked from commit 98f5d3af5f4f5f47a3f7098fddcd5a2c4e3b7eae)
2025-10-28 15:30:04 +08:00
haolin.tian
aa75c444aa NEW: print with emmc
jira: [STUDIO-14427]
Change-Id: I8b0c56ce1c2b7b90949b72c49acfdbb31c876df1
(cherry picked from commit 76e45bde2540ee418719e00b999c5fd724baec71)
2025-10-28 15:29:57 +08:00
zhimin.zeng
970a226b94 FIX: crash when send cali due to cannot find nozzle_volume_type
jira: none
Change-Id: I8598088b46016ccf5fa241b7abe1ce36689161ac
(cherry picked from commit 50b9ee50aeb2e288c05a81204de4280fb7b395c9)
2025-10-28 15:29:54 +08:00
zhimin.zeng
c7b4a0b089 FIX: the nozzle volume type is incorrect
jira: 14502
Change-Id: Id57a775488d36d95df166a673d63b218edd3dc80
(cherry picked from commit 1c45ed7c87fed2a4dc452d78096f4c7202cc14e0)
2025-10-28 15:29:53 +08:00
zhimin.zeng
14716da0c3 FIX: sync some differences from master
and cherry pick I6d6b337176bb1dd9e99b51b67065e103d054201d
jira: none

Change-Id: I0902ab2986ec1b604eeb67062e886f9fe2151b6a
(cherry picked from commit 90291d550b96de31c9c50814b19d88a453c57290)
2025-10-28 15:29:52 +08:00
hemai
cdd1c22857 FIX: print warning msg wrong in use brass nozzle
Jira: [STUDIO-14325]
Change-Id: Ie84083a3673fc1300996b1564d26d1b58e2b55ee
(cherry picked from commit e8bb9e674115f7da01ba26c1f704e37e739b21a2)
2025-10-28 15:29:48 +08:00
Ian Bassi
a839b81fdf Calibration Cornering Jerk Test + Generic interpolator + Fix (#10962) 2025-10-26 20:44:19 +08:00
Noisyfox
56d8bd8fbe Fix option nullable 2025-10-10 16:57:16 +08:00
zhimin.zeng
0a09c32e31 FIX: the use ams flag is incorrect for cali
github: 7998
Change-Id: I6511969ad50db0d3cf01ecbe8261e461092da1e3
(cherry picked from commit d25405ed8d85e4a80822dddab515795984d7b924)
(cherry picked from commit af7a8350e3726aa7d122eaaefc089bd440433e76)
2025-10-05 00:07:23 +08:00
zhimin.zeng
c1e4876793 FIX: auto cali send failed
and cannot set cali step to 0.001
jira: STUDIO-14042 & STUDIO-14119

Change-Id: I56ecc70d0413398ecacd1c842f7102e810277cfd
(cherry picked from commit c16925931c642d8e27d739a401148bc94c5f3965)
2025-10-03 23:28:58 +08:00
zhimin.zeng
62d94b1a73 ENH: support new auto cali method
jira: STUDIO-10798
Change-Id: Icb47d8502739f0d4217486e2d1805cd609cee67b
(cherry picked from commit 6c2841e57f083cbc6d75eea2af55a8f78d2fa8df)
2025-10-03 23:08:55 +08:00
zhimin.zeng
1943f128bb FIX: O1S skip auto cali
jira: none
Change-Id: I50551800eaccd94874bb66cc580658d9a2768bad
(cherry picked from commit 2b3284c4e51a177402c8a6450d7bb3ece9d2d1d9)
2025-10-03 23:08:55 +08:00
xun.zhang
a543a55e01 ENH: some post commit after merge h2s commit
jira: none

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: If0a36a4698c843a8a690f0fa0fcbbe5f6fafca79
(cherry picked from commit 9fcd26efff2d4b3f3e77faa11ab842664d25b75f)
2025-10-03 23:08:53 +08:00
xun.zhang
26a9cec304 FIX: display the minimum flush data
1. Use the minimum flush between nozzle volume and flush in datalist
2. Add a new param to decide the datalist to use
3. set for o1s

github:7445

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I7b3b69ee06f984b279ae4be47f70f5a472703b15
(cherry picked from commit 036fa80eea9ef8e02d9c9c9e6e7974d5a9a08131)
2025-10-03 23:08:47 +08:00
zhimin.zeng
337d987ec8 ENH: support new auto cali method
jira: STUDIO-10798
Change-Id: I9490b050e93cd556e1d34b1e69e0508eaecec2cd
(cherry picked from commit 7a8b34525ef77d49b6549ecb290e2b1f89c69419)
2025-10-03 23:08:47 +08:00
zhimin.zeng
89c58fb4d9 FIX: add clumping detect area parameter
1. add wrapping detect area parameter
2. fix spiral retract bug
3. modify the enable parameter to print config
4. close clumping detect for manual cali mode
jira: STUDIO-13761 & STUDIO-13766

Change-Id: Ib597ca48a0342a8ae3930f5e790085987f252374
(cherry picked from commit 698a5e6bc0b281ba77fc1fd7692daec09cb440b4)
2025-10-02 17:07:17 +08:00
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
zhimin.zeng
41da6a1ae7 FIX: support calibration for multi-nozzles with different diameters
github: 7543
Change-Id: Ifa20d786836f1991af35b3b95e25f91431d752e0
(cherry picked from commit 0c1053e962c928b253c268fc6658b8ec98f692ff)
2025-10-01 22:01:50 +08:00
hemai
a7ad18e66e ENH: support multi-color with external
Jira: [STUDIO-12520]
Change-Id: I34c88b6a84514a0e56e65723f91d1a2940128e8d
(cherry picked from commit b8879ec648e038080628190fc363251229bbd5ee)
2025-09-28 17:13:54 +08:00
zhimin.zeng
b0e2c37370 FIX: cannot send manual cali for H2D
jira: none
Change-Id: Iceb7db15d5d32d2db04c01527dad65022d580772
(cherry picked from commit 023b5efc4ca4c0e049a6e39cd39830dae73681eb)
2025-09-25 09:04:26 +08:00
noisyfox
eb75a325ca Fix build error when PCH is not used 2025-09-21 13:48:07 +08:00
zhimin.zeng
6adb7da9ea FIX: modify the default k value for display
jira: none
Change-Id: Ib92bf722f21994db02dac5b162215709090d786a
(cherry picked from commit 4cb3a63c78a202e7f4b66250ba94a6350c2bd8d3)
2025-09-21 13:48:03 +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
zhimin.zeng
5dd1bc9a81 FIX: add filament id to filament_ids when send cali job
jira: none
Change-Id: I6e3e8c38b67fe62442fa369f072fd1743f35f38f
(cherry picked from commit ec9193ffb06e12411b4e521c12d9e16f121f54d1)
2025-09-21 13:47:50 +08:00
zhimin.zeng
1cbb0f817d ENH: some tpu filaments are not support auto cali
jira: none
Change-Id: I253e5c5936bc5fb90612f385e358b3015bdabf2e
(cherry picked from commit f38d8f959fabd36e4971c9b58eac193eb30fcd8f)
2025-09-18 10:42:33 +08:00
zhimin.zeng
86847f1f23 FIX: remove redundant diameter check
jira: none
Change-Id: I1c1c5bc91edbe1e5c26c094756c3e2935485d5f7
(cherry picked from commit a2619e7b315decc1ec9873436652ebb32fdfbdef)
2025-09-17 17:58:57 +08:00
zhimin.zeng
1b84f2da1c FIX: the extruder_id is incorrect when cali left nozzle
jira: none
Change-Id: Ice9c5ad93840223d59ac2a1c56935051382d5efb
(cherry picked from commit 53e50e285cee4b99b55f3d66f930429031c347e9)
2025-09-17 17:36:42 +08:00
zhimin.zeng
1c14814246 FIX: modify the message of cali
jira: none
Change-Id: Ibc2dfa0588a02508cc625eedb3da38d0eae2199c
(cherry picked from commit 2004e769cedc01364f36a1542849c8030d3d1a96)
2025-09-17 11:34:49 +08:00
zhou.xu
b477a9e3c0 ENH:add "forward" function in MsgDialog
jira: STUDIO-9971
Change-Id: I699912b4d18cb52aec2badf64a4655d20559ed7c
(cherry picked from commit f608327a108c1eece45ee75bde0c3aa35974f166)
2025-09-16 15:41:08 +08:00