53 Commits

Author SHA1 Message Date
Filip Sykala - NTB T15p
92e28d93ff Add support for permanent supports on overhangs with propagation of influence into previous layers 2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
ab687e79b1 Separate propagation of permanent support points 2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
11e20327e4 Testing version (commented out autogenerator parameters)
Edit configuration svg to change values to 160 percent of the density
2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
550914204a tbb paralelization for prepare part of support generation 2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
e9011e100d Add support for peninsulas 2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
fdc9985e50 Add detection and creation of peninsula
with anotation of outline.
2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
08ee5524d5 Modify GUI for searching support generator configuration
Rename config params.
2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
fc6b8a4b65 Transfer Copy constructor of KDTreeIndirect into copy function
Reason: During Linux testing "fff_print_tests" it Fails from time to time.
ASAN version cause issue inside SeamPerimeters.hpp but I am not sure why.
2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
3daed2f02d Continue cleaning code
After thin&thic must be at least 2 support points
2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
3df99c16be Fix warnings:
⚠️ ../src/libslic3r/SLA/SupportIslands/SampleIslandUtils.cpp:1495:68: warning: lambda capture 'tiny_done' is not used [-Wunused-lambda-capture]
⚠️ ../src/libslic3r/SLA/SupportIslands/SampleIslandUtils.cpp:1830:23: warning: unused variable 'line' [-Wunused-variable]
⚠️ ../src/libslic3r/SLA/SupportIslands/SampleIslandUtils.cpp:624:6: warning: unused function 'is_points_in_distance' [-Wunused-function]
⚠️ ../src/libslic3r/SLA/SupportIslands/VoronoiDiagramCGAL.cpp:37:7: warning: unused function 'to_point_d' [-Wunused-function]
⚠️ ../src/libslic3r/SLA/SupportPointGenerator.cpp:359:6: warning: unused function 'exist_same_points' [-Wunused-function]
⚠️ ../src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:813:27: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
⚠️ ../src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:892:146: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
688c614e47 Fix for sampling and enhance visualization. 2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
74db5d1ed2 Add support settings into GUI 2025-02-25 16:41:16 +01:00
Filip Sykala - NTB T15p
5a38e9b4b3 Fix sampling selfconnected thiny part of island sampled on voronoi skelet 2025-02-25 16:41:15 +01:00
Filip Sykala - NTB T15p
fb083cc610 Add default value for curve loaded from SVG file for fix test at this moment 2025-02-25 16:41:14 +01:00
Filip Sykala - NTB T15p
84dd902ca8 Fix of build 2025-02-25 16:41:14 +01:00
Filip Sykala - NTB T15p
88a1ddeb91 Remove points out of extended part.
Allow multiple sample of the same 2d part of object in multiple heights
2025-02-25 16:41:14 +01:00
Filip Sykala - NTB T15p
d69177f910 Change grid to KD tree for fast search of support points in max radius 2025-02-25 16:41:14 +01:00
Filip Sykala - NTB T15p
40d52994db Distance of support point are modified by svg file.
- Support points are stored in separate list(no need to collect from grid + no duplicit support points)
 - Grid contain only indices into result vector of support points
 - Each layer is made update of radiuses for existing support points
 - Each support point knows support radius for current processed layer
 - Layers knows z coordinate soo heights in preparation are copied into layer.
2025-02-25 16:41:14 +01:00
Filip Sykala - NTB T15p
3906b7dafc Sample only overhanging part of layer. 2025-02-25 16:41:14 +01:00
Filip Sykala - NTB T15p
452473c370 correction key to grid around zero 2025-02-25 16:41:14 +01:00
Filip Sykala - NTB T15p
7a375abddb Autogenerate supportPoints by surface angle 2025-02-25 16:41:14 +01:00
Filip Sykala - NTB T15p
2ce4998b39 Remove tear preasure. 2025-02-25 16:41:14 +01:00
Filip Sykala - NTB T15p
728adb99d0 Move minimal area into configuration to be able modify it from UI (in my opinion it is necessary) 2025-02-25 16:41:14 +01:00
Filip Sykala - NTB T15p
f2df4793af island centroid is not used soo I delete it 2025-02-25 16:41:13 +01:00
Filip Sykala - NTB T15p
d752200345 Remove weird Z level for structure - points are mapped on surface of model.
It moves with support point by 3* layers ... 0.05*3 = 0.15 mm (invisible so mistake was ignored)
Head radius is 0.4 mm
2025-02-25 16:41:13 +01:00
Filip Sykala - NTB T15p
b39df3e6fe Add comments 2025-02-25 16:41:13 +01:00
Martin Šach
0bf8a9b1c5 Fix includes 2024-08-14 00:04:11 +02:00
Martin Šach
919740fb3e Apply fix includes. 2024-07-08 15:37:02 +02:00
Martin Šach
96e3e77fef Prepare fe for include optimization.
- Add pragmas to keep necessary headers with symbols not explicitly
stated in the file.
- Use include paths that IWYU understands.
2024-07-08 15:37:02 +02:00
Martin Šach
21116995d7 Refactor CMake and improve #includes.
* 1. Remove all global include_directories.
* 2. Move 3d party dependencies from src to budled deps if possible.
* Unify and enforce one way of including headers:
    e.g. #include "libslic3r/GCode.hpp" vs #include "GCode.hpp"
    (always use the "libslic3r/GCode.hpp" option).
