Skip to content

Feat:mix filament#375

Open
LuckZAE wants to merge 212 commits into
mainfrom
feature_mix_filament_sm
Open

Feat:mix filament#375
LuckZAE wants to merge 212 commits into
mainfrom
feature_mix_filament_sm

Conversation

@LuckZAE
Copy link
Copy Markdown

@LuckZAE LuckZAE commented May 25, 2026

Description

Feature mix filament

ratdoux and others added 30 commits February 9, 2026 22:35
…Manager classes for layer-based color mixing. Update CLI to handle downward_check option. Enhance GUI to display mixed filaments and integrate with existing filament management.
…in README, add mixed filament management enhancements including filament removal and layer height adjustments for dithering in the MixedFilamentManager. Introduce new configuration options for dithering in the PrintConfig and GUI, and ensure proper handling of mixed filament states during filament deletion.
…blending for improved color mixing accuracy. Add RGB to RYB and RYB to RGB conversion functions, and update blend_color method to utilize the new blending approach. Improve error handling in hex color parsing.
… mixed filaments, including height-weighted cadence and custom filament definitions. Enhance MixedFilamentManager to support custom rows and apply gradient settings during filament generation. Update PrintConfig and GUI to accommodate new configuration options for mixed filament management.
…and clipping for extrusion paths. Introduce new configuration options for local Z dithering in PrintConfig and GUI, enhancing mixed filament management. Update MixedFilamentManager to support height-weighted cadence and integrate local Z settings into the printing process.
…ption instances by including type comparison. Update related methods in ConfigBase, DynamicConfig, and Preset classes to ensure accurate configuration diffs and equality assessments. Improve logging in MixedFilamentManager for better tracking of custom entry loading and processing.
…or mixed filaments, allowing users to define custom layer patterns using '1' and '2' for component selection. Update parsing logic to accommodate new pattern definitions and ensure backward compatibility. Improve GUI to facilitate pattern entry and display, enhancing user experience in mixed filament configurations.
…component IDs and weights in mixed filaments, allowing for more complex color mixing configurations. Update parsing logic to accommodate new gradient definitions and ensure backward compatibility. Implement pointillism distribution mode for same-layer mixing, enhancing user control over filament blending. Improve GUI elements to facilitate gradient weight adjustments and multi-color previews, enriching the user experience in mixed filament management.
…ures including Local Z reliability improvements, manual pattern mixed filaments, selective expansion/contraction controls, and a refreshed UI for mixed filaments. Enhance configuration options with surface indentation for mixed filament behavior tuning. Update PrintConfig and GUI components to support new features and improve user experience.
… with FilamentMixer for improved accuracy. Update blend_color method to utilize new lerp functionality and enhance display color computation. Retain legacy RYB conversion functions for reference.
…ream

Replace RYB mixing with FilamentMixer integration
…curacy improvements, and installation instructions. Update README to include support for development. Enhance AboutDialog with updated application name and links.
…unplanned tool changes in the WipeTowerIntegration class. Update tool_change method to accommodate an additional parameter for local_z_unplanned, allowing for more flexible tool change management during Local-Z phase-b operations. Adjust related logic in process_layer to ensure proper synchronization with wipe tower planning.
…the MixedFilament structure and update related parsing, serialization, and management functions to handle the visibility of mixed filaments in the UI. Adjust logic in the MixedFilamentManager to ensure proper handling of enabled states based on the deleted flag.
…e blend_from_sequence method to handle empty color and sequence inputs, optimize counting of color occurrences, and enhance the blending process. Introduce new helper functions for building entry preview sequences and computing display colors for mixed filaments, ensuring accurate color representation in the UI.
…ng with wxString() for improved clarity in preview data handling. Update instance_shift type to Vec3d for better type consistency in Selection class during object pasting.
…ling

- Introduced a new `RELEASE_NOTES_v0.92.md` file detailing highlights such as gradual gradient behavior, mixed filament indexing fixes, and editable automatic mixed filaments.
- Refactored `compute_gradient_ratios` to remove the cycle layers parameter, implementing a new gradual integer cadence for gradient transitions.
- Updated `MixedFilament` structure to include an `origin_auto` flag for better management of auto-generated entries.
- Adjusted related parsing, serialization, and UI handling to reflect these changes, ensuring improved user experience and color fidelity in mixed filament rendering.
- Updated `custom_tool_changes` function to use filament IDs instead of extruder IDs, ensuring better compatibility with mixed filament configurations.
- Enhanced `MixedFilament` structure to include a `stable_id` for persistent identity across mixed filament entries, improving remapping during updates.
- Introduced new methods for stable ID allocation and normalization in `MixedFilamentManager`.
- Updated serialization and loading functions to maintain stable IDs, ensuring consistent behavior when mixed filament entries are modified.
- Added tests to verify the correct handling of tool changes and stable ID remapping in mixed filament scenarios.
- Introduced functions to calculate the physical filament count and maximum supported filament ID from project configuration, enhancing mixed filament management.
- Updated GUI components to reflect total filament counts, including mixed filaments, ensuring accurate display and interaction.
- Refactored filament initialization logic to streamline color assignment and naming for both physical and mixed filaments.
- Enhanced the sidebar update mechanism to refresh model canvas colors when mixed filaments are modified, improving visual feedback in the UI.
- Introduced a mapping mechanism for appended filament IDs to ensure correct assignment during color updates.
- Enhanced the update_filament_ids function to streamline filament ID resolution and improve handling of new filament additions.
- Updated the deal_approximate_match_btn and deal_default_strategy methods to accommodate changes in filament management logic, ensuring better integration with the UI.
- Improved overall clarity and maintainability of the filament handling code.
PILIPALA030 and others added 29 commits May 22, 2026 12:17
… prevent truncation

