107 Commits

Author SHA1 Message Date
Pavel Mikus
72a25e7ad0 use new extrusion quality estimator function in support spot generator; fix issue with local support points and incorrect distance sign; 2023-01-11 17:15:11 +01:00
Vojtech Bubnik
ee626eb65a WIP: Layers split into islands, islands overlapping in Z interconnected
into a graph with links to the layer above / below.

In addition:
Members of LayerRegion were made private, public interface const only.
this->m_xxx replaced with just m_xxx
SurfacesPtr was made a vector of const pointers.
2022-10-26 18:41:39 +02:00
Pavel Mikus
c86deb92db improve function name to reflect that it does unscaling (to_unscaled_linesf) 2022-10-06 12:19:33 +02:00
Pavel Mikus
b49a2425ca Improve Lines Distancer quality, use it also in SeamPlacer 2022-10-05 14:51:32 +02:00
PavelMikus
bb993b8f94 Greatly reduce curling of Rear seams, revert previous ineffective change
SPE-1310
2022-09-23 11:40:19 +02:00
PavelMikus
63222eb529 Reduce curling of Rear seams, improve its quality
Relevant issue: 8841 Rear Seam Not Aligned, Not Rear of Model
2022-09-15 15:25:27 +02:00
PavelMikus
2781f716f4 Fixed short edge collapse algortihm, so that it does not decimate all triangles on very high detailed models
Relevant issue 8834 Access Error when slicing
2022-09-15 15:25:15 +02:00
PavelMikus
464a37110f Staggered inner seams 2022-09-06 11:25:39 +02:00
Lukas Matena
d7a34f7e40 Merge branch 'master_250' 2022-08-30 16:31:07 +02:00
Lukas Matena
b878b3a80f Follow-up to 9e88954 (avoid unnecessary copy) 2022-08-30 11:14:41 +02:00
PavelMikus
9e88954fbc Fix of issue 8695 - seam enforced areas were not respected with arachne generator.
The real issue was with T-Junctions created by Arachne - seam placer then sometimes
choose the wrong perimeter to split. The fix cases the seam placer to look for two
consecutive points that point to the same perimeter, which enusres that the correct
loop is split
2022-08-24 11:36:41 +02:00
PavelMikus
be9cae74a0 Random seam fix - pseudorandom generator instead of rand() 2022-08-18 17:19:58 +02:00
PavelMikus
d746ece41a fix performance problem in seam placer - do not generate merged islands for each layer; use lslices insted
affects also overhang estiamtion and thus other params
2022-08-18 17:19:58 +02:00
Lukas Matena
deac513faa Fixed conflicts after merge 2022-08-15 15:23:59 +02:00
Lukas Matena
bce2b148f4 Merged 2.5.0-beta1 into master (NO CONFLICTS FIXED) 2022-08-15 13:41:40 +02:00
PavelMikus
d39d35cc83 better curling fix, removed resamping, fixed the feature disable from previous commit 2022-08-11 15:30:51 +02:00
PavelMikus
8812036c25 slowly decreasing angle seam placement feature disabled 2022-08-11 15:30:51 +02:00
PavelMikus
0479387b20 reduce wavy seams for all layer heights, improve painting 2022-08-11 15:30:51 +02:00
PavelMikus
06084b0bc5 lower segment count on smooth parts 2022-08-11 15:30:51 +02:00
PavelMikus
3f36187101 increase segments count for smooth long strings 2022-08-11 15:30:51 +02:00
PavelMikus
52b9325f7c improving dynamic segmentation, simplifications in snapping angle logic 2022-08-11 15:30:51 +02:00
PavelMikus
44a388d560 prefer enforcers over blockers, lower the threshold distance,
dynamic modification of segments count in alignment based on smoothnes
2022-08-11 15:30:51 +02:00
PavelMikus
a41435d044 fixed overhang estimation correclty 2022-08-11 15:30:51 +02:00
PavelMikus
af95b6ecbd fix issue with enforced patches
refactor end_index to mark index after the last point
hackfix issue with overhang seem placement
2022-08-11 15:30:51 +02:00
PavelMikus
cb3678e1e2 fix bug in seam string weight - use seam string length as quality score 2022-08-11 15:30:51 +02:00
Lukas Matena
fbdf777898 Merge branch 'master_250' 2022-07-15 15:04:10 +02:00
Pavel Mikus
70677858a1 Use resampling only with smooth surfaces generated by Arachne 2022-07-14 18:00:59 +02:00
Pavel Mikus
2e437d1761 curling improvements 2022-07-14 11:47:29 +02:00
Pavel Mikus
d5d1633e2b Bugfix: seam enforcers and blockers not respected on different nozzle widths -
now flow width is used instead of fixed distance param
2022-07-14 10:15:05 +02:00
Pavel Mikus
f5efb0d0aa remove global angle computation, wrong results 2022-07-14 10:15:05 +02:00
Pavel Mikus
4a9f9aa89b oversample smooth surfaces, which reduces curling on those surfaces, because the shortest path down is better defined 2022-07-14 10:15:05 +02:00
Pavel Mikus
40408c2178 increase snapping angle 2022-07-14 10:15:05 +02:00
PavelMikus
768bfd5c7f reduce curling 2022-07-14 10:15:05 +02:00
PavelMikus
c65e22e6bb refactored find_seam_string func 2022-07-14 10:15:05 +02:00
PavelMikus
4d8e8afb10 Count seam string weight and try mutiple strings; choose highest weight 2022-07-14 10:15:05 +02:00
Pavel Mikus
f31865a627 increase weight of central seam enforcers 2022-07-14 10:15:05 +02:00
Pavel Mikus
232517fe77 choose seam string with lower variance weighted by visibility 2022-07-14 10:15:05 +02:00
Pavel Mikus
feeb9b2b1b bug fixes in the linear regression 2022-07-14 10:15:05 +02:00
PavelMikus
fec3afa490 cubic spline segment size based on the length of string 2022-07-14 10:15:05 +02:00
PavelMikus
1e05d09324 search points based on updated linear regression model (line), make search raidus dynamic based on layer thickenss 2022-07-14 10:15:05 +02:00
Lukas Matena
e6d341f9f2 Fixing conflicts part 2:
SeamPlacer.cpp/.hpp files from master_250 were used, there should be no changes
in master that will be overwritten, the feature was backported from master and
only developed in master_250 from then on
2022-06-29 16:43:29 +02:00
Lukas Matena
b61714bb3e Merge branch 'master_250' (NO CONFLICTS FIXED):
CONFLICT (content): Merge conflict in resources/profiles/PrusaResearch.idx
CONFLICT (content): Merge conflict in resources/profiles/PrusaResearch.ini
CONFLICT (content): Merge conflict in src/libslic3r/CMakeLists.txt
CONFLICT (content): Merge conflict in src/libslic3r/Fill/Fill.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode.hpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/GCodeProcessor.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/GCodeProcessor.hpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/SeamPlacer.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/SeamPlacer.hpp
CONFLICT (add/add): Merge conflict in src/libslic3r/Geometry/Curves.hpp
CONFLICT (content): Merge conflict in src/libslic3r/PerimeterGenerator.cpp
CONFLICT (content): Merge conflict in src/libslic3r/Point.hpp
CONFLICT (content): Merge conflict in src/libslic3r/PrintConfig.hpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/ConfigWizard.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GCodeViewer.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GLCanvas3D.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GUI_App.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp
CONFLICT (content): Merge conflict in src/slic3r/Utils/FixModelByWin10.cpp
CONFLICT (modify/delete): t/perimeters.t deleted in HEAD and modified in master_250.  Version master_250 of t/perimeters.t left in tree.
CONFLICT (content): Merge conflict in tests/fff_print/CMakeLists.txt
CONFLICT (content): Merge conflict in tests/fff_print/test_fill.cpp
CONFLICT (content): Merge conflict in version.inc
CONFLICT (modify/delete): xs/xsp/PerimeterGenerator.xsp deleted in HEAD and modified in master_250.  Version master_250 of xs/xsp/PerimeterGenerator.xsp left in tree.
2022-06-29 14:37:14 +02:00
Vojtech Bubnik
1d41ffdd7d When placing seam, never produce segments shorter than 1.5um. 2022-06-28 10:30:04 +02:00
PavelMikus
732586de7c SeamPlacer: Removed skipping mechanics in alignment
improved snapping to sharp angles
reduced curling on smooth surfaces
Rear is now aligned
2022-06-20 17:41:05 +02:00
PavelMikus
e70aea8b30 SeamPLacer: for extrusion loops, check all paths for ExternalPerimeter role
small parameter tuning
2022-06-16 10:12:44 +02:00
PavelMikus
20a42e3e2f Fix crash on painted seams - painting blocker close to enforced could cause
points to be recognized as enforced and then marked as blocked, which could
brake the middle enforced point selection
2022-06-13 13:01:23 +02:00
PavelMikus
745c5ecd9b SeamPlacer - fix search radius estimation for visibility computation (use exp distribution)
slightly tune parameters
2022-06-13 10:05:35 +02:00
PavelMikus
27a7ddccb6 improve visibility estimation via distance to plane weighting.
increase angle importance, improve alignment
2022-06-08 10:28:21 +02:00
PavelMikus
c09781d61d optimize embedding computation
fix seed of random generators
set high angle importance for nearest mode
2022-06-07 11:12:48 +02:00
PavelMikus
1e7b4a6720 Implementation of ShortEdgeCollapse
Replaced QEC by edge collapse in occlusion computation
2022-06-07 11:12:48 +02:00