269 Commits

Author SHA1 Message Date
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
Lukáš Hejl
5d557ed32f Fix of #8436 - Crash in the lightning infill when some region has zero infill density. 2022-06-30 09:44:00 +02:00
Lukáš Hejl
c76c497234 Renamed slicing engine to perimeter generator and slightly rearrangement of Arachne parameters. 2022-06-01 21:43:00 +02:00
Lukáš Hejl
3942cf958c Updated Arachne with Cura master. 2022-06-01 21:41:40 +02:00
Lukáš Hejl
3610afd393 Updated Arachne with Cura master. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
adf2d21c67 Allowed "Slicing engine" and all Arachne parameters to be settable per object. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
11004b4bbd Added cancellation to Lightning infill. 2022-06-01 21:35:58 +02:00
Lukáš Hejl
bbb7e839a0 Fixed various issues in the ported Lightning infill.
Added export to SVG for TreeNode.
Also was finalized integration of Lightning infill and Lightning infill was enabled.
2022-06-01 21:35:58 +02:00
Lukas Matena
5c616c5931 Sync to 2.4.1-beta1 2022-02-01 14:16:13 +01:00
Lukas Matena
ebb9041041 Merge branch 'master' into stable - no conflicts fixed 2022-02-01 14:15:18 +01:00
Vojtech Bubnik
e3d345aa17 Fix of PrusaSlicer crashes when using fuzzy skin and setting 0 for values #7468
Fuzzy skin will be disabled for regions with
with fuzzy_skin_point_dist < 0.01 or fuzzy_skin_thickness.value < 0.001
as the first one creates excessive long extrusions while the second
one does not modify the perimeters.
2021-12-13 11:18:43 +01:00
Vojtech Bubnik
cad459c6ad Fix of "solid_infill_every_layers = 1" does not generate valid infill for some geometries #6736
With solid_infill_every_layers = 1 the new solid layer should be solid
infill not solid bridging infill. Once the layer is correctly classified
as solid with solid_infill_every_layers = 1, everything works as expected.
2021-12-10 16:42:03 +01:00
Vojtech Bubnik
c9727b5a57 Fix of Random placment of top fill throughout model #7442
For this particular model, ClipperLib numerical instability causes
one of the internal surfaces to turn into bridging surfaces
on reslicing. The issue was fixed by reverting to untyped slices if possible.
2021-12-08 09:45:59 +01:00
Vojtech Bubnik
7f0fcd1354 Fix of infill_only_where_needed for complex objects:
When propagating overhangs to be supported, the regions are newly
properly merged and regularized.

Fix of Stuck at "preparing infill" with "only infill where needed" enabled 1.41.2 #1696
"Only infill where needed" makes slicer crash for some models #6385
[BUG] Slicing stuck for 14h now, 0.8 NZL Ender 5+ Gyroid infill only where need
2021-12-07 13:15:33 +01:00
Vojtech Bubnik
b6c4e94d81 Fixing projection of bottom surfaces in MM segmentation and for
support blockers / enforcers.

All slicing functions shall produce consistent results with the same mesh, same transformation matrix and slicing parameters.
Namely, slice_mesh_slabs() shall produce consistent results with slice_mesh() and slice_mesh_ex() in the sense, that projections made by
slice_mesh_slabs() shall fall onto slicing planes produced by slice_mesh().

Before this commit, slice_mesh_slabs() projected bottom facing faces upwards to its coplanar slicing plane,
which is different from how slice_mesh() or slice_mesh_ex() work, leading to ignored support enforcer / blocker strokes.
2021-10-28 15:07:29 +02:00