Skip to content

Conversation

@rburema
Copy link
Member

@rburema rburema commented Apr 30, 2025

See also front-end PR: Ultimaker/Cura#20565

rburema and others added 4 commits April 30, 2025 15:39
This commit doesn't yet actually _use_ the wall-difference mind you. -- Note also that the top/bottom has to be calculated here from the rough outlines (as opposed to the actually printed outlines) since normally that would be calculated later. (And due to the previously mentioned print-outlines vs. outlines, it's not the same calculation, so we can't just move it back to here.)

part of CURA-12446
Adding the possibility for separated top-/bottom-most wall line counts vs. 'normal' wall counts, which was the point of the ticket.

should finish off the engine part of CURA-12446
@rburema
Copy link
Member Author

rburema commented Apr 30, 2025

  • bridging not OK yet
  • need to check if gradual sloping walls are OK (top AND bottom), like for example a sphere

@github-actions
Copy link
Contributor

github-actions bot commented Apr 30, 2025

Test Results

28 tests  ±0   28 ✅ ±0   4s ⏱️ ±0s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 2c66ce4. ± Comparison against base commit 3afd632.

♻️ This comment has been updated with latest results.

rburema and others added 4 commits May 6, 2025 11:12
Otherwise the walls will adhere less well to the model, and while this is a nice visual change, structural integrity (especially when briding) is more important. Also this is what it already says in the ticket is needed, nothing really specified about non-top, non-initial layers.

part of CURA-12446
@rburema rburema marked this pull request as ready for review May 6, 2025 09:55
Copy link
Contributor

@wawanbreton wawanbreton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few suggestions for readability, feel free to reject them

Copy link
Member Author

@rburema rburema left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'C++ Benchmark'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.50.

Benchmark suite Current: aed8b18 Previous: 945c507 Ratio
SimplifyTestFixture/simplify_slot_noplugin 1.8856092072748627 ns/iter 1.2446332009368046 ns/iter 1.51

This comment was automatically generated by workflow using github-action-benchmark.

CC: @nallath @jellespijker @wawanbreton @casperlamboo @saumyaj3 @HellAholic

@jellespijker jellespijker requested a review from Copilot May 9, 2025 05:25
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR updates the engine's layer partitioning logic to support different wall settings on top‐ and bottom‐most skins. Key changes include:

  • Enhancements to the createLayerWithParts function in src/layerPart.cpp to accept additional Shape parameters for bottom and top parts.
  • Introduction of a new WallExposedType enum and updated wall count logic in WallsComputation.cpp to apply distinct wall settings.
  • Updates in header files to reflect the new functionality and forward declarations.

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
src/layerPart.cpp Modified function signature and logic to split layers into multiple parts with wall-specific handling, plus new helper getTopOrBottom().
src/WallsComputation.cpp Refactored wall count retrieval to use a mapping based on wall exposed type.
include/sliceDataStorage.h Added the WallExposedType enum and a new member to track wall type on parts.
include/layerPart.h Removed deprecated forward declarations and the old function signature declaration.
Comments suppressed due to low confidence (2)

src/layerPart.cpp:31

  • [nitpick] Consider expanding the doc comment for createLayerWithParts to include descriptions for the newly added parameters (bottom_parts and top_parts) to improve clarity.
/*!

src/layerPart.cpp:117

  • [nitpick] Consider replacing the hard-coded value '5' with a clearly named constant, which would improve readability and maintainability.
const auto wall_line_width = settings.get<coord_t>(layer_nr == 0 ? "wall_line_width_0" : "wall_line_width") - 5;

Copy link
Member Author

@rburema rburema left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure how well this'd work for values of 'extension' less than the wall-line-width -- but it's probably OK.

@wawanbreton wawanbreton changed the base branch from main to 5.11 October 10, 2025 08:53
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.

4 participants