Feat:mix filament#375
Open
LuckZAE wants to merge 212 commits into
Open
Conversation
…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.
… 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
|
❌ Documentation validation failed 🔗 Link Validation Errors📄 doc/developer-reference\Built-in-placeholders-variables.md:
📄 doc/developer-reference\How-to-wiki.md:
📄 doc/Home.md:
📄 doc/Tab.cpp:
🖼️ Image Validation Errors📄 doc/developer-reference\How-to-create-profiles.md:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Feature mix filament