SoftFever
18b9279c26
feat(print): add per-filament config-index resolvers and filament_map_2
...
- Print::get_nozzle_config_index / get_filament_config_indx resolve a
filament's variant slot per layer from the nozzle group result, with
hashed index caches; when no group result is published (sequential
prints), they fall back to the static filament->extruder mapping so
behavior is unchanged
- filament_map_2 caches each filament's resolved print-variant slot;
rebuilt in Print::apply after the filament_map diff handling and in
the filament-map write-back
- filament retract overrides now key by slot indices: apply_override
fallback indexing flips to 0-based, Print::apply passes
filament_map/extruder indices, the write-back passes filament_map_2
(identical resolution while slots equal extruders)
- filament_volume_map/filament_nozzle_map/filament_map_2/
filament_self_index become PrintConfig static members (required for
member access); grouping input guards tightened so their registered
1-element defaults are never mistaken for real per-filament maps
(single-filament manual mode keeps the mix-marker fallback)
- update_filament_self_index_cache refreshed at every full-config
assignment
- tests: 0-based apply_override fallback, get_config_index_base
hit/miss/mixed-type cases
The resolvers are not consumed by the g-code writer yet. Non-Hybrid
g-code is unchanged except the config header, which now serializes the
three new static keys (defaults until the per-filament producer lands);
verified by the 19-fixture byte gate: 3 added header lines per fixture,
zero motion changes.
2026-07-11 02:29:40 +08:00
..
2026-06-03 10:19:04 -03:00
2026-07-08 20:58:39 +08:00
2024-10-05 21:53:16 +03:00
2026-05-08 19:22:49 +08:00
2026-07-08 15:40:19 -03:00
2026-07-09 13:13:29 +08:00
2026-07-11 02:29:40 +08:00
2026-06-18 09:13:51 -03:00
2024-08-12 00:00:20 +08:00
2026-05-12 15:09:13 +08:00
2026-06-22 10:56:11 +08:00
2026-05-12 15:09:13 +08:00
2024-05-10 23:47:08 +08:00
2026-05-12 15:09:13 +08:00
2026-03-24 09:18:38 -07:00
2026-07-09 18:57:05 +08:00
2026-06-19 09:42:12 +08:00
2026-03-13 02:12:10 -07:00
2026-03-13 02:12:10 -07:00
2025-09-10 10:05:07 +08:00
2025-01-22 10:03:21 +08:00
2023-12-01 10:42:45 +00:00
2024-08-12 00:00:20 +08:00
2025-06-22 23:10:35 +08:00
2026-02-09 20:42:26 +01:00
2024-01-28 10:12:55 +00:00
2024-06-15 14:56:44 +08:00
2026-07-06 09:28:41 +08:00
2026-06-24 15:48:31 +08:00
2025-09-21 13:47:51 +08:00
2026-04-20 19:18:03 -03:00
2025-11-15 11:11:20 -05:00
2026-06-29 09:22:23 +08:00
2026-07-09 01:16:25 +08:00
2026-02-09 20:42:26 +01:00
2026-02-09 20:42:26 +01:00
2026-07-08 14:20:40 -03:00
2026-07-08 14:20:40 -03:00
2025-11-22 15:39:12 +08:00
2026-06-18 09:13:51 -03:00
2026-02-09 20:42:26 +01:00
2024-09-23 19:26:18 +08:00
2026-07-09 01:16:25 +08:00
2025-06-14 21:05:25 +08:00
2025-05-08 16:00:48 +08:00
2025-10-28 15:30:00 +08:00
2026-05-21 09:04:27 +08:00
2026-07-11 02:29:40 +08:00
2026-05-08 13:22:00 -03:00
2023-09-22 16:21:26 +08:00
2026-04-23 00:21:19 +08:00
2024-06-15 14:56:44 +08:00
2026-05-18 12:57:48 +08:00
2026-05-18 12:57:48 +08:00
2025-10-28 15:29:47 +08:00
2026-04-07 22:22:43 +08:00
2025-02-26 23:07:23 +08:00
2026-04-19 20:28:13 -03:00
2024-02-13 23:56:48 +08:00
2023-09-27 21:44:45 +08:00
2025-06-22 23:10:35 +08:00
2026-03-24 09:18:38 -07:00
2023-12-09 22:46:18 +08:00
2023-12-09 22:46:18 +08:00
2023-12-09 22:46:18 +08:00
2025-10-19 22:54:48 +08:00
2026-07-09 01:16:25 +08:00
2026-03-24 09:18:38 -07:00
2026-07-03 17:27:57 -03:00
2024-08-12 00:00:20 +08:00
2026-05-27 22:07:15 +08:00
2026-02-09 20:42:26 +01:00
2024-01-26 20:18:10 +08:00
2026-07-09 01:16:25 +08:00
2026-07-09 01:16:25 +08:00
2026-07-09 01:16:25 +08:00
2026-07-09 01:16:25 +08:00
2026-06-18 09:13:51 -03:00
2025-06-22 23:10:35 +08:00
2026-01-05 22:41:04 +00:00
2025-09-29 20:38:38 +08:00
2025-09-29 20:38:38 +08:00
2025-09-29 20:38:38 +08:00
2026-07-09 22:17:20 +08:00
2026-07-09 01:16:25 +08:00
2025-09-24 22:49:14 -04:00
2025-11-15 11:11:20 -05:00
2026-07-09 01:16:25 +08:00
2026-07-09 01:16:25 +08:00
2025-04-04 23:07:00 +08:00
2026-05-07 22:32:56 +08:00
2026-06-25 22:10:49 +08:00
2024-06-15 14:56:44 +08:00
2024-06-15 14:56:44 +08:00
2025-06-18 17:50:44 +08:00
2023-12-01 10:42:45 +00:00
2026-07-03 17:27:57 -03:00
2026-05-21 09:04:27 +08:00
2026-06-03 10:16:59 -03:00
2026-03-11 17:20:12 -07:00
2024-05-12 23:35:41 +08:00
2025-07-30 21:22:40 +08:00
2025-10-28 15:29:55 +08:00
2026-03-24 09:18:38 -07:00
2025-09-18 17:08:18 +08:00
2025-09-18 17:08:18 +08:00
2025-10-19 19:27:55 +08:00
2026-01-14 19:51:13 +08:00
2025-10-19 21:57:34 +08:00
2025-02-26 23:07:23 +08:00
2024-11-06 20:19:52 +08:00
2024-11-06 20:19:52 +08:00
2026-04-24 16:28:28 +08:00
2026-04-24 16:28:28 +08:00
2024-05-10 23:47:08 +08:00
2026-07-08 20:24:55 +08:00
2026-07-08 20:24:55 +08:00
2026-07-08 15:40:19 -03:00
2026-07-08 15:40:19 -03:00
2026-06-14 17:42:53 +08:00
2025-12-08 22:42:11 +08:00
2026-06-22 10:56:11 +08:00
2025-07-18 16:01:25 +08:00
2026-07-09 01:16:25 +08:00
2026-07-09 01:16:25 +08:00
2026-03-13 01:56:51 -07:00
2026-03-13 01:56:51 -07:00
2026-06-18 09:13:51 -03:00
2023-12-01 10:42:45 +00:00
2024-05-10 23:47:08 +08:00
2024-05-10 23:47:08 +08:00
2024-06-15 14:56:44 +08:00
2024-06-15 14:56:44 +08:00
2025-09-18 16:10:27 +08:00
2025-09-18 16:10:27 +08:00
2024-01-26 20:18:10 +08:00
2024-05-10 23:47:08 +08:00
2026-07-10 16:21:48 +08:00
2026-07-10 16:21:48 +08:00
2025-10-02 17:07:17 +08:00
2025-10-02 17:07:17 +08:00
2025-04-05 17:47:59 +08:00
2026-07-08 14:20:40 -03:00
2026-06-03 10:12:26 -03:00
2026-07-08 08:58:51 +08:00
2025-07-18 15:43:46 +08:00
2024-01-31 11:23:29 +00:00
2024-01-31 11:23:29 +00:00
2026-03-13 01:56:51 -07:00
2026-03-24 09:18:38 -07:00
2026-05-04 15:52:34 +08:00
2025-06-18 17:50:44 +08:00
2025-06-18 17:50:44 +08:00
2026-03-13 01:56:51 -07:00
2026-03-13 01:56:51 -07:00
2026-07-10 16:38:46 +08:00
2026-07-09 01:16:25 +08:00
2026-07-11 00:51:10 +08:00
2026-07-09 01:16:25 +08:00
2026-07-11 02:29:40 +08:00
2026-07-11 02:29:40 +08:00
2026-07-11 02:29:40 +08:00
2026-07-03 00:14:32 +08:00
2026-06-18 12:45:26 +08:00
2026-07-11 02:29:40 +08:00
2026-07-11 02:29:40 +08:00
2025-12-08 22:42:11 +08:00
2026-07-08 15:40:19 -03:00
2026-06-01 16:00:00 +08:00
2026-06-05 20:45:43 +08:00
2024-01-31 11:23:29 +00:00
2026-05-10 02:21:13 +08:00
2024-05-10 23:47:08 +08:00
2023-11-04 11:41:03 +08:00
2024-08-12 00:00:20 +08:00
2026-06-07 13:31:52 +08:00
2026-02-09 20:42:26 +01:00
2026-06-18 12:45:26 +08:00
2026-06-18 12:45:26 +08:00
2026-06-18 09:13:51 -03:00
2024-08-12 00:00:20 +08:00
2026-05-10 15:12:56 +08:00
2026-05-10 15:12:56 +08:00
2025-10-19 19:27:55 +08:00
2025-02-12 22:10:57 +08:00
2023-09-29 23:39:12 +08:00
2023-09-29 23:39:12 +08:00
2024-06-15 14:56:44 +08:00
2024-01-31 11:23:29 +00:00
2026-06-19 09:42:12 +08:00
2024-06-15 14:56:44 +08:00
2026-05-21 16:24:54 +08:00
2026-01-29 19:19:37 +08:00
2026-01-23 17:05:56 +08:00
2024-06-15 14:56:44 +08:00
2026-04-23 10:34:36 -03:00
2025-12-08 22:42:11 +08:00
2025-12-08 22:42:11 +08:00
2026-05-12 15:09:13 +08:00
2026-02-12 08:42:01 +08:00
2026-05-04 20:33:13 +08:00
2025-02-08 11:34:40 +08:00
2026-05-10 12:35:31 +08:00
2026-05-10 12:35:31 +08:00
2024-08-12 00:00:20 +08:00
2024-08-12 00:00:20 +08:00
2024-05-10 23:47:08 +08:00
2024-08-12 00:00:20 +08:00
2024-06-15 14:56:44 +08:00
2026-07-09 01:16:25 +08:00
2026-07-09 01:16:25 +08:00
2026-02-09 20:42:26 +01:00