CURA-13250 chamfered tree base#2346
Conversation
CURA-13250 The approximateConvexHull function relied on doing a very large outer offset, then reverting it back, to get a convex-hull like rounded polygon. However, this method seemed to produce self-intersecting polygons in some cases, which propagated to doing non-closed skirt lines. We now use the actual convex hull calculation, which also happens to be much faster. In practice, that means the following changes: * Skirt is less rounded, which should actually be preferable because it uses less material and should help adhesion by doing more long straight lines * Objects far from each other (usually prime tower) are now included in the same convex skirt, where they could be disjoint with a weird shape before
Test Results31 tests 31 ✅ 5s ⏱️ Results for commit d567470. ♻️ This comment has been updated with latest results. |
There was a problem hiding this comment.
⚠️ 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: 10f1b81 | Previous: 93f5d54 | Ratio |
|---|---|---|---|
InfillTest/Infill_generate_connect/0/400 |
5.766691518246707 ms/iter |
3.646253201438742 ms/iter |
1.58 |
HolesWallTestFixture/InsetOrderOptimizer_getInsetOrder/3 |
0.00026352653403075943 ms/iter |
0.00016906826041988748 ms/iter |
1.56 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: Jelle Spijker (@jellespijker) Erwan MATHIEU (@wawanbreton) Casper Lamboo (@casperlamboo) HellAholic
Casper Lamboo (casperlamboo)
left a comment
There was a problem hiding this comment.
I don;t fully understand the need of changing x.getInfillArea() to x.outline_
| return index.value; | ||
| } | ||
|
|
||
| constexpr LayerIndex distance(const LayerIndex& lhs, const LayerIndex& rhs) |
There was a problem hiding this comment.
This function feels a bit weird to me since
- distance in this case can be negative
- distance returns an
Indextype
A better name for this function would belayerDelta,layersBetweenorlayersToin my opinion.
There was a problem hiding this comment.
Well, it has to be called distance to match the standard std::distance so that we can use LayerIndex directly in a parallel_for loop.
Maybe a comment would be helpful ?
Co-authored-by: Casper Lamboo <casperlamboo@gmail.com>
|
This PR's main goal is to implement the chamfered base for the support, both tree and normal. The base makes the bottom of the support much sturdier and also improves adhesion to the buildplate, so it is now possible to use higher supports, or tree supports with less trunks.
In addition to that, it contains a few other significant changes:
-o "with_curaviz=True"at conan install timeRequires Ultimaker/Cura#21714