Commit graph

287 commits

Author SHA1 Message Date
Lukáš Hejl
063ae0ccfc Added option to switch between BoundedRectilinear and Concentric infill for the ensure vertical shell thickness. 2023-01-06 09:26:29 +01:00
Vojtech Bubnik
785ef08656 WIP ensure vertical wall thickness: Reduced amount of shell region
expansion, added filling in of narrow regions between solid infills
(for example created by propagating shell from the side and from
the top at the same time).
2023-01-02 14:59:40 +01:00
Vojtech Bubnik
fde0d68c40 WIP Reworking of "ensure vertical wall thickness".
1) Flipped the order of "discover_vertical_shells" and "process_external_surfaces",
   now the external surfaces are expanded after "discover_vertical_shells"
   aka "ensure vertical wall thickness" is solved.
2) Reworked LayerRegion::process_external_surfaces() to only expand into
   "ensure vertical wall thickness" regions, also the expansion is done
   in small steps to avoid overflowing into neighbor regions.

also:
Utility functions reserve_more(), reserve_power_of_2(), reserve_more_power_of_2()
Various SurfaceCollecion::filter_xxx() modified to accept an initializer list of surface types.
New bridges detector refactored to accept overhang boundaries.
BoundingBoxWrapper was moved from RetractCrossingPerimeters to AABBTreeIndirect.
2023-01-02 13:19:27 +01:00
PavelMikus
9bf7ce5e28 change parameter name, fix and improve intersection insertions 2022-12-14 14:49:20 +01:00
Pavel Mikus
f730fd21d4 refactoring overhang speed 2022-12-14 14:49:20 +01:00
PavelMikus
11353a4a5c UI integration, new option for speed on overhangs 2022-12-14 14:49:20 +01:00
Pavel Mikus
a57e2a22f6 fixed bug with instancing 2022-12-13 13:13:31 +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
Pavel Mikuš
3fa1615518
Refactoring FDM support spots generator to use Z-Graph ()
* 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
e6d10fc747 Fixed crash on reslicing after infill invalidation.
The crash was introduced with sorting the extrusions into islands.
2022-11-28 10:07:22 +01:00
Vojtech Bubnik
a98467f661 Merge remote-tracking branch 'remotes/origin/master' into vb_treesupports 2022-11-18 13:26:48 +01:00
Pavel Mikuš
633ce8aa21
Pm jps path finding ()
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
Pavel Mikuš
06fbab12fe
Pm overhang extra perimeters ()
Implementation of extra perimeters on steep overhangs/flat unsupported parts
Also contains:
Principal components computation over polygon area
New fast bridge direction estimation which minimizes amount of unanchored bridge endpoints
2022-11-09 10:38:36 +01:00
Vojtech Bubnik
f8c67e07a4 Follow-up to ee626eb65a 2022-10-26 19:05:50 +02: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
Vojtech Bubnik
2ced762948 Integrating a C++20 like span library
https://github.com/tcbrindle/span

Replacing a homebrew const pointer wrapper const correctness helper
with the C++20 like span library.

