283 Commits

Author SHA1 Message Date
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 (#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
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 (#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
Pavel Mikuš
06fbab12fe
Pm overhang extra perimeters (#7)
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 ee626eb65a1a41ec7fd3e00f7b39d048c2795516 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 263b23fb468a4d0981de8ecf590cfd5f6d4edbb6: Fixed an assert. 2022-08-19 09:09:59 +02:00
Lukáš Hejl
263b23fb46 Follow-up to 6f5813a849e40b1bcae97270a317222dff92f5ec: 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
Lukáš Hejl
6f5813a849 Fix of #8648 - Lightning infill wasn't connected to perimeters when it was combined with the option "Only infill where needed".
Now Lightning infill will ignore this setting and treat it as off. Because Lightning infill and "Only infill where needed" do a similar thing, and their combination doesn't make much sense.
2022-08-18 11:22:45 +02:00
Lukáš Hejl
c9ddf7315e Replaced parameters wall_add_middle_threshold and wall_split_middle_threshold with automatic computation based on extrusion width.
That allows computed better values in cases when the extrusion width of the first layer or for the infill differs from the extrusion width for perimeters.

Parameters min_feature_size and wall_transition_length now can be set in percentages, and then they will be calculated based on nozzle size. Old profiles with default values are forced to replace old default values with new default values in percentages.
2022-08-08 10:21:55 +02:00
Vojtech Bubnik
9e6871e5b8 WIP Tree supports: It compiles, but unfinished, missing pieces. 2022-07-27 10:41:11 +02:00
Vojtech Bubnik
665d1a94b4 WIP Tree Supports: Major changes, it does not compile yet. 2022-07-27 08:54:26 +02:00