Commit Graph

25911 Commits

Author SHA1 Message Date
Rad
c2fc960ccc . 2026-04-11 02:01:51 +02:00
Rad
6022b25f18 . 2026-04-09 21:25:39 +02:00
Rad
a11b70e3a3 bug fix, tests 2026-04-09 21:25:33 +02:00
Rad
ed0182618e Collapse same-color mixed filament regions across painted areas
Resolve ordinary mixed-filament painted regions to their effective physical
filament on each layer so adjacent same-color zones can merge into one
continuous area instead of being sliced as separate islands.

Add a global "Collapse same-color mixed regions" option, enabled by default,
and automatically turn it off when Local Z dithering is enabled while still
allowing manual re-enable for experimental use.
2026-03-26 21:10:15 +01:00
Rad
a4f0947b49 settings 2026-03-26 19:25:28 +01:00
Rad
d4947f3cbe Add explicit infill filament override setting with per-layer control
Introduce enable_infill_filament_override toggle to replace the implicit
behavior where sparse_infill_filament != wall_filament implied an override.
Add infill_filament_use_base_first_layers and infill_filament_use_base_last_layers
to keep the base filament on boundary layers before switching to the infill
override filament. Move the sparse infill filament selector into the infill
section of the UI and gate its visibility behind the new toggle.

Also fixes: filament deletion now correctly updates wall/infill/solid filament
assignments, LayerRegion::flow() resolves nozzle diameter from the effective
extruder per role, and mixed filament preview ratio calculation is improved
for edge cases (0% and 100%).
2026-03-24 15:35:11 +01:00
Rad
778a8e45af Add controls for auto-generated mixed filament gradients
Add an app preference for mixed filament gradient auto-generation and
sync the manager state from startup and preferences changes.

Prompt before generating large gradient sets, preserve custom rows
when auto-generation is disabled, and refresh remapping/UI handling
accordingly. Add mixed filament coverage and a dumpinfo helper for
inspecting Windows minidumps.
2026-03-21 21:05:31 +01:00
Rad
970630275e Add min_component_percent parameter to color match functions for improved weight validation. Implement new helper functions to check color match weights within specified ranges. Update related functions to utilize the new parameter for enhanced color matching accuracy. 2026-03-19 18:16:25 +01:00
Rad
b2f4018930 Refactor GitHub workflows to remove scheduled triggers and streamline build processes. Update MixedFilament to include local Z max sublayers for enhanced filament management. Introduce new functions for color match gradient handling in the GUI. 2026-03-19 01:53:40 +01:00
Rad
3eb746dd8c color mixer, depending on the selected color, tries to get the closest mix of 2, 3 or 4 filaments by brute force 2026-03-16 23:23:16 +01:00
Rad
f3d522b6f1 Prepare 0.9.4 changelog and release pipeline 2026-03-12 03:55:11 +01:00
Rad
9f9aebf957 added support for multi perimeter patterns, issue 34 2026-03-12 03:49:38 +01:00
Rad
95f6cb2574 obj color match "keep color" append missing color simplification 2026-03-11 17:49:17 +01:00
Rad
d339f82e37 mixed filament re-ordering 2026-03-11 16:53:01 +01:00
Rad
f1a4ff6116 improved mixed filament ui perf 2026-03-10 20:55:16 +01:00
Rad
dd9945747f added support for >16 colors in color picker 2026-03-10 20:23:15 +01:00
Rad
153d35ded0 Add Local-Z wipe tower reserve planning and pass ordering
Add startup profiling for GUI initialization
Drop unusable Bonjour sockets and harden socket cleanup
Add /FS to MSVC parallel compile options
2026-03-10 19:33:36 +01:00
Rad
7c7d06a159 Fix YAML syntax in publish_release workflow
Use printf -v for fallback release notes to keep all lines
properly indented within the YAML run block.
2026-03-03 03:42:29 +01:00
Rad
fc190bf9d3 build pipeline 2026-03-03 03:34:07 +01:00
Rad
682e84e5f4 Enhance UdpSocket error handling and usability
- Introduced a new `quarantine_socket` function to centralize error handling for socket operations, improving code clarity and maintainability.
- Updated error handling in `UdpSocket` methods to utilize `quarantine_socket`, ensuring consistent logging and socket management across setup, send, and receive operations.
- Added a `cancel` method to `UdpSocket` to safely cancel socket operations when the socket is not usable, enhancing robustness in error scenarios.
- Introduced a `m_socket_usable` flag to track socket state, preventing operations on unusable sockets and improving overall stability.
2026-03-03 01:26:37 +01:00
Rad
e13af34188 Update tooltip for local Z dithering mode to reflect new variable layer blending feature
- Revised the tooltip description to explain the use of variable layer heights for color blending, enhancing clarity on how blended color zones are managed.
- Emphasized the impact of this setting on color blending smoothness and provided examples for better user understanding.
2026-03-02 23:05:39 +01:00
Rad
9880f2cb46 Refactor tool change handling in GCode and enhance local-Z logic
- Simplified the tool change process for local-Z phases by directly switching extruders, avoiding unnecessary template replays that could degrade wipe tower quality.
- Introduced a new function to determine the starting component for local-Z alternating layers, improving the logic for height adjustments based on pass sequences.
- Updated related GCode processing to ensure consistent behavior during local-Z operations, enhancing overall print quality and efficiency.