One day when we switch to C++20 we will just use the C++20 spans instead.
2022-10-19 16:27:15 +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
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
PavelMikus
a6a723928c create cradle around small parts, break tiny connections in the model graph, fix PETG support 2022-09-07 17:11:58 +02:00
PavelMikus
b9659ce676 Merge branch 'master' into pm_support_spots_generator 2022-09-05 13:04:06 +02:00
Lukas Matena
d7a34f7e40 Merge branch 'master_250' 2022-08-30 16:31:07 +02:00
Vojtech Bubnik
7e77048593 Removed shiny profiler. The Shiny profiler was only working on MSVC
and nowadays the sampling profiler inside Visual Studio is better.
2022-08-24 16:32:01 +02:00
Vojtech Bubnik
3f69643516 Merge branch 'vb_treesupports' 2022-08-23 16:45:34 +02:00
Vojtech Bubnik
14e0cd0e96 Parallelized PrintObject::bridge_over_infill() 2022-08-22 15:41:36 +02:00
PavelMikus
3773de2957 hardcode overhang angles, remove volumetric filtering (does not work correctly) 2022-08-22 11:01:58 +02:00
PavelMikus
970c9e033d fix triangle selector painting on models with transformation 2022-08-22 11:01:58 +02:00
PavelMikus
4eaa863ba4 make supports bigger, improve malformations, TODO: do not support small extrusions, check part size 2022-08-22 11:01:58 +02:00
PavelMikus
62c3ca5e99 gui integration, overhang angle hack 2022-08-22 11:01:58 +02:00
PavelMikus
14f109e703 refactored local issues to use overhang distance 2022-08-22 11:01:58 +02:00
PavelMikus
ea76977602 Quick fix for invalidation of support spots search 2022-08-22 11:01:58 +02:00
PavelMikus
1d4f41a2fd improved option logic, custom setting for object soe that it uses the painted supports 2022-08-22 11:01:58 +02:00
PavelMikus
a6cf309020 updated weakest connection strength estimation,
fixed various issues
2022-08-22 11:01:58 +02:00
PavelMikus
90e77f9135 integration into FDM supports painter gizmo 2022-08-22 11:01:58 +02:00
PavelMikus
9ff0d49fae Implemented calculation of elastic section modulus 2022-08-22 11:01:58 +02:00
PavelMikus
0a8f70c1ba inital phase of refactoring, segmentation should now build graph of connected sections 2022-08-22 11:01:58 +02:00
PavelMikus
8e5cdf29ba improve curling model parameters,
other small improvements
2022-08-22 11:01:58 +02:00
PavelMikus
864c85d47e replace convex hull computation with KDTree, improve sticking centroid estimation 2022-08-22 11:01:58 +02:00
PavelMikus
eaffb14921 Improved stability supports - now accounts for base convex hull, decreases area of points if too close. 2022-08-22 11:01:58 +02:00
PavelMikus
8dc3956b64 bug fixes, raycasting to find good support spot 2022-08-22 11:01:58 +02:00
PavelMikus
30f072457f Refactored version without voxel grid, init commit 2022-08-22 11:01:58 +02:00
Godrak
91a4047586 Fixed various problems with support placement. 2022-08-22 11:01:58 +02:00
PavelMikus
6caec6926c TON of bugfixes, balancing still does not work 2022-08-22 11:01:58 +02:00
Godrak
5cc9bd380b Compilation fixes after rebase 2022-08-22 11:01:58 +02:00
PavelMikus
d9bd1080da UNFINISHED!
refactoring of algorithm to bottom up propagation of support islands
Added CentroidAccumulators for balance issues checking
2022-08-22 11:01:58 +02:00
PavelMikus
d41b20547d greatly upgraded the algorithm for support placement -
added dynamic splitting of long paths,
included flow width of current and previous layer,
refactored and renamed parameters
2022-08-22 11:01:58 +02:00
PavelMikus
e516ba0dd0 Moved TriangleSelectorWrapper methods to cpp file, added comment describing problems with FacetsAnnotations/TriangleSelector
structure
2022-08-22 11:01:58 +02:00
PavelMikus
706cd63e61 Beta version of the algorithm
Implemented long unsupported segments detection, which considers also curvature
Implemented detection of curved segments at the edge of the previous layer - danger of warping/curling
2022-08-22 11:01:57 +02:00
PavelMikus
adf39805bc work in progress:
hooked in new step: posSupportableIssuesSearch
created layout of the processing
2022-08-22 11:01:57 +02:00
Lukáš Hejl
f95a6e3d33 Follow-up to 263b23fb46: Fixed an assert. 2022-08-19 09:09:59 +02:00
Lukáš Hejl
263b23fb46 Follow-up to 6f5813a849: Recalculate infill surfaces when infill_only_where_needed is enabled while switching from the Lightning infill to another infill or vice versa. 2022-08-18 21:17:39 +02:00