Commit graph

365 commits

Author SHA1 Message Date
PavelMikus
fd81d7a460 Compute bridging direction. Now what is left is to stretch the bridge lines across infill and cut them to ideal length 2023-02-17 15:38:57 +01:00
PavelMikus
696b316e2b initial implementation, trying to filter out surfaces that need expansion 2023-02-17 15:38:57 +01:00
Vojtech Bubnik
978f5c8b47 Merge remote-tracking branch 'remotes/origin/master' into vb_ensurovani 2023-02-17 15:20:47 +01:00
PavelMikus
664e923f3c Fix autopaint tool when using RAFT layers 2023-02-17 13:34:50 +01:00
Vojtech Bubnik
edd6c7c9d9 Removed an obscure "clip_multipart_objects" option, which caused more
harm than good and it is not compatible with the new layer island
Z graph.
Partial fix of 
2023-02-16 16:31:29 +01:00
Vojtech Bubnik
5b94971fce Organic supports: Added check for variable layer height, with which
Organic supports are not compatible.
Fixes  and similar.
Moved the object max Z against build volume Z to Print::validate().
Updated layer_height_profile_from_ranges() to compress the resulting
ranges.
2023-02-03 15:27:50 +01:00
Vojtech Bubnik
001358cbba Merge remote-tracking branch 'remotes/origin/master' into vb_ensurovani 2023-02-02 09:53:14 +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
8cb414c262 fix worng step type passed into set-done in new alert step 2023-01-27 15:00:10 +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
d16f9e0410 add check button for disabling the support alerts 2023-01-26 15:50:18 +01:00
enricoturri1966
92d26883a5 Merge branch 'master' of https://github.com/Prusa-Development/PrusaSlicerPrivate into vb_et_instances_synch 2023-01-26 10:00:58 +01:00
enricoturri1966
643d50813d Removed function double rotation_diff_z(const Vec3d &rot_xyz_from, const Vec3d &rot_xyz_to) and remaining code using it 2023-01-26 10:00:35 +01:00
PavelMikus
c38bd9adde missing space in description 2023-01-25 17:01:58 +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
fb4c1bf612 compilation fix 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
Vojtech Bubnik
88ba9ab1c8 Tree supports: Added the most important tree support parameters
to parameter layer.
2023-01-19 17:20:42 +01:00
PavelMikus
88d1718a5a revisit SupportSpotSearch step invalidation and fix issues 2023-01-17 17:15:13 +01:00
Vojtech Bubnik
661463645b Background processing: The milestone state machine was extended
with canceled / invalidated states.
Print / PrintObject infrastructure was extended with a cleanup()
callback, which may check for the new State::Canceled / State::Invalid
states of a particular milestone and turn it to State::Fresh
while releasing data of that particular milestone which is no more valid.

Also fixed a bug in 31fbfa56de
where the PrintObject shared data invalidation condition was flipped.
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
cfb702be99 rename avoid_curled_filament_during_travels to avoid_crossing_curled_overhangs
mark avoid_crossing_curled_overhangs as Experimental
rename overhang_steepness_levels to overhang_overlap_levels
2023-01-11 17:15:11 +01:00
Vojtech Bubnik
f93584773f Merge remote-tracking branch 'remotes/origin/lh_vb_ensurovani' into vb_ensurovani 2023-01-06 17:54:21 +01:00
Vojtech Bubnik
1a91d85e7e Fixes of recent RegionExpansion implementation.
Enabled thick internal bridges even if external thick bridges are disabled.
Fixed compilation of conditionally compiled debugging code.
2023-01-06 17:53:49 +01:00
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