Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better tree support for pointy overhangs: Cradle Generation #1880

Draft
wants to merge 110 commits into
base: main
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
108238f
Add feature to better support pointy overhangs. Will create a pull re…
ThomasRahm May 7, 2023
c7b6aaa
Fix support_skin_line_distance setting not working.
ThomasRahm May 7, 2023
0997c3b
Fix support being sprinkled on top of angled interface when tree supp…
ThomasRahm May 7, 2023
12f2572
Fix Tree Support Cradle generation causing a crash.
ThomasRahm May 7, 2023
624991d
Fix crash when support blockers are used.
ThomasRahm May 8, 2023
59531dc
Fix Cradle Tip generation behaving unexpectedly when support interfac…
ThomasRahm May 13, 2023
dc64f93
Improved Tree Support Support Skin Generation and fixed bug causing t…
ThomasRahm May 16, 2023
7e0191e
Fix Support Floor being activated to sometimes cause slicing to freeze.
ThomasRahm Jul 13, 2023
810d6ea
Fix Minimum support area not working always when X/Y overrides Z or i…
ThomasRahm Jul 15, 2023
2538d86
Fix branches being wrongly regarded as an error (and removed because …
ThomasRahm Jul 25, 2023
0d0c841
Merge remote-tracking branch 'upstream/5.6' into tree_support_2
ThomasRahm Nov 18, 2023
f3ff9f4
Fix issues cause by merge and fix issue caused by previous refactor.
ThomasRahm Nov 18, 2023
e0e19ab
Change the way settings are retrieved to enable using a fake plugin t…
ThomasRahm Nov 19, 2023
1a7f9c3
Add first version of support_tree_cradle_xy_distance setting.
ThomasRahm Nov 19, 2023
c216424
Update Conan and GitHub workflows
jellespijker Dec 14, 2023
b7d7316
Revert update of fmt and spdlog
jellespijker Dec 14, 2023
dffcecf
Fix fractional roof not working correctly with cradles
ThomasRahm Dec 17, 2023
8cefce5
Fix cradle xy distance
ThomasRahm Dec 18, 2023
36db8a2
Fix cradle sometimes not being supported correctly
ThomasRahm Dec 18, 2023
c9cda5a
Merge branch '5.6' into tree_support_2
ThomasRahm Dec 24, 2023
b16c159
More cradle fixes
ThomasRahm Dec 25, 2023
1ae92f2
Some fixes to support skin
ThomasRahm Dec 25, 2023
9e61337
Fix crashes caused by tree support.
ThomasRahm Dec 24, 2023
81eff9e
Fix compile error caused by previous commit
ThomasRahm Jan 1, 2024
d357561
Made cradle xy distance a vector to enable more flexibility
ThomasRahm Jan 6, 2024
b25a88e
Changed support skin pattern to ZigZag and reduced support skin wall …
ThomasRahm Jan 6, 2024
c983b58
Fix bug related to cradle and fractional roof again
ThomasRahm Jan 9, 2024
5867e20
Cradle refactoring
ThomasRahm Feb 12, 2024
7eb33bb
Cradle fixes
ThomasRahm Feb 19, 2024
91f6fd5
Work im progress refactoring to enable removing cradle-lines while th…
ThomasRahm Mar 12, 2024
4787452
Fix first and last vertex created by makeCircle being close together,…
ThomasRahm Mar 13, 2024
a533391
Fix branches not merging below anti preferred areas
ThomasRahm Mar 13, 2024
39d2a91
Cradle fixes related to cradle roof type and a bit refactoring
ThomasRahm Mar 14, 2024
20f2755
Ensure cradle lines have no overhang if possible, also performance im…
ThomasRahm Mar 14, 2024
0cfba23
Prevent potential issues with applying anti preferred areas to cause …
ThomasRahm Mar 14, 2024
3d84b94
More cradle fixes.
ThomasRahm Mar 15, 2024
302657c
Made center of the cradle move slightly with the object it supports
ThomasRahm Mar 16, 2024
f275c9c
Some parallelization and performance improvements
ThomasRahm Mar 17, 2024
64f8ef7
More cradle fixes
ThomasRahm Mar 17, 2024
0f4a602
Fix crash causes by missing lock.
ThomasRahm Mar 17, 2024
82835b4
Fix increaseSingleArea bug caused by a previous optimisation
ThomasRahm Mar 17, 2024
ccf229b
Fix another crash caused by missing lock
ThomasRahm Mar 17, 2024
ea35c28
More cradle fixes
ThomasRahm Mar 17, 2024
e2a2833
Shorten cradle lines again if lines were removed that made them longer.
ThomasRahm Mar 17, 2024
79c7e36
Prevent invalid cradle lines from generating and fix for cradle relat…
ThomasRahm Mar 18, 2024
3cbf074
Commit code missing from previous commit and fix some comments
ThomasRahm Mar 18, 2024
2a7aefa
Merge remote-tracking branch 'upstream/5.7' into tree_support_2
ThomasRahm Mar 18, 2024
6966fa0
Merge part 2: Fixing variable names/usage.
ThomasRahm Mar 18, 2024
aa00d60
Fix wrong type name.
ThomasRahm Mar 18, 2024
27dd92c
Removed performance optimisation causing cradle line tips of removed …
ThomasRahm Mar 18, 2024
f08100f
Removed some unused variables
ThomasRahm Mar 19, 2024
d7cb1aa
Fix cradle calculation for 1 line not terminating
ThomasRahm Mar 21, 2024
9a95d4b
Improving fractional support for tree supports
ThomasRahm Mar 25, 2024
25acb8c
Fix bug causing roof to not properly generate when using tree supports
ThomasRahm Mar 25, 2024
01b10c0
Merge branch 'improved-fractional-tree-support' into tree_support_2
ThomasRahm Mar 31, 2024
74c8bd4
Fix issues with cradle lines including issues occurring when the crad…
ThomasRahm Apr 4, 2024
75d2dff
Merge remote-tracking branch 'upstream/5.7' into tree_support_2
ThomasRahm Apr 4, 2024
5f57b8e
Fix cradle line distance being wrong sometimes for angled parts of th…
ThomasRahm Apr 6, 2024
9ef6698
Fix fractional support bug related to tree support caused by merging …
ThomasRahm Apr 6, 2024
96d023a
Fix fractional support skin for cradle base areas.
ThomasRahm Apr 6, 2024
50c57ce
First refactoring to add setting to ensure initial layer diameter can…
ThomasRahm Apr 9, 2024
f9e0bc7
Fix initial layer diameter not working
ThomasRahm Apr 9, 2024
6d44415
Fix using wrong fillInfillParts to add tree support areas.
ThomasRahm Apr 10, 2024
057ed36
Enable different amount of roof wall counts for tree support.
ThomasRahm Apr 20, 2024
8f2ccdd
Improve interaction between cradle base and lines if both are roofs a…
ThomasRahm Apr 20, 2024
1309df4
Fix possible crash caused by cradle code.
ThomasRahm Apr 20, 2024
6a2f662
Fix large cradle tip calculations
ThomasRahm Apr 21, 2024
2214365
Fix rounding errors with anti-preferred avoidance.
ThomasRahm Apr 21, 2024
2e5d928
Remove support areas around lines missing because of cradle z distanc…
ThomasRahm Apr 21, 2024
872e8e7
Fix "Removing already placed tip" when a cradle roof base is only val…
ThomasRahm Apr 21, 2024
879ecb1
Prevent roof from generating close to the cradle as any overhang ther…
ThomasRahm Apr 21, 2024
f5186eb
Fix regressions with fractional tree support. Also ensure fractional …
ThomasRahm Apr 22, 2024
14f8f3d
Improve anti-preferred handling in increaseSingleArea.
ThomasRahm Apr 22, 2024
73313c6
Fixes and refactoring related to cradle line generation.
ThomasRahm Apr 23, 2024
d17b2d5
Fix cradle roof type "Cradle and Base"
ThomasRahm Apr 23, 2024
5153fe0
Improved formatting
ThomasRahm Apr 24, 2024
e329928
Fix roof cradle lines missing if roof wall line count is larger than 0
ThomasRahm Apr 24, 2024
abcf5ce
Improve branches avoiding cradle lines.
ThomasRahm Apr 24, 2024
aed739c
Added performance logging to generateInitialAreas
ThomasRahm Apr 25, 2024
1a7db83
Improved performance and fixed regression that could cause branches b…
ThomasRahm Apr 25, 2024
93f53f1
Fix issue causing force initial layer diameter to be always applied f…
ThomasRahm Apr 25, 2024
9637267
Merge remote-tracking branch 'upstream/5.7' into tree_support_2
ThomasRahm Apr 25, 2024
ba8208d
Refactoring to enable adding cradle to regular support later
ThomasRahm May 1, 2024
2cec577
Fix roof cradle base calculation creating non-supportable bases
ThomasRahm May 2, 2024
a79c0de
Fix rounding errors in handleCradleLineValidity.
ThomasRahm May 2, 2024
b07e7fd
Fix support of cradle lines by fixing the reduction
ThomasRahm May 2, 2024
9aa2fad
Fix cradle roof base z distance if no fractional roof is present and …
ThomasRahm May 2, 2024
5efba20
Fix tip density for cradle lines if cradle tips size is small.
ThomasRahm May 2, 2024
fbbf9fa
Fix roof generating for areas that are handled by cradle bases or lin…
ThomasRahm Jun 3, 2024
9d1ebf2
Ensure that cradle lines can not intersect with already added roof. P…
ThomasRahm May 3, 2024
60d8b95
Fix guaranteed line below large cradle base.
ThomasRahm May 3, 2024
d77e87b
Fix missing cradle lines if cradle line count is odd
ThomasRahm May 24, 2024
ae25532
Fix issue causing support lines to overlap with the model
ThomasRahm Jun 3, 2024
fba4d7b
Fix issue causing support skin lines to overlap with the model
ThomasRahm Jun 3, 2024
798ad56
Ensure support skin is generated below holes that can not be removed
ThomasRahm Jun 3, 2024
cc8147b
Merge remote-tracking branch 'upstream/5.7' into tree_support_2
ThomasRahm Jun 3, 2024
11b4a76
Fix regression causing hole removal to not work correctly.
ThomasRahm Jun 4, 2024
6664a4f
Change non-removable hole detection, to prevent potential issues with…
ThomasRahm Jun 4, 2024
5e03048
Fix crash occurring when cradle z distance is smaller than z distance.
ThomasRahm Jul 5, 2024
f26a916
Merge remote-tracking branch 'refs/remotes/upstream/5.8' into tree_su…
ThomasRahm Jul 24, 2024
c0e46cb
Adapt to new Shape and LinesSets after merge. Also add back all funct…
ThomasRahm Jul 25, 2024
ae63e19
Fix cradle lines stopping because of too long jumps caused by xy dist…
ThomasRahm Jul 26, 2024
4b9a595
Merge remote-tracking branch 'refs/remotes/upstream/5.8' into tree_su…
ThomasRahm Aug 16, 2024
ad51551
Fix for issue https://github.com/Ultimaker/Cura/issues/19586 in the c…
ThomasRahm Aug 28, 2024
6e73eb8
Add ability to manually place cradles, refactor the way support modif…
ThomasRahm Sep 6, 2024
5a7a068
Add initial support for cradles if normal support is used.
ThomasRahm Sep 11, 2024
85bca65
Fix cradle generation wrongly being called twice if tree support is used
ThomasRahm Sep 13, 2024
06c6488
Improve resiliency if TreeModelVolumes is used without precalculating…
ThomasRahm Sep 17, 2024
340e70f
Fix support for cradle being placed to far up if the cradle is roof.
ThomasRahm Sep 18, 2024
d7d1f71
Implement functionality to select whether cradle lines should be prin…
ThomasRahm Nov 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix large cradle tip calculations
  • Loading branch information
ThomasRahm committed Apr 21, 2024
commit 6a2f66238d18f2d6e76a45d952fdab4f1f87a351
16 changes: 9 additions & 7 deletions src/TreeSupportTipGenerator.cpp
Original file line number Diff line number Diff line change
@@ -1843,20 +1843,22 @@ void TreeSupportTipGenerator::addLinesAsInfluenceAreas(std::vector<std::set<Tree
}
}

if(overhang_data.is_cradle_)
{
if((overhang_data.isCradleLine() && large_cradle_line_tips_) || (!overhang_data.isCradleLine() && (! cradle_base_roof_ || large_cradle_line_tips_)))
{
tip_radius = cradle_tip_dtt_;
}
}


size_t tip_dtt = tip_radius >= config_.branch_radius ? config_.tip_layers :
(config_.tip_layers * (tip_radius - config_.min_radius))/(config_.branch_radius - config_.min_radius);

coord_t hidden_radius = tip_radius > config_.branch_radius ? tip_radius - config_.branch_radius : 0;
double hidden_radius_increases = hidden_radius / (config_.branch_radius * (std::max(config_.diameter_scale_bp_radius - config_.diameter_angle_scale_factor, 0.0)));

if(overhang_data.is_cradle_ && tip_dtt < cradle_tip_dtt_)
{
if((overhang_data.isCradleLine() && large_cradle_line_tips_) || (!overhang_data.isCradleLine() && (! cradle_base_roof_ || large_cradle_line_tips_)))
{
tip_dtt = cradle_tip_dtt_;
}
}

TreeSupportElement* elem = addPointAsInfluenceArea(
move_bounds,
point_data,