Hopefully this fixes the issues with local z dithering and the prime tower becoming mush
2026-03-02 22:05:09 +01:00
Rad
4122b94279 Refactor filament ID handling in ObjColorPanel
- 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.
2026-03-02 19:42:07 +01:00
Rad
d4063efc87 Add mixed filament support and improve filament handling
- 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.
2026-03-02 19:08:23 +01:00
Rad
db0ccb1210 Refactor custom GCode handling and mixed filament management
- 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.
2026-03-02 16:05:41 +01:00
Rad
21d9bffb45 Merge branch 'refs/heads/v0.92-alpha' 2026-03-02 13:46:54 +01:00
Radu
89e9cd2abc wxString instead of wxEmptyString 2026-02-24 19:15:27 +01:00
Rad
f758028de0 Add release notes for v0.92 and refactor mixed filament gradient handling
- 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.
2026-02-23 21:47:26 +01:00
Radu
ab1c645af9 Fix summary handling in MixedFilamentConfigPanel: Replace wxEmptyString 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. 2026-02-18 15:50:53 +01:00
Rad
effe346814 Refactor color blending logic in MixedFilamentConfigPanel: Improve the 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. 2026-02-18 14:56:31 +01:00
Rad
d499fbabbe Implement deleted state for mixed filaments: Add a 'deleted' flag to 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. 2026-02-18 01:10:27 +01:00
Rad
1410eea3c0 Merge branch 'alpha-0.8-ui-refactor' into 0.9-alpha 2026-02-17 19:17:37 +01:00
Rad
9bba530cc2 Enhance tool change handling in GCode: Introduce support for local-z 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. 2026-02-17 19:14:18 +01:00
Rad
77d0e1b2d7 Add changelog for v0.8 pre-release: Introduce filament mixer color accuracy improvements, and installation instructions. Update README to include support for development. Enhance AboutDialog with updated application name and links. 2026-02-17 16:01:17 +01:00
xSil3nt
a153986020 Pop up settings for mixed filaments instead of inline config 2026-02-17 16:32:46 +08:00
xSil3nt
89c9fd0834 Refactor UI to follow Orca design language 2026-02-17 16:32:46 +08:00
ratdoux
2bd72a9f32 Merge pull request #4 from justinh-rahb/codex/port-filamentmixer-upstream
Replace RYB mixing with FilamentMixer integration
2026-02-15 18:56:42 +01:00
Rad
d8c346d081 Refactor color blending in MixedFilament: Replace legacy RYB blending 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. 2026-02-15 18:19:02 +01:00
Justin Hayes
358f81f61c Update README to include link to FilamentMixer library for color blending 2026-02-14 14:46:44 -05:00
Justin Hayes
f9424e3364 Update README to clarify FilamentMixer integration for color blending 2026-02-14 14:45:21 -05:00
Justin Hayes
33ae311ade Replace Mixbox with FilamentMixer integration 2026-02-14 13:38:42 -05:00
Rad
4fea9f5d2c Add changelog for v0.7-alpha pre-release: Introduce experimental features 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. 2026-02-13 21:45:31 +01:00
Rad
c414e377a0 Enhance mixed filament functionality: Introduce support for gradient 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. 2026-02-12 02:29:34 +01:00
Rad
0178ad32ad Enhance mixed filament management: Introduce manual pattern support for 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. 2026-02-11 16:55:59 +01:00
Rad
2d6ec834ec Refactor config comparison logic: Enhance equality checks for ConfigOption 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. 2026-02-11 16:08:02 +01:00
Rad
112e2e5ef5 Add local Z dithering features: Implement local Z height adjustments 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. 2026-02-11 03:15:16 +01:00
Rad
494835c5ba Implement advanced mixed filament features: Add gradient settings for 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. 2026-02-10 19:40:22 +01:00
Rad
e6cfadddca Enhance color blending in MixedFilament: Introduce RYB pigment-style 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. 2026-02-10 03:49:45 +01:00
Rad
f7b45fa0f0 Dithering settings added to README.md 2026-02-10 03:10:37 +01:00
Rad
49ab2f9ac5 Update README and implement dithering features: Change download link 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. 2026-02-10 03:10:31 +01:00