Commit Graph

17 Commits

Author SHA1 Message Date
SoftFever
75c8d0775a feat(gui): per-filament nozzle volume selection and persistence
- FilamentMapDialog's manual page understands volume types: a mixed
  (Hybrid) extruder shows separate Standard / High Flow drop zones
  with live sub-nozzle counts, a validation timer with an inline
  error + "set nozzle count" suggestion, and composes a per-filament
  volume map on OK (persisted to the plate or globally)
- switching an extruder's Flow type rewrites the affected plate map
  entries; plate maps stay sized across filament add/delete/count
  changes (values keep their filament, no index shift)
- CLI: manual mapping on multi-nozzle printers synthesizes the volume
  map from extruder flow types when absent; nozzle-manual mode
  requires explicit maps; computed maps land on the plate so exported
  projects carry filament_volume_maps
- filament_nozzle_map joins the project options (selection seeding +
  filament-count resizing)
- pot entries for the new dialog strings

All 19 reference fixtures byte-identical; slicing an exported Hybrid
project reproduces its g-code byte-for-byte with the volume map
round-tripped through model_settings.config.
2026-07-11 16:37:50 +08:00
SoftFever
0d31325df0 feat: Filament Track Switch (H2-series O2L-FTS) support
The Filament Track Switch (H2-series accessory, product code O2L-FTS) feeds
every AMS to both extruders through a two-track switch. Port full support
across the device layer, project config, and GUI.

Device / config:
- Model the switch-aware AMS binding (the set of extruders an AMS can feed
  and which input track A/B feeds it), switch readiness, the O2L-FTS firmware
  module, and the fun2 capability bit for checking a slice against installed
  hardware.
- Register has_filament_switcher and enable_filament_dynamic_map as project
  config that persists with the project and restores from a saved 3mf, and
  force both back to false on every project/printer/CLI load path. Live
  device sync is the only thing that sets them true.

GUI:
- Sidebar sync activates the switch from live device state, attributes each
  AMS to the extruder its input track feeds, shows a floating status icon
  (ready / not-calibrated), and surfaces a one-time tip / not-calibrated
  warning.
- Send dialog gains a non-blocking slice-vs-hardware mismatch warning and a
  blocking error when a slice needs dynamic nozzle mapping but the switch is
  missing or not set up.
- AMS load/unload guards, AMS-view routing glyph + un-calibrated banner +
  hidden external-spool road, and mapping-popup external-spool lockout.
- Filament pickers collapse the per-extruder split into a single deduplicated
  "AMS filaments" group with a smart-assign toggle when the switch is ready.
- Firmware-upgrade panel lists the O2L-FTS accessory and its version.
- Device-provided filament-change steps (ams.cfs) drive the change-step
  display when firmware sends them, including the three switch steps.
- "Load current filament" asks which extruder to feed via a
  FeedDirectionDialog when the switch is calibrated.

