CURA-12580 paint on support#2317
Open
wawanbreton wants to merge 27 commits intomainfrom
Open
Conversation
CURA-12580 This commit also generalizes the use of the isPainted() methods, instead of manually checking whether the mesh is a modifier. This way we can add more mesh modifier types and only change the single testing method.
CURA-12580 Support painting doesn't propagate voxels and has a lower resolution, so the calculation time should be way less compared to material painting generation.
Contributor
Test Results31 tests ±0 30 ✅ ±0 4s ⏱️ -1s For more details on these failures, see this check. Results for commit 6b524b3. ± Comparison against base commit cd70a6e. ♻️ This comment has been updated with latest results. |
casperlamboo
approved these changes
Apr 9, 2026
CURA-12580 This allows saving multiple data sets in the same OBJ
…de-tree-support' into CURA-12580_paint-on-support
CURA-12580 Because the voxels grid bounding box was the same as the mesh, we didn't have space around the generated voxels, which is necessary when generating the 2D contours. Without that, the segments at the very edge are missing, and we cannot make an actual polygon out of it.
458b382 to
6c6dc96
Compare
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.
This PR adds the generation of modifier meshes based on painting data for support placement. The mesh generation is mostly based on the one made for the multi-material, in a simplified way:
The meshes are then generated, depending on whether they force or disable support:
anti_overhang_mesh.force_support_overhang_mesh, which is a new type of modifier mesh, that can not be generated by the front-end.In order to handle the new
force_support_overhang_mesh, we also generalized the use of theisPrinted()andisModelMeshmethods that actually differentiate between modifier meshes and regular model meshes. This way we can add new modifier mesh types very easily.The
force_support_overhang_meshis then handled by support generation, when calculating the overhang areas and force those te be included by unioning them to the result.CURA-12580
Requires Ultimaker/Cura#21520
The PR now points to CURA-12636 because I needed some debug code from this branch. However the associated Cura PR points to main, so make sure CURA-12636 is already merged to 5.13 then 5.13 merged to main when merging this one.