91 Commits

Author SHA1 Message Date
PavelMikus
4c872b0352 Paralellize SupportSpotGenerator!
Fix extra perimeters crash - problem with new ankerl hash map
Fix progress bar
2023-04-27 15:37:25 +02:00
PavelMikus
13c7744443 Disable debug data output 2023-04-21 10:04:45 +02:00
PavelMikus
f6c38fb7f9 Smoothen the results, fix some issues. 2023-04-21 10:04:45 +02:00
PavelMikus
798396d918 Fixed several issues with smoothening of the slowdown, but there are still artefacts in the preview, on curved into flat srufaces 2023-04-21 10:04:45 +02:00
PavelMikus
aa0e21eed1 Center estiamted curvature values,
Center esimtated curling - transfering data by nearest line caused CCW or CW shift, based on which point of the current line was used. By switching the points on layer basis, this problem disapeared
2023-04-21 10:04:45 +02:00
PavelMikus
da6b972a79 Smoothen the curled height estimations and slowdown 2023-04-21 10:04:45 +02:00
PavelMikus
6e40e061f6 Finish rough implementation of slowdown over curled filament 2023-04-21 10:04:45 +02:00
PavelMikus
6ee674316d Finally some working curling model 2023-04-21 10:04:45 +02:00
PavelMikus
4ade7d6e8c Some improvements of the algortihm for curled height estim 2023-04-21 10:04:45 +02:00
Pavel Mikus
b04e3bc25e Initial implementation, requieres both dynamic speed and avoid curled overhangs options to be enabled
Also implements new, probably far better estimation of curled height of filament
2023-04-21 10:04:45 +02:00
PavelMikus
475c77ca96 fix some double to float truncation warnings 2023-03-02 17:06:06 +01:00
Pavel Mikus
5e550709ff fix issue 9800 - Avoid Crossing Curled Overhangs Not Respecting Printer Bed Size
Fix Avoid curled overhang functionality actually not working correctly, especially on multiple objects/instances
2023-02-20 21:14:34 +01:00
PavelMikus
73635e0855 Lower the curled height tolerance from 0.3 to 0.1 mm of the curled overhang avoidance algorithm. 2023-02-09 13:36:42 +01:00
PavelMikus
06e602afd3 \#9480 Fix weird path connections in Extra Perimeters when gap fill is applied
\#9513 \#9489 Fix crash when brim is used - the expansion of very small drops may result in empty polygon, which the support spot generator did not reflect
Fix crashes of stability alert checker, when empty print object was passed to it
2023-02-02 14:46:48 +01:00
PavelMikus
716e0254f4 Fix notifications during GCode export - only CRTICAL are now shown
Relax support detector parameters and warnings
2023-01-31 11:12:36 +01:00
Pavel Mikus
66a4b5b82a Refactored stability alert step from object step into print step,
implemented stability issues grouping based on number of issues and objects,
maximum of single warning message emitted
2023-01-29 20:11:50 +01:00
PavelMikus
05c4e759cf Move checkbox for support alerts into AppConfig preferences.
Separate Alerts into new print object step so that not warnings are thrown for autopaint.
finally fix -1 access int SupportSpotGenerator bridge detection
2023-01-27 15:00:10 +01:00
PavelMikus
4a9a40c654 SupportSpots: Fix typo bug in Bridge check 2023-01-27 11:40:51 +01:00
PavelMikus
d0c86403a5 Fix lslices ordering - keep topological ordering from clipper, and separate print ordering into vector of indices 2023-01-26 15:50:18 +01:00
PavelMikus
5839e78a5e minor issues fix 2023-01-26 15:50:18 +01:00
Pavel Mikuš
37ca6e30bd
Update SupportSpotsGenerator.cpp 2023-01-25 17:24:53 +01:00
PavelMikus
c09a44779d brim integration into SupportSpotGenerator 2023-01-25 17:01:58 +01:00
PavelMikus
c31e3ec1a2 Bugfix in extrusion quality estimator, Refactoring of alerts, rename of autogenerate button 2023-01-25 17:01:58 +01:00
PavelMikus
a4de5c6553 initial warnings version 2023-01-25 17:01:58 +01:00
PavelMikus
41f1b83ae4 raft layers, partial objects memory, params acceleration 2023-01-25 17:01:58 +01:00
PavelMikus
f2deefd1de Support spot generator improvement - supporting bridges only in one direction 2023-01-25 17:01:58 +01:00
PavelMikus
821d2391b4 Added SupportPointCause describing the reason for the support point 2023-01-25 17:01:58 +01:00
PavelMikus
be61ab37f4 Document extensively the generated SupportPoint structure,
fix wrong estimation of weight torque for connections
2023-01-19 15:07:06 +01:00
PavelMikus
bdcb773202 replace triangulation in SupportSpotGenerator with triangle formula and winding number
Use the same apporach in computation of polygon area principal components
2023-01-18 16:01:09 +01:00
Vojtech Bubnik
ca0c83d914 The new ExtrusionRole implementation newly supports both "Bridging"
and "External" attributes at the same time.
PerimeterGenerator was updated to make use of it and set "External"
attribute for overhang perimeters.
2023-01-16 14:39:57 +01:00
Vojtech Bubnik
d1f610d957 Extending the expressivity of ExtrusionRole
Moved is_xx() test functions to ExtrusionRole enum class,
changed the tests to use the new ExtrusionRole bitmask.
Follow-up to 5991850db1f2d09d1b7713f42300e2bfe4a42128
e50e96bb26eab4f9d56c98706c03166635cf4fff
c64dbacf88c617e3d676bdaa6c8c81317ccaee5d
2023-01-16 12:39:08 +01:00
Vojtech Bubnik
5991850db1 WIP Extending the expressivity of ExtrusionRole
Co-authored-by: supermerill <merill@free.fr>
Based on the unfinished idea of @supermerill, defining ExtrusionRole
as a bit mask of ExtrusionRoleModifier.
Because the ExtrusionRole was used for both ExtrusionEntity and
G-code export / G-code viewer, the original ExtrusionRole had to be split
to ExtrusionRole and GCodeExtrusionRole to support bitmask attributes
for the former while keeing a low number of ordinary values for the latter.
2023-01-16 10:14:46 +01:00
PavelMikus
9ccb413c02 Extra perimeters fix 2023-01-11 17:15:11 +01:00
PavelMikus
d20f880124 local issues support generator fix 2023-01-11 17:15:11 +01:00
PavelMikus
727e7cc4f1 add throw if canceled calls into support spot generating algorithm 2023-01-11 17:15:11 +01:00
Pavel Mikus
a57680ea67 BUGFIX in aabb intersections, additional debug info 2023-01-11 17:15:11 +01:00
Pavel Mikus
dbaa0f72d1 fix crash in malformations estimation - the nearest line of the current support extrusion may not be in the previous layer lines for some reason (maybe per object ordering?) 2023-01-11 17:15:11 +01:00
Pavel Mikus
ec4cc2e694 refactored and unified code for curled up filament estimation 2023-01-11 17:15:11 +01:00
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
6f20c68c8d Follow-up to 1912b834b19968f114c9f0ed41895fb30ab5e35b
Fixed a typo in SupportSpotsGenerator, where thin fills were pulled
    from an incorrect region.