Inert without the accessory: every path is gated on the switch being
installed (MQTT aux bit 29, default off) or ready, both project flags default
false, and the per-extruder AMS attribution is byte-identical, so AMS state,
the send/load UI, and sliced g-code are unchanged for every printer that does
not report a Filament Track Switch.
2026-07-09 18:57:05 +08:00
Shantanu Joshi
f203cdd682 Fix typo 'cancle' -> 'cancel' (#13769)
Co-authored-by: Shantanu Joshi <shan@example.com>
2026-05-21 13:18:52 +03:00
Mack
3dd369ad4e ENH:FilamentMapDialog add filament type
jira: nojira
Change-Id: I08a3c037ffa6227602e71b97697a1bc61e3d5050
(cherry picked from commit 6621fd0e20bce4c32788a86a6fde018f3a7f41ef)
2025-09-17 14:35:02 +08:00
xun.zhang
acbea85829 FIX: add some missing translate keys
1. Add missing translation keys
2. Fix filament map dialog can't display in auto mode

JIRA:STUDIO-10216

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I0c3927877dd91befc2463a300324bc6823615673
(cherry picked from commit 3733f33953fa89b490be0d2f36e225fa62dcbc00)
2025-09-17 10:21:15 +08:00
xun.zhang
1384226447 ENH: refine logic with filament group
1. In slice plate mode,force use plate mode
2. In slice all mode, force use global mode

jira:STUDIO-10390

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I3edb559043fdc52339b7f611643b8f5ac116571d
(cherry picked from commit f042c817a7ed21b4b18915e2a649aed733a80f48)
2025-09-17 09:45:59 +08:00
xun.zhang
897a78ce9a ENH: refine the logic of filament map dialog
1. Always change the map and mode in plate if plate mode is not default
2. Always add pop up before slice
3. Fix the mapping issue in gcode viewer

jira: studio-9523,studio-9519,studio-9513,studio-9479

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I0d7d5daf081951ea2d49e06565762ac24064e77c
(cherry picked from commit afaa48520e16b6808f05e511ac1cfe91acadc84b)
2025-09-09 11:03:56 +08:00
xun.zhang
347cd4aadd ENH: refine some ui logics with filament map
1. Optimize performance with pop up
2. Optimize display in dark mode

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ic0f72a42e791fb58b84e7a88d7a34ced3a9e8c38
(cherry picked from commit 481ebc4a4b9353d8c9ef9d6bf64cb0006364e839)
2025-09-07 00:46:58 +08:00
xun.zhang
b2e587ce47 FIX: fail to translate in filamnet group pop up
1. Initilize the sentences in construct function
2. Fix some ui bugs

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I991df343932bb60d5ba86f41f641661f2159da47
(cherry picked from commit 05383187e02cc0dec6a541859d44237a63d01820)
2025-09-06 23:53:29 +08:00
xun.zhang
057a1a4f5d ENH: refine ui logic with filament group
1. Add filament group pop up when slice
2. Add more filament modes in filament dialog
3. Add capsule button

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I8bc3a2e08696e406b89e550a0335a1a36728ee65
(cherry picked from commit f1702a5c3604f685a3b35ea0e83d29bdbbd90f70)
2025-09-06 23:52:20 +08:00
zhimin.zeng
5d17c51aa9 FIX: add set to Optimal button
2. modify the manual mode of filament_dialog
jira: none
Change-Id: I2ce6834eb65de2da70e7649346fc88b90f280b29

Change-Id: I18448e800fe3338f045d35f7a1fa6c3e3c8eef79
(cherry picked from commit 5dce0ebc06f6aace50374fa37bd91cabb5213385)
2025-08-24 23:18:22 +08:00
liz.li
0b71026bed ENH: add filament arrangement drag image and other UI details
jira: new

Change-Id: I2ebbfd2a20c2d2f6059c2508467cd69dd272f943
(cherry picked from commit 3e633455def0a40f9f041320c7cd3cc4ae65be02)
2025-08-24 23:18:22 +08:00
zhimin.zeng
1bcc4614b8 FIX: modify UI of FilamentMapDialog
1. Modify dragging behavior
2. The swap button is grayed out in automatic mode
jira:none

Change-Id: Idff795bf092c4959c67d0711b0be316fba997684
(cherry picked from commit c7486e1c5e56667cab61ee9a97898f03b65b64b8)
2025-08-24 23:18:18 +08:00
zhimin.zeng
7c6edc004f ENH: modify the UI of filament map dialog
jira: none
Change-Id: I513a518de4509fb7adbc81d9fc3b0fc43fb3244a
(cherry picked from commit 631baa3999ece2540c66cbf1488c55b64cadaf8e)
2025-08-24 23:18:17 +08:00
zhimin.zeng
1ada437979 FIX: enhance filament_map auto manual behavior
1. auto mode dragdrop is not allowed
2. not display filament_map when there is no result in auto mode

jira:none

Change-Id: I0800e0d832e27fe459a17bb1aa829b5e72d0ee8f
(cherry picked from commit 9ee85bef34aaabe7a4cef251f07e77f9af693a2f)
2025-08-24 23:18:11 +08:00
zhimin.zeng
366701958c FIX: only display used filament on filament dialog
jira: none
Change-Id: Id643d1efad26eb2719f873543c2e451fe59dc5bb
(cherry picked from commit 1d4ce2bad5c4878f75208486d5862009154fc7ff)
2025-08-24 23:18:08 +08:00
zhimin.zeng
c34eb170f1 NEW: Add FilamentMapDialog
support drag drop to modify the filament map
jira: none

Change-Id: I0ed3180a0fa8e95e7c871bb039eb844faccd1344
(cherry picked from commit 67f67d76889668fdd80ae5e496b6cbca5f771a43)
2025-08-24 23:18:07 +08:00