Lukáš Hejl
cc913d52ef
Added name for items in undo/redo stack inside multi-material gizmo.
2021-06-03 18:11:48 +02:00
Lukáš Hejl
94877a0ec0
Fixed the wrong transformation matrix for "Clipping of view" when is used a printer with multiple extruders.
2021-06-03 08:00:46 +02:00
Lukáš Hejl
edf8d22aba
Fixed an issue when the option "Inner brim only" doesn't generate brim inside the object in some cases, and issue that top-level brim was ignoring an offset around the object without a brim.
...
Also, some possible warnings were fixed.
2021-06-02 10:33:16 +02:00
Lukáš Hejl
660acede9e
Sphere brush color in MMU painting gizmo is now the same as color used for painting.
2021-05-31 14:23:12 +02:00
Lukáš Hejl
2438e3a891
Fixed issue that the lower half of the object was shown darker than the upper half of the object after slicing with MMU segmentation.
2021-05-31 07:26:38 +02:00
Lukáš Hejl
02a0955a5f
Fixed possible wrongly filled ZIP headers in case that pState->m_zip64 is sets to true.
2021-05-29 19:56:20 +02:00
Lukáš Hejl
7f29647d67
Added missing includes (GCC 11.1)
2021-05-29 19:55:20 +02:00
Lukáš Hejl
2cbf7728bb
Fixed that seed fill left all triangles split instead of merging them.
2021-05-28 17:42:28 +02:00
Lukáš Hejl
726a48383f
Cleaned up of 0a6490bab9
2021-05-28 17:36:56 +02:00
Lukáš Hejl
0a6490bab9
Added cancellation to MMU segmentation.
2021-05-28 05:57:32 +02:00
Lukáš Hejl
281ac1f2f1
Added missing includes (GCC 9.3)
2021-05-27 16:47:31 +02:00
Lukáš Hejl
671c2ace17
Fixed a modification time for files appended using the streaming interface in the miniz library.
2021-05-25 10:38:29 +02:00
Lukáš Hejl
ed9c93f85a
Added missing includes (GCC 9.3)
2021-05-21 07:42:37 +02:00
Lukáš Hejl
f50046b31b
Modified streaming interface in miniz library to use ZIP64 extension only for files exciding the limits.
...
The modification is based on a preallocation space in the Extra field using a phony custom block in the Local file header. This space is eventually overwritten by the ZIP64 extension if the file exceeds 4GiB.
Also were fixed differences from PKZip specification in the streaming interface.
2021-05-20 19:44:12 +02:00
Lukáš Hejl
4d2c2070f8
Added missing includes (GCC 9.3)
2021-05-07 12:51:10 +02:00
Lukáš Hejl
46a14abbaa
Added default object color in MMU segmentation according to the default extruder color for printing the object.
2021-05-04 08:13:04 +02:00
Lukáš Hejl
781e6607c8
Fixed updating of extruders list in MMU segmentation gizmo after adding extruders and reloading 3MF with different extruder count and colors.
2021-05-04 07:59:16 +02:00
Lukáš Hejl
71c60a5187
Follow-up of 168b4afbc2: Replaced forgotten lslices in the top and bottom layer propagation in MMU segmentation.
2021-05-03 22:11:04 +02:00
Lukáš Hejl
cd5fea8b42
Fixed compiler warnings
2021-05-03 21:50:40 +02:00
Lukáš Hejl
2d3eef4e84
Fixed possible warnings
2021-05-03 21:13:13 +02:00
Lukáš Hejl
fa8c319721
Fixed MMU segmentation for cases when a contour was whole colored by one color and a hole was whole colored by a different color.
2021-05-03 21:06:46 +02:00
Lukáš Hejl
5bfdaa7ac8
Parallelization of regions merging for MMU segmentation.
2021-05-03 21:01:52 +02:00
Lukáš Hejl
2e9f0d6eaf
Fixed a few cases of missing colored segments in MMU segmentation.
...
Occasionally, some input polygons contained self-intersections that caused problems with Voronoi diagrams and consequently with the extraction of colored segments by function extract_colored_segments.
Also, occasionally input polygons contained several points very close together (distance between points is 1 or so). Such close points sometimes caused that the Voronoi diagram has self-intersecting edges around these vertices. This consequently leads to issues with the extraction of colored segments by function extract_colored_segments.
2021-05-03 20:56:39 +02:00
Lukáš Hejl
168b4afbc2
Fixed MMU segmentation for multi-volume objects.
...
MMU segmentation no longer works directly on lslices, instead of it works on custom merged regions. So lslices in PrintObject are no longer overwritten because of MMU segmentation.
All regions are scaled by SCALED_EPSILON before merging and shrunk back by SCALED_EPSILON after merging. That fixed issues with multi-volume objects when very close regions weren't merged.
Also, small expolygons and holes are filtered out that fixed missing segmentation at the boundary of two volumes in the case of multi-volume objects.
2021-05-03 20:37:14 +02:00
Lukáš Hejl
62592cab48
Added missing include (GCC 11.1)
2021-05-01 22:33:59 +02:00
Lukáš Hejl
0a8a3f6d8c
Fixed build on Windows.
2021-04-30 15:40:27 +02:00
Lukáš Hejl
d11d15aa1e
Rework of MMU segmentation gizmo to support more than three colors.
2021-04-30 15:58:25 +02:00
Lukáš Hejl
576c5b78e9
Added seed fill for MMU segmentation
2021-04-27 06:48:09 +02:00
Lukáš Hejl
be1b4ce18c
Fixed compiler warnings
2021-04-27 00:41:20 +02:00
Lukáš Hejl
8a19cf9d64
Extended support of MMU segmentation backed for more than three colors.
...
Serialization and deserialization in TriangleSelector were extended to support up to 16 materials (3 unused states left for possible later extension). These changes also affect the encoding of data from custom supports and seams, but it is backward compatible with the previous encoding. And for custom supports and seams, it is produced exactly the same data encoding as before.
2021-04-27 00:37:49 +02:00
Lukáš Hejl
db55bd706e
Fixed case in MMU segmentation when the infinity-edge in the Voronoi diagram has vertex0(), and vertex1() equals nullptr.
2021-04-27 00:36:22 +02:00
Lukáš Hejl
1b144e80bd
Added hiding of MMU segmentation gizmo when it is selected printer with only one extruder.
2021-04-27 00:35:43 +02:00
Lukáš Hejl
49928e131c
Added missing include (GCC 9.3)
2021-04-21 06:08:46 +02:00
Lukáš Hejl
40d9e51b5e
WIP: Added support for top and bottom layers for MMU segmentation.
2021-04-19 19:21:06 +02:00
Lukáš Hejl
368b48b0a0
WIP: Allows regions of MMU segmentation to be trimmed by chosen width.
2021-04-19 07:12:42 +02:00
Lukáš Hejl
f49ceb1e0f
WIP: MMU segmentation without top and bottom layers
2021-04-19 07:04:50 +02:00
Lukáš Hejl
e3c33844d5
WIP: Duplicated the FDM support gizmo for the MMU segmentation
2021-04-19 07:01:11 +02:00
Lukáš Hejl
dd4b26ba25
Fix of 7bd412a2ca
2021-04-05 20:32:41 +02:00
Lukáš Hejl
7bd412a2ca
A few test cases for Voronoi diagrams.
...
A few test cases collected from multi-material segmentation. All new test cases are suppressed not to fail a building process.
2021-04-05 16:47:00 +02:00
Lukáš Hejl
1b3b4c5694
Added missing include (GCC 9.3)
2021-03-22 10:30:49 +01:00
Lukáš Hejl
08a826d237
Added a missing includes
2021-03-12 10:30:06 +01:00
Lukáš Hejl
a53de51b22
Fix of 8f293f0cb5
...
When was set use_external_mp_once to true then after first calling the avoid crossing perimeters this flag was reset which cases that on the second call of the avoid crossing perimeters the travel move didn't process as external.
2021-02-25 23:30:22 +01:00
Lukáš Hejl
77d007c484
Fixed calculation of a distance from begin of a contour in the avoid crossing perimeters.
...
The total length of a contour was incorrectly computed, which could cause the longest detour was selected instead of the shortest one in some cases.
2021-02-23 20:56:36 +01:00
Lukáš Hejl
dc576b0511
Fixed inner offset in the avoid crossing perimeters.
...
Minimum contour width was used incorrectly, which could lead to breaking contour to more disconnected polygons.
2021-02-23 20:43:34 +01:00
Lukáš Hejl
e123dfa8a4
Fixed wrong orientation of infill and gap-fill extrusion.
...
When an island contains exactly one infill ExtrusionEntity, this extrusion was oriented to maximize travel distance from the end of the previous extrusion of perimeters instead of minimizing it.
2021-02-23 20:07:40 +01:00
Lukáš Hejl
8f293f0cb5
Fixed unnecessary travels after calling the avoid crossing perimeters when the wipe is enabled.
...
When the avoid crossing perimeters was enabled, and the wipe was enabled, there were unnecessary travels in the opposite direction than the wipe travel.
2021-02-18 14:41:56 +01:00
Lukáš Hejl
81878a6f79
Fix of #5537 - GUI_App::post_init could be in some cases called before GUI_App::init_openg when GCode viewer is used.
...
The solution adds a status flag to GUI_App::init_openg and ensures that GUI_App::post_init isn't called before initialization in GUI_App::init_openg is done.
2020-12-22 12:28:00 +01:00
Lukáš Hejl
dc2e7aeb4e
Fixed wrong generation of Adaptive Cubic and Support Cubic infill when infill extrusion width is set in percent.
2020-12-21 14:14:06 +01:00
Lukáš Hejl
181642b85b
Fix of #5528 - Request re-slicing when bottom_solid_layers changes and spiral_vase is enabled.
2020-12-21 09:15:33 +01:00
Lukáš Hejl
80251e0cf9
Fixed of unintentional disabling of wipe even in cases when avoid crossing perimeters weren't applied due to exceeding the maximum detour length.
2020-12-16 13:17:09 +01:00
Lukáš Hejl
d59f345fbb
Fix of #5443 - Assigned input file path for ModelVolume also for AMF archives
2020-12-15 14:18:11 +01:00
Lukáš Hejl
e62f014049
Corrected side text for avoid crossing perimeters max detour
2020-12-15 14:03:52 +01:00
Lukáš Hejl
161fb86c43
Fixed percentages in avoid crossing perimeters max detour
2020-12-15 13:49:35 +01:00
Lukáš Hejl
0ca337ac7a
Apply avoid crossing perimeters also for supports.
2020-12-15 06:46:44 +01:00
Lukáš Hejl
bb2eecb42c
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
Lukáš Hejl
0ad135ff93
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
Lukáš Hejl
4c35250531
Fix of #5004 - Disable retract on layer change also for filament overrides.
2020-12-09 07:16:01 +01:00
Lukáš Hejl
98055de28c
External paths avoid crossing perimeters of holes
2020-12-03 09:43:21 +01:00
Lukáš Hejl
f25e5c0ec6
Merge remote-tracking branch 'origin/master' into lh_avoid_crossing_perimeters
2020-12-01 14:31:22 +01:00
Lukáš Hejl
f0616b0736
Fixed return value of liang_barsky_line_clipping
2020-12-01 14:28:27 +01:00
Lukáš Hejl
f917b83706
Fixed compiler warnings
2020-11-29 17:29:11 +01:00
Lukáš Hejl
87879034f6
Merge remote-tracking branch 'origin/master' into lh_avoid_crossing_perimeters
...
# Conflicts:
# src/libslic3r/MotionPlanner.cpp
# src/libslic3r/libslic3r.h
2020-11-29 17:27:23 +01:00
Lukáš Hejl
dd97eaa812
Fixed case when lslices in Layer is empty
2020-11-29 17:26:02 +01:00
Lukáš Hejl
f16e8f1a72
Fixed uninitialized variable in ElephantFootCompensation
2020-11-29 14:00:34 +01:00
Lukáš Hejl
55c282d85d
Revamp of implementation of the avoid crossing perimeters algorithm.
...
The strategy for the avoid crossing perimeters algorithm has been redesigned. But external travels (travel between objects or supports) have not been solved yet. For these travels is used a direct path between two points.
Much of the code has been reworked, which leads to significant speedup compared to the previous implementation.
Also, several potential bugs have been fixed.
2020-11-29 13:58:36 +01:00
Lukáš Hejl
f394d26f83
Added missing includes to fix build on gcc 9
2020-11-20 15:19:49 +01:00
Lukáš Hejl
606db666fc
Fix missing include
2020-11-20 14:22:24 +01:00
Lukáš Hejl
49ce613be7
Enable previous heuristics which was disabled by mistake
2020-11-16 14:37:42 +01:00
Lukáš Hejl
c702b3b71d
Add heuristics for removing unnecessary detours
2020-11-16 14:22:32 +01:00
Lukáš Hejl
9936b8e34e
Add missing includes
2020-11-16 14:22:32 +01:00
Lukáš Hejl
3db66af716
Fix another compiler warning
2020-11-16 14:22:32 +01:00
Lukáš Hejl
266e6dee5d
Fix compiler warnings
2020-11-16 14:22:32 +01:00
Lukáš Hejl
c00c7eaed3
Rework of outer borders to reduce unnecessary detours along the border.
...
The resulting path now contains all intersection with borders, which allows eliminating more unnecessary detours and more simplify the path.
2020-11-16 14:22:32 +01:00
Lukáš Hejl
ef9de07740
Disabling wipe for avoid crossing perimeters
2020-11-16 14:22:32 +01:00
Lukáš Hejl
7f94e9fa59
Fixed perimeters crossing when supports are printed.
2020-11-16 14:22:32 +01:00
Lukáš Hejl
2afeea5b6f
Fixed division by zero when the layer is empty
2020-11-16 14:22:32 +01:00
Lukáš Hejl
3e98e2a4bd
Fixed avoiding of other printed objects, again
...
Calling std::move on itself causes that the first polygon is empty, which results in disabling this feature on Linux.
This was fixed before, but I accidentally reverted it when AvoidCrossingPerimeters was moved to separate file.
2020-11-16 14:22:32 +01:00
Lukáš Hejl
8adf02a289
Moved AvoidCrossingPerimeters to separate file
2020-11-16 14:22:32 +01:00
Lukáš Hejl
20916e2362
Disable filed with max detour length when avoid crossing perimeters is disabled
2020-11-16 14:22:32 +01:00
Lukáš Hejl
4288be0e06
Fixed a case when the intersection is one of the endpoints of the line
2020-11-16 14:22:32 +01:00
Lukáš Hejl
c828a5d6e9
Added the possibility to set the maximum length of the detour
2020-11-16 14:22:32 +01:00
Lukáš Hejl
c16aad7e0b
Reworked the algorithm for avoid crossing perimeters for multiple objects
2020-11-16 14:21:36 +01:00
Lukáš Hejl
69658a57d8
Fixed crossing perimeters in some cases
2020-11-16 14:21:36 +01:00
Lukáš Hejl
556c212f9d
Fixed crossing perimeters when option "Wipe while retracting" is enabled
2020-11-16 14:21:36 +01:00
Lukáš Hejl
39e3358af5
Avoid crossing perimeters bugfix
2020-11-16 14:21:36 +01:00
Lukáš Hejl
a4fc435f75
Clear generated boundaries from previous layer
2020-11-16 14:21:36 +01:00
Lukáš Hejl
5c073d0ddb
Improved documentation of avoid crossing perimeters algorithm.
2020-11-16 14:21:36 +01:00
Lukáš Hejl
46bae74e48
Finalization of avoid crossing perimeters algorithm
...
EdgeGrid::Grid is used to find the intersection of a path with a polygon.
Simplification of find path.
Calculation of boundaries that not be crossed.
2020-11-16 14:21:36 +01:00
Lukáš Hejl
074406647a
Fixed bug when algorithm stuck in a loop
2020-11-16 14:21:36 +01:00
Lukáš Hejl
6573bc15a5
Selection of shortest path around polygon boundary
2020-11-16 14:21:36 +01:00
Lukáš Hejl
7a4ba7d131
A simple algorithm to follow the boundary of polygons
2020-11-16 14:21:36 +01:00
Lukáš Hejl
958acad85b
Fix another compiler warnings
2020-10-12 00:17:17 +02:00
Lukáš Hejl
caafcf43b0
Fix compiler warning and fix a bug in connecting infill using hooks
2020-10-11 23:31:59 +02:00
Lukáš Hejl
b8d574093d
Small rework of connecting infill with perimeters using hooks
...
Hooks are preferably generated in the direction of printed perimeters.
Small refactoring of the algorithm. Some parts of the algorithm are better documented.
2020-10-11 15:45:50 +02:00
Lukáš Hejl
de242f48cb
Refactoring of the adaptive infill using hooks
2020-10-11 03:46:11 +02:00
Lukáš Hejl
cd2881e14e
Orient hooks in the direction of the adjacent extrusion line
2020-10-10 22:38:22 +02:00
Lukáš Hejl
53975eeaa3
Rework of hooks adding
2020-10-10 22:25:51 +02:00
Lukáš Hejl
0b4733f656
The length of the hook is derived from spacing
2020-10-10 21:34:04 +02:00
Lukáš Hejl
6ed25f6e1c
Fixed avoiding of other printed objects
...
Calling std::move on itself causes that the first polygon is empty, which results in disabling this feature
2020-10-06 13:19:39 +02:00
Lukáš Hejl
7a9aec2b0b
Connect infill with perimeters using hooks
2020-10-02 11:15:55 +02:00