- Revert title/button split; keep "Filament Selection" and buttons on
  same horizontal row, with title at proportion=1 to avoid clipping
- Explicitly set Label::Body_12 for error/warning text instead of
  relying on Label's default Body_14
- Restore original button spacing (wxRIGHT 8 on swap button)
Fix Local-Z mixed-region handling and seam stability + merge 0.9.9
…m' into fix/text-truncation-multi-dpi

# Conflicts:
#	src/slic3r/GUI/MixedFilamentDialog.cpp
…ce) detection

Change the compatibility warning from flagging filaments below 25%
to flagging a single filament exceeding 66.7%, which better reflects
the real concern — mix result dominated by one color.
…N translations

  - PrintConfig: change dithering_local_z_whole_objects label from
    "Mixed color layer thinner" to "Full domain"
  - i18n/zh_CN: add missing translations for cycle pattern validation,
    filament deletion warnings, and quick-append button
refactor: reverse ratio warning from low-ratio to high-ratio
…uence_start

Anchor mixed filament patterns per painted zone - bug 34/43
fix: resolve text truncation in MixedFilamentDialog across multiple DPIs
…nd-i18n

fix/update-dithering-label-and-i18n
…emap

- manual_pattern now participates in dependency resolution with priority:
  manual_pattern → gradient → pair
- Add errno-based overflow detection for strtoul calls
- Add bounds checking for symbolic tokens "1"/"2" in physical_filament_from_token
- remove_physical_filament now detects and removes entries that depend on
  the deleted physical filament via manual_pattern tokens
- Deleted mixed filament virtual IDs are correctly remapped to 0 (NONE),
  preventing paint from being reassigned to a surviving mixed filament
- build_filament_id_remap accepts deleted_mixed_idx parameter;
  merge path correctly handles dependent mixed entries via remap injection
- UI: properly show/hide delete button and enable/disable add button
  when physical filament count changes
- Add 50+ regression tests covering serialization, resolve, delete,
  merge, gradient, bracket notation, and group boundary scenarios
…r_infill

Apply Subdivide Mix Layer refinement to infill
fix: mixed filament manual_pattern dependency resolution and delete/merge remap
Use get_create_region() for painted regions so same-config painted targets
alias existing PrintRegions instead of creating duplicate region objects.
This restores the all_regions config-dedup invariant expected by
verify_update_print_object_regions() and prevents follow-up apply calls from
invalidating/reslicing due to duplicate PrintRegion configs.
m_layers_values was only repopulated when m_is_wipe_tower was true AND
m_values.size() != m_layers_times.size(). When the sizes happened to match
after a re-slice (e.g., after Subdivide Mix Layer was disabled), the old
data persisted and get_label() returned indices from the stale array,
showing doubled layer numbers (e.g., 263 instead of 132).

Fix by clearing m_layers_values unconditionally before the conditional
block. When the condition is not met, the empty array causes the fallback
path to return the correct slider index directly.
Fix mixed-color painted region invalidation by deduplicating PrintRegions
Merge main to feature_mix_filament_sm
merge main to feature_mix_filament_sm
fix: remove dithering_local_z_mode from 3MF import project option keys
…der (#368)

m_layers_values was only repopulated when m_is_wipe_tower was true AND
m_values.size() != m_layers_times.size(). When the sizes happened to match
after a re-slice (e.g., after Subdivide Mix Layer was disabled), the old
data persisted and get_label() returned indices from the stale array,
showing doubled layer numbers (e.g., 263 instead of 132).

Fix by clearing m_layers_values unconditionally before the conditional
block. When the condition is not met, the empty array causes the fallback
path to return the correct slider index directly.
refactor: extract shared expand_virtual_extruder_ids, add missing expansion calls
@github-actions
Copy link
Copy Markdown

Documentation validation failed

🔗 Link Validation Errors

📄 doc/developer-reference\Built-in-placeholders-variables.md:

  • Line 93: home#process-settings - Fragment does not exist
  • Line 93: home#material-settings - Fragment does not exist

📄 doc/developer-reference\How-to-wiki.md:

  • Line 44: home#material-settings - Fragment does not exist
  • Line 45: home#process-settings - Fragment does not exist
  • Line 46: home#prepare - Fragment does not exist
  • Line 47: home#calibrations - Fragment does not exist
  • Line 50: home#process-settings - Fragment does not exist
  • Line 50: home#support-settings - Fragment does not exist
  • Line 50: home#others-settings - Fragment does not exist

📄 doc/Home.md:

  • Line 14: Precise-wall.md - File does not exist
  • Line 17: extrusion-rate-smoothing.md - File does not exist
  • Line 33: adaptive-pressure-advance.md - File does not exist

📄 doc/Tab.cpp:

  • Line 2348: fill-patterns - File does not exist
  • Line 2351: fill-patterns - File does not exist
  • Line 2538: multimaterial_settings_prime_tower#brim-chamfer - Fragment does not exist
  • Line 2539: multimaterial_settings_prime_tower#brim-chamfer-max-width - Fragment does not exist
  • Line 2563: multimaterial_settings_ooze_prevention#delta-temperature - Fragment does not exist

🖼️ Image Validation Errors

📄 doc/developer-reference\How-to-create-profiles.md:

  • Line 142: [Markdown] Alt text "Help menu" ≠ filename "go-to-configuration-folder"
  • Line 144: [Markdown] Alt text "Delete system folder" ≠ filename "profile-delete-system-folder"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants