Commit Graph

153 Commits

Author SHA1 Message Date
2f146f727b Bugfix: custom seam did not work for triangles that were exactly vertical
The projection algorithm was originally made for custom supports, so vertical triangles
were not interesting. They are for seam. Instead of rewriting the algorithm and risking
more bugs, the edge case is detected and the triangle is tilted slightly.
2021-02-22 16:26:16 +01:00
8615766b1e FDM synchronization of front end with back end:
Fixed unnecessary invalidation of already calculated perimeters
if the infill density changes.
Fixed a race condition in invalidation of FDM regions.
2021-02-11 12:03:29 +01:00
bf90548516 Squashed commit of the following:
commit 61b3ca0b4b4a0b4cfbbc706ede94ef7ccec4c91f
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Wed Feb 10 15:42:27 2021 +0100

    Fix of fuzzy skin

commit d971ed51a5bb65e8bdfd326bc41b9d7ab2e20834
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Wed Feb 10 14:12:51 2021 +0100

    CMake adjustment of MINIMUM_BOOST_VERSION

commit 5d8aa2c59ecf7e32456f2e43e07dedc7d24eb21c
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Wed Feb 10 14:12:33 2021 +0100

    Fix of debug compilation after warning removal.

commit 5e339b3078f0c9d75b6fac28ed3c295ae9fbbef5
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Wed Feb 10 14:11:34 2021 +0100

    Fuzzy Skin changes:
    1) Moved the parameters to region
    2) Removed experimental code.
    3) Allowed fuzzyfication of both outer perimeter and holes.
2021-02-10 16:02:43 +01:00
bcc7d7a7f8 Added separate checkbox for gap filling (#5999)
* in dev

* moved to Advanced menu
2021-02-10 16:01:40 +01:00
1d13fca90e Finishing the "Iron all surfaces" feature.
Fixes Ironing all solid surface does not seem to work #5703
2021-02-09 18:49:33 +01:00
f968cfd2d5 Fixing Clang warnings 3 2021-02-08 17:52:29 +01:00
d645467246 Fix of "infill percentage not changing #5993"
Fix of aa4c018cd5
Infill is a percent, which is a number from 0 to 100, not from 0 to 1.
2021-02-08 11:39:42 +01:00
425738656f Fix of Slicing hangs when Infill Percentage set very low #5910
When passing a PrintRegionConfig to the slicing back end, zero an infill
density if it is already nearly zero. This avoids an ugly division by
zero in the infill code and it also makes clear to the back end that
we don't want an infill.
2021-02-05 17:58:55 +01:00
3f2b57b1d4 Squash merge of lh_brim_rework,
brim separated to Brim.cpp,hpp
Refactored accessors to PrintObjectPtrs, PrintRegionPtrs, LayerPtrs,
SupportLayerPtrs for const correctness.
2021-02-03 15:12:53 +01:00
2af3ac15e2 Fix of #4654 #5122 #5668 #5811 #5895
Fixing model import of models with nearly degenerate triangles, which
degenerate after transformation (translation or rotation).

There was certainly a bug in PrusaSlicer, however this bug was triggered
mostly by the ASCII STL files generated by OpenSCAD, likely due to insufficient
number of decimal digits when saving an ASCII STL, see
[openscad/openscad] STL export should contain single precision floats (#2651)
2021-01-28 19:00:01 +01:00
6a777fa5a5 Follow-up on dcec1fa74:
Commented out fuzzy_skin_shape for now, the parameter may be used
in the future, but for now we don't want the parameter to be stored
into configuration files.
2021-01-27 09:58:42 +01:00
36e520a89d WIP: Initial Fuzzy Skin implementaiton #2010
Based on pull request Experimental fuzzy skin mode #4611 by @etet100
and on CuraEngine implementation of perimeter fuzzyfication
void FffPolygonGenerator::processFuzzyWalls(SliceMeshStorage& mesh)
2021-01-26 09:29:34 +01:00
6a08ba1dc7 Fix of a crash when slicing an object producing no layers and
elphant foot compensation is enabled.
2021-01-11 12:20:50 +01:00
267477df00 Fix of #5528 - Request re-slicing when bottom_solid_layers changes and spiral_vase is enabled. 2020-12-21 09:15:33 +01:00
0db4216d09 Fix of #5410 (Ironing untick/tick bug)
This is a follow-up of commit b1b7a5a which fixed several similar bugs
2020-12-18 12:44:24 +01:00
0effc00ed7 Apply avoid crossing perimeters also for supports. 2020-12-15 06:46:44 +01:00
e74465a4eb Fix of re-slicing with multiple regions.
This is a fix of a bug, which was in Slic3r forever, where raw slices
were not cached, but recalculated from classified regions, where
merging the regions did not produce the original contour reliably.
Fixes [2.3.0-beta2] Odd bad slicing related to infill (?) percentage #5407
2020-12-11 12:21:07 +01:00
edf4fe7e4f Fix of spiral vase mode with holes in the bottom: Holes in the bottom layers
(non-spiral vase layers) were being closed.
Fixes Bad slicing in vase mode (unexpected bridge and solid infill layers) #3326
Fixes Model with holes in the base does not slice properly in "Vase Mode" #5359
2020-12-09 14:54:26 +01:00
fc6d2075f0 Fix of #4060 - Add check for the case that all ranges of a volume do not contain any Z. 2020-12-09 07:28:18 +01:00
0ebba2911d Fix of #4732 - In spiral vase mode, use the number of layers instead of the value of bottom solid layers if a printed object has a smaller number of layers than the value of bottom solid layers. 2020-12-09 07:21:14 +01:00
a00a3b2997 Fix horrible complexity of custom seam lookup (#5067)
- polygons are offset individually
- custom areas are kept separately for each PrintObject
- AABB tree is used to get logN lookup complexity
2020-11-27 10:09:20 +01:00
db97a97116 Fix of [2.3.0-alpha4] Crash - several models cause crash when slicing #5208
Fixed some issues in internal anchors of the Adaptive Cubic infill.
The ugly and dangerous implicit casting operators in Line, MultiPoint,
Polyline and Polygon were made explicit.
2020-11-24 16:01:08 +01:00
dc25f3900f Reworked connection of infill lines to perimeter lines.
Added a new "infill_anchor" parameter.
2020-11-16 10:54:00 +01:00
ae050befbd Fix of previous commit 2020-10-22 17:54:32 +02:00
85ad3ad1c7 Fix of ironing invalidation. Fixes
Ironing flag ignored on infill rotate #4937
Ironing does not take effect when you change Top Fill Pattern. #4900
Ironing layer not shown in preview when settings are changed #4510
2020-10-22 17:36:51 +02:00
d5e4bce750 Support for naming slicer own threads for debugging.
The following threads are named with this commit:
slic3r_main, slic3r_BackgroundSlicingProcess,
slic3r_tbbpool_xx_yy where xx is a one based index of the TTB thread
and yy is the platform thread ID.
2020-10-22 13:54:15 +02:00
575da4840f Removed m_ prefix from public member variables. 2020-10-09 13:09:21 +02:00
05d388483c Renamed monotonous infill to monotonic. 2020-10-05 16:38:28 +02:00
e53d1e63cb Fix of previous commit. 2020-09-24 20:32:52 +02:00
175cb54df9 DynamicPrintConfig::normalize() renamed to normalize_fdm(),
optimization of Print::apply()
2020-09-24 19:03:33 +02:00
4e0a0c5c51 New class ModelConfig wrapping DynamicPrintConfig and a timestamp
to help with detecting "not changed" event when taking
Undo/Redo snapshot or synchronizing with the back-end.

Converted layer height profile and supports / seam painted areas
to the same timestamp controlled structure.
2020-09-24 15:34:13 +02:00
56e6d10a86 Adaptive Cubic infill:
1) Fixed a wrong offset when extracting infill lines from the octree.
2) Added a variant for testing triangle in a bounding sphere
   when buildind the octree. Currently not used as the box test
   is more tight.
3) "Bridging infill" regions are now triangulated and used to densify
   the octree as well to support the bridging infill correctly.
2020-09-22 08:53:45 +02:00
1e9a3cab55 Adaptive infill: Reshuffled the namespaces. 2020-09-18 10:53:50 +02:00
b3e936bda3 Refactoring of adaptive cubic / support cubic:
1) Octree is built directly from the triangle mesh by checking
   overlap of a triangle with an octree cell. This shall produce
   a tighter octree with less dense cells.
2) The same method is used for both the adaptive / support cubic infill,
   where for the support cubic infill the non-overhang triangles are
   ignored.
The AABB tree is no more used.
3) Optimized extraction of continuous infill lines in O(1) instead of O(n^2)
2020-09-17 18:39:28 +02:00
c814c16e4a Replaced some of Slic3r::RuntimeError exceptions with Slic3r::SlicingError.
Only Slic3r::SlicingError are now displayed by a notification, other
exceptions are shown by a pop-up dialog.
2020-09-14 18:03:22 +02:00
f58ee46687 WIP Refactoring of exceptions:
1) All slicer's exceptions are now derived from Slic3r::Exception.
2) New exceptions are defined for slicing errors.
3) Exceptions are propagated to the Plater to show.
It remains to modify the slicing back-end to throw the new SlicingError
exceptions instead of std::runtime_error and to show the other exceptions
by a message dialog instead of a notification.
2020-09-14 18:03:22 +02:00
693aac1f3f Fix compiler warnings and failing compilation on macOS 2020-09-10 22:57:58 +02:00
bfe47c1af0 Fix rotation in support cubic infill 2020-09-10 22:30:49 +02:00
dc698c2bb1 Move support cubic infill to separate class.
Support infill is enabled in the GUI.
2020-09-10 16:53:08 +02:00
dfd1351c9a A prototype of adaptive support infill 2020-09-10 14:55:48 +02:00
e4c32a85de A simple version of adaptive cubic support, for testing purposes 2020-09-10 14:52:26 +02:00
bddca650a9 Move rotation from building octree to infill generating 2020-09-10 14:52:21 +02:00
a52c26f59e Merge branch 'lh_adaptive_infill' 2020-09-09 16:46:43 +02:00
b7ebee01aa Refactoring of adaptive cubic infill:
Don't create an octree for the infill if it is not needed.
2020-09-09 15:55:06 +02:00
5673bb9e5b Enable changing adaptive infill density for different objects 2020-09-09 14:40:14 +02:00
969e733d2e Change to using raw_mesh instead of mesh 2020-09-09 14:40:14 +02:00
67bfb246ec Octree's first cube depends on model size. 2020-09-09 14:40:14 +02:00
544cd82fe8 Change in passing octree struct 2020-09-09 14:40:08 +02:00
4aed6bc332 Fix wrong data type 2020-09-09 14:37:20 +02:00
42e524de6c Fix crash on inconsistent input 2020-09-09 14:37:20 +02:00