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
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
62592cab48
Added missing include (GCC 11.1)
2021-05-01 22:33:59 +02:00
Lukáš Hejl
49928e131c
Added missing include (GCC 9.3)
2021-04-21 06:08:46 +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
Lukáš Hejl
1a8a5984ad
Connect lines in the adaptive infill using hooks
2020-10-02 04:18:44 +02:00
Lukáš Hejl
0b0709b3d8
Fix crash in adaptive infill when an extrusion line width is zero.
...
When an extrusion line width is set to zero, then an extrusion line width is calculated from nozzle diameter.
2020-09-25 09:54:27 +02:00
Lukáš Hejl
50a6680dcd
Merge branch 'lh_adaptive_support_infill_fix'
2020-09-10 23:12:32 +02:00
Lukáš Hejl
137e7a0712
Fix compiler warnings and failing compilation on macOS
2020-09-10 22:57:58 +02:00
Lukáš Hejl
7ef5def077
Fix typo in function build_octree
2020-09-10 22:38:37 +02:00
Lukáš Hejl
e9a325c9ca
Fix rotation in support cubic infill
2020-09-10 22:30:49 +02:00
Lukáš Hejl
40a7a44495
Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer
2020-09-10 17:02:54 +02:00
Lukáš Hejl
cf838a47c4
Merge branch 'lh_adaptive_support_infill'
2020-09-10 17:01:56 +02:00
Lukáš Hejl
f49144a9ef
Move support cubic infill to separate class.
...
Support infill is enabled in the GUI.
2020-09-10 16:53:08 +02:00
Lukáš Hejl
8fb9b290b2
A prototype of adaptive support infill
2020-09-10 14:55:48 +02:00
Lukáš Hejl
680b1b9809
Construct octree based on inserted points
2020-09-10 14:52:26 +02:00
Lukáš Hejl
c261624999
A simple version of adaptive cubic support, for testing purposes
2020-09-10 14:52:26 +02:00
Lukáš Hejl
e55d184a7d
Fix missing initialization in TriangleMesh constructor
2020-09-10 14:52:26 +02:00
Lukáš Hejl
70cb67430c
Move rotation from building octree to infill generating
2020-09-10 14:52:21 +02:00
Lukáš Hejl
e28b29699b
Merge branch 'lh_adaptive_infill'
2020-09-09 14:42:03 +02:00
Lukáš Hejl
5e9399247c
Check if exist any boundary polyline
2020-09-09 14:40:14 +02:00
Lukáš Hejl
5633526ecf
Enable changing adaptive infill density for different objects
2020-09-09 14:40:14 +02:00
Lukáš Hejl
aca212c5bc
Octree representation rework
2020-09-09 14:40:14 +02:00
Lukáš Hejl
acedb66cdc
Change to using raw_mesh instead of mesh
2020-09-09 14:40:14 +02:00
Lukáš Hejl
000987451a
Fix bug in lines merging
2020-09-09 14:40:14 +02:00
Lukáš Hejl
03e103fcc8
Connect infill to perimeters
2020-09-09 14:40:14 +02:00
Lukáš Hejl
398d429ce1
Code cleanup
2020-09-09 14:40:14 +02:00
Lukáš Hejl
d09ac41d2c
Octree's first cube depends on model size.
2020-09-09 14:40:14 +02:00
Lukáš Hejl
2debffc496
Fix tests which expect make_fills without arguments
2020-09-09 14:40:14 +02:00
Lukáš Hejl
33121b705a
Change in passing octree struct
2020-09-09 14:40:08 +02:00
Lukáš Hejl
9eeb5e4364
Fix wrong data type
2020-09-09 14:37:20 +02:00
Lukáš Hejl
65ba40f044
Fix crash on inconsistent input
2020-09-09 14:37:20 +02:00
Lukáš Hejl
867681ae56
Fix discontinuous extrusion lines for adaptive infill
2020-09-09 14:37:20 +02:00
Lukáš Hejl
14a7fbc9f7
Switch to smart pointers
2020-09-09 14:37:17 +02:00