* Make all dependencies (also header only) a cmake target.
2024-07-08 15:36:46 +02:00
ps_copyright
f32859c302 final copyright headers 2023-09-01 14:49:07 +02:00
tamasmeszaros
9ee71ddd92 WIP fixing trafos 2023-01-17 11:23:18 +01:00
tamasmeszaros
d23f9d7674 Refactoring and performance optimization for support trees in SLA 2022-06-29 10:43:46 +02:00
Vojtech Bubnik
576c167bd5 Ported "avoid crossing perimeters" and bridging unit tests from Perl
to C++.
Further reduced Perl bindings.
Got rid of the ExPolygonCollection wrapper, replaced with ExPolygons.
2022-05-04 18:21:08 +02:00
Vojtech Bubnik
7ff76d0768 New ClipperUtils functions: opening(), closing() as an alternative
for offset2() with clear meaning.
New ClipperUtils functions: expand(), shrink() as an alternative
for offset() with clear meaning.
All offset values for the new functions are positive.

Various offsetting ClipperUtils (offset, offset2, offset2_ex) working
over Polygons were marked as unsafe, sometimes producing invalid output
if called for more than one polygon. These functions were reworked
to offset polygons one by one. The new functions working over Polygons
shall work the same way as the old safe ones working over ExPolygons,
but working with Polygons shall be computationally more efficient.

Improvements in FDM support generator:
1) For both grid and snug supports: Don't filter out supports for which
   the contacts are completely reduced by support / object XY separation.
2) Rounding / merging of supports using the closing radius parameter is
   now smoother, it does not produce sharp corners.
3) Snug supports: When calculating support interfaces, expand the projected
   support contact areas to produce wider, printable and more stable interfaces.
4) Don't reduce support interfaces for snug supports for steep overhangs,
   that would normally not need them. Snug supports often produce very
   narrow support interface regions and turning them off makes the support
   interfaces disappear.
2021-10-14 09:11:31 +02:00
Vojtech Bubnik
09a80d954c Further rework of ClipperUtils: Replaced many to_polygons() /
to_expolygons() calls with templated ClipperUtils variants to avoid
memory allocation and copying.
2021-05-03 11:39:53 +02:00
tamasmeszaros
a15c16d40d Use new libnest backend for MinAreaBoundingBox wrapper 2021-04-21 17:21:43 +02:00
tamasmeszaros
ad19ab219d New custom backend for libnest2d using libslic3r types
Adapted to new clipper->eigen mod
2021-04-21 16:02:25 +02:00
Lukas Matena
2d32c80b75 Fixing GCC warnings 2 2021-01-29 10:46:52 +01:00
tamasmeszaros
edb8b9f46d Cover various overhang types cumulatively 2020-10-16 11:14:57 +02:00
tamasmeszaros
fb1f3589ed Use rotated bounding box to calculate eccentricity 2020-10-16 11:14:57 +02:00
Vojtech Bubnik
90ddffa83c This broke the SLA support point generator test. Why? 2020-10-15 13:35:45 +02:00
Vojtech Bubnik
19a115260a A little bit cheaper triangle random sampling + documentation. 2020-10-15 07:58:13 +02:00
tamasmeszaros
26d5c30366 Improvements to support point generator
- Separate the 3 bands -- dangling, sloping and full overhanging -- regions and handle them with different support force deficits.

- Use a heuristic for overhanging edges to increase the number of support points generated for them


- Try to make overhangs and slopes deficit depend on stable area.
2020-09-10 13:19:17 +02:00
tamasmeszaros
7158690ddd Fix build on win and rpi 2020-08-13 15:09:22 +02:00
tamasmeszaros
929cea59f3 replace ccr_::enumerate with flexible for_each
enumerate is unusual and would only work effectively with random access iterators

this for_each takes advantage of tbb blocked_range
replace ccr_::enumerate with flexible for_each

enumerate is unusual and would only work effectively with random access iterators

this for_each takes advantage of tbb blocked_range
2020-08-13 14:35:14 +02:00
tamasmeszaros
1eec6c473c Rename EigenMesh3D to IndexedMesh and SupportConfig to SupportTreeConfig 2020-08-03 19:05:30 +02:00
tamasmeszaros
38239f09e3 Fix remove_bottom_points function 2020-08-03 19:03:02 +02:00
tamasmeszaros
e6bdec4aa5 Remove wrapper around std::mt19937 2020-01-15 17:44:15 +01:00
tamasmeszaros
6205524d75 Make support point generator deterministic. 2020-01-14 10:48:22 +01:00