2023-01-10 12:37:44 +01:00
Vojtech Bubnik
1912b834b1 Fixed a typo in SupportSpotsGenerator, where thin fills were pulled
from an incorrect region.
2023-01-10 12:18:47 +01:00
PavelMikus
5690be1b76 fix issues after rebase 2022-12-14 14:49:20 +01:00
PavelMikus
38a287fec4 first implementation, but for overhangs the code is not run for some reason 2022-12-14 14:49:20 +01:00
PavelMikus
49b68b936c refactored support spot generator to store data in the shared PrintObjectRegions struct, automatic coloring moved to frontend.
There are still issues with multiple instances
2022-12-13 13:13:31 +01:00
PavelMikus
15046aba42 fix compilation issues - missing template keywords 2022-12-12 11:11:08 +01:00
Pavel Mikuš
3fa1615518
Refactoring FDM support spots generator to use Z-Graph (#11)
* import updates from curling avoidance branch

* fix compilation issues

* Refactoring FDM support spots generator to use the new Z-graph built during slicing

* fix local issues bugs

* fix bugs, add new filter for too short extrusions

* fix bugs with nonexistent weakest area

* Use links of Z graph after fix, format the code

* remove unnecesary includes
2022-11-28 10:47:04 +01:00
Vojtech Bubnik
a98467f661 Merge remote-tracking branch 'remotes/origin/master' into vb_treesupports 2022-11-18 13:26:48 +01:00
PavelMikus
a0243affeb fix avoidance algorithm, improve curling filament estimation 2022-11-14 11:47:25 +01:00
Pavel Mikuš
633ce8aa21
Pm jps path finding (#8)
New step - estimation of curling on both the model and the support extrusions.
Improvements in curled filament estimation algortihm
Implementation of Jump Point Search algorithm 
Use of JPS algorithm to avoid curled extrusions during travel moves in Gcode export
2022-11-09 13:33:58 +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