Commit graph

70 commits

Author SHA1 Message Date
PavelMikus
5b0c270b30 Merge remote-tracking branch 'origin/master' into pm_anchor_bridges_on_sparse_infill 2023-03-01 16:45:26 +01:00
Vojtech Bubnik
2959de40ae One more fix for Organic supports & Raft :
Raft was not generated at all with Organic supports enabled, but
no trees produced.
2023-02-28 17:40:05 +01:00
Vojtech Bubnik
94d463b645 One more fix of recent Organic support & Raft implementation. 2023-02-28 16:38:05 +01:00
PavelMikus
b90e8eb6ec Merge remote-tracking branch 'origin/master' into pm_anchor_bridges_on_sparse_infill 2023-02-28 15:08:59 +01:00
Vojtech Bubnik
cbe3c4f238 Fix of recent Organic support & Raft implementation. 2023-02-28 08:59:36 +01:00
PavelMikus
21cd23167e Merge remote-tracking branch 'origin/master' into pm_anchor_bridges_on_sparse_infill 2023-02-27 13:15:18 +01:00
Vojtech Bubnik
c84c699a96 Implemented raft for Organic supports. A multi-layer raft is only built
for 1st object layer; the trees go to the print bed and only
the 1st layer raft is built for both the multi-layer raft and the trees.
Fixes #9816 #9743 #9526
2023-02-27 11:04:03 +01:00
Vojtech Bubnik
825c954b44 WIP: Organic Supports & Raft
Object is lifted, trees are routed to the ground.
2023-02-27 11:04:03 +01:00
Vojtech Bubnik
978f5c8b47 Merge remote-tracking branch 'remotes/origin/master' into vb_ensurovani 2023-02-17 15:20:47 +01:00
Vojtech Bubnik
db77331004 Slight refactor of Organic supports after merge
3d8f84ed76
2023-02-10 14:09:47 +01:00
Vojtech Bubnik
3d8f84ed76 Merge remote-tracking branch 'remotes/origin/master' into tr_SuggestedTreeSupportFixes 2023-02-10 12:35:46 +01:00
Thomas Rahm
c9605580ee Fix issue causing some tips to not generate, as remaining_overhang was nearly always empty
Fixes https://github.com/prusa3d/PrusaSlicer/issues/9459
2023-02-09 22:27:30 +01:00
Vojtech Bubnik
f1977b07be Organic supports: Adding bridge detection using the same algorithms
as the regular supports.
Partial fix to #9493
2023-02-09 16:47:57 +01:00
Vojtech Bubnik
a1b0188e3a Organic supports: Don't auto generate supports if supports disabled,
but "enforce number of first layers" is enabled.
Fixes #9477
2023-02-08 15:06:39 +01:00
Vojtech Bubnik
9ab88d75e0 Fixing overlaps of organic supports: Base vs. interface layers. 2023-02-08 14:40:50 +01:00
Vojtech Bubnik
aaffcbc282 Fixed crash in Organic supports with a single support layer only.
Fixes #9557
2023-02-06 16:52:09 +01:00
Vojtech Bubnik
7a873201d8 Organic supports: Fixed division by zero for soluble supports
(with zero separation gap between object and supports)
Fixes #9555
2023-02-06 14:58:53 +01:00
Vojtech Bubnik
001358cbba Merge remote-tracking branch 'remotes/origin/master' into vb_ensurovani 2023-02-02 09:53:14 +01:00
Vojtech Bubnik
3e1348c062 Organic supports: Reduce memory footprint. 2023-01-31 17:41:36 +01:00
Vojtech Bubnik
49caab98cb Organic supports: Improving smoothing / collision avoidance convergence 2023-01-31 15:55:42 +01:00
Vojtech Bubnik
2a1e12131b Cancellation of tree supports 2023-01-31 09:13:05 +01:00
Vojtech Bubnik
cd0ed00ef5 TREE_SUPPORT_ORGANIC_NUDGE_NEW enabled 2023-01-27 13:50:46 +01:00
Vojtech Bubnik
3e6302d4f3 Organic supports: Patching the missing trees for support enforcers 2023-01-27 13:09:20 +01:00
Vojtech Bubnik
6a9bcf8405 Tree supports: Switched to new Organic smoothing & collision avoidance.
Follow-up to 3d9f39e258
which had the new smoothing & collision avoidance disabled by mistake.
2023-01-26 13:59:32 +01:00
Vojtech Bubnik
3d9f39e258 Speed up of organic support smoothing & collision detection. 2023-01-24 14:31:33 +01:00
Vojtech Bubnik
77c521eabb Tree supports: Disabled some more error reporting. 2023-01-19 17:20:42 +01:00
tamasmeszaros
76d0e11699 Merge branch 'master' into et_tm_sla_volumes_6-SPE-1285 2023-01-18 16:40:12 +01:00
Vojtech Bubnik
8ab0c2cb3d Suppressed tree_supports_show_error() in production code.
Changed error strings to string_view literals.
2023-01-18 10:08:52 +01:00
Thomas Rahm
062a619381 Ensure that no points are placed the implicit line from last to first vertex, as the input is a line and not a polygon. 2023-01-13 02:58:43 +01:00
Vojtech Bubnik
479a39ce0e Fixed some compiler warnings 2023-01-04 16:41:42 +01:00
Thomas Rahm
6db30602a0 Make supported overhangs not differ between a tip radius of half of a line width to a tip radius of one line width 2022-12-21 01:08:46 +01:00
tamasmeszaros
2144f81bf1 Useful backend improvements from sla volumes branch 2022-11-29 11:10:52 +01:00
Vojtech Bubnik
19e7c55a2a TreeSupports: Debugging the collision caches 2022-11-18 12:27:23 +01:00
Vojtech Bubnik
babc8a88a1 clip_clipper_polygon_with_subject_bbox() and diff_clipped() extracted
from TreeSupports to ClipperUtils to be generally available.
diff_clipped() is an optimized version clipping the "clipping" polygon
using clip_clipper_polygon_with_subject_bbox().
To be used with complex clipping polygons, where majority
of the clipping polygons are outside of the source polygon.
2022-11-15 16:54:26 +01:00
Vojtech Bubnik
acbc60f3e3 Better const correctness 2022-10-19 16:27:15 +02:00
Vojtech Bubnik
842283cd3b WIP TreeSupports - organic supports: Partial fix for bottoms
of supports over object locked against laplacian smoothing
2022-10-13 14:42:25 +02:00
Vojtech Bubnik
2365b3a8dd WIP TreeSupports: Now it is possible to switch between the normal
and the "organic" supports.
2022-10-12 14:33:36 +02:00
Vojtech Bubnik
418734f41b WIP Tree supports with circular crossections: Clipping the remaining
collisions with the object.
2022-10-10 16:58:43 +02:00
Vojtech Bubnik
5cb4b63325 WIP TreeSupports: Experimental code draw_branches() to produce
trees with circular cross section
2022-10-10 14:19:06 +02:00
Vojtech Bubnik
3350292ff2 WIP TreeSupports
1) Nodes allocated using std::deque, not as std::set of pointers for
   less memory allocator pressure.
2) Parents changed to parent indices, so that one may allocate side
   by side data for nodes addressed by these indices. Thus now elemens
   are being marked as deleted and the whole node database is being
   compacted in one shot instead of deleting an element from std::set.
3) Removed SUPPORT_TREE_ONLY_GRACIOUS_TO_MODEL for simplicity, it was
   never used.
4) Fixed crash when slicing multiple objects with three supports.
2022-09-29 17:10:53 +02:00
Vojtech Bubnik
2b3d4b2868 WIP TreeSupports:
1) Reworked the merging code to use an AABB tree for better locality.
   The old code sorted lexicographically, the new code splits bounding
   boxes by the longest axis.
2) Refactored to a functional style with better const correctness.
3) Reduced memory allocation pressure by replacing std::set with
   vectors, in place merging etc.
2022-09-26 11:20:20 +02:00
Vojtech Bubnik
87dcba3e30 WIP TreeSupports: turned SupportElement::area from pointer to value. 2022-09-26 11:20:20 +02:00
Vojtech Bubnik
f790468cca WIP TreeSupports: Extracting make_circle() into Polygon.cpp,hpp 2022-09-01 15:47:13 +02:00
Vojtech Bubnik
19f0d94be3 WIP TreeSupports: Removed support_xy_distance_overhang,
replaced with condition that support_xy_distance >= support_xy_distance_overhang
2022-09-01 14:30:20 +02:00
Vojtech Bubnik
078d496eef WIP TreeSupports: Removed some features not pertinent to PrusaSlicer:
Commented out support angles.
2022-09-01 13:37:08 +02:00
Vojtech Bubnik
97af6f6f39 WIP TreeSupports: Fixed support blockers. 2022-09-01 11:53:14 +02:00
Vojtech Bubnik
0f71a41f53 WIP TreeSupports: Fixed self intersections on overhang regions
with support interfaces enabled.
2022-09-01 11:19:36 +02:00
Vojtech Bubnik
eacacc7317 WIP Tree Supports: Added anchors at the starts of tree support loops,
extruding the support loops in consistent (CCW) orientation,
always starting with the anchor.
2022-08-30 17:23:30 +02:00
Vojtech Bubnik
c36af0e739 WIP TreeSupports: Expand enforced areas so that the supports will be
generated even on steep overhangs.
2022-08-26 09:31:12 +02:00
Vojtech Bubnik
51cfec55cf WIP TreeSupports: Fixed yet some more compiler warnings 2022-08-24 15:32:23 +02:00