Commit Graph

2584 Commits

Author SHA1 Message Date
0d4f8b20c4 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
e42fb824d8 Fix missing include 2020-11-20 14:22:24 +01:00
5f8d4e988e Little more refactoring. 2020-11-20 11:56:40 +01:00
73d3ce2080 Avoid crossing perimeters: Further refactoring for clarity, code review. 2020-11-17 15:34:50 +01:00
09aea4437d AvoidCrossingPerimeters: Refactored for better encapsulation. 2020-11-17 10:42:27 +01:00
5ead86bdea Removed the old motion planner. 2020-11-17 09:33:30 +01:00
8649a8fd44 Enable previous heuristics which was disabled by mistake 2020-11-16 14:37:42 +01:00
7470fcbc64 Add heuristics for removing unnecessary detours 2020-11-16 14:22:32 +01:00
90d58fecee Add missing includes 2020-11-16 14:22:32 +01:00
1179146d3f Fix another compiler warning 2020-11-16 14:22:32 +01:00
deb096c609 Fix compiler warnings 2020-11-16 14:22:32 +01:00
f1a104c701 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
e14fb6c18a Disabling wipe for avoid crossing perimeters 2020-11-16 14:22:32 +01:00
61d4992338 Fixed perimeters crossing when supports are printed. 2020-11-16 14:22:32 +01:00
5a200c2d21 Fixed division by zero when the layer is empty 2020-11-16 14:22:32 +01:00
e648ca12ef 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
2b2e9a8ce2 Moved AvoidCrossingPerimeters to separate file 2020-11-16 14:22:32 +01:00
8df4c15652 Fixed a case when the intersection is one of the endpoints of the line 2020-11-16 14:22:32 +01:00
a7392cb7d8 Added the possibility to set the maximum length of the detour 2020-11-16 14:22:32 +01:00
3bb7f5f24b Reworked the algorithm for avoid crossing perimeters for multiple objects 2020-11-16 14:21:36 +01:00
6ae8692c22 Fixed crossing perimeters in some cases 2020-11-16 14:21:36 +01:00
7d1010ff99 Fixed crossing perimeters when option "Wipe while retracting" is enabled 2020-11-16 14:21:36 +01:00
f059807da5 Avoid crossing perimeters bugfix 2020-11-16 14:21:36 +01:00
cd854fcfa7 Clear generated boundaries from previous layer 2020-11-16 14:21:36 +01:00
c5b5e8588a Improved documentation of avoid crossing perimeters algorithm. 2020-11-16 14:21:36 +01:00
13dc97a84a 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
42773147d0 Fixed bug when algorithm stuck in a loop 2020-11-16 14:21:36 +01:00
c328651abc Selection of shortest path around polygon boundary 2020-11-16 14:21:36 +01:00
e2c259b50e A simple algorithm to follow the boundary of polygons 2020-11-16 14:21:36 +01:00
9f93d82038 Fixed screen-size for point markers used to visualize retraction/unretractions and other options in preview 2020-11-16 10:29:54 +01:00
4e15387af8 Added dialog to choose import action when dragging and dropping a project file 2020-11-16 08:39:25 +01:00
a5ab490dd9 Code cleanup 2020-11-13 11:50:52 +01:00
087a4f10e0 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_sequential 2020-11-13 10:46:41 +01:00
5d2a974886 Localization:
* added missed phrases
* fixed some phrases
* updated POT-file and PO/MO-files for the CZ-translation
2020-11-12 21:35:39 +01:00
5f9df6333f ENABLE_GCODE_VIEWER set as default in libslic3r 2020-11-12 14:03:58 +01:00
21aedc156e Removed the legacy PreviewData.cpp,hpp 2020-11-11 16:38:51 +01:00
7ab33750d1 WIP - Sequential print visualization using vertical slider in preview (missing travel moves) 2020-11-11 16:22:09 +01:00
654bc266fc escape_ampersand function and changed order of printer names and pictures in config wizard 2020-11-11 16:08:27 +01:00
28cfd71f51 Follow-up of bb74d2da5b and 7b2aca0159 -> Removed inclusions of GCode/Analyzer.hpp and GCodeTimeEstimator.hpp 2020-11-11 15:41:48 +01:00
554e0918d3 GCode Viewer - Fixed color print visualization for gcode containing multiple extruders 2020-11-09 13:06:20 +01:00
65e42ee8a4 GCode Viewer - Show print/printer/filament settings names in legend 2020-11-09 08:41:14 +01:00
c144f97b6a Disabled tech ENABLE_CTRL_M_ON_WINDOWS 2020-11-06 11:55:57 +01:00
ef29a6a1e3 Enabled tech ENABLE_CTRL_M_ON_WINDOWS to produce an experimental build 2020-11-06 11:42:54 +01:00
03151b77c9 Disabled tech ENABLE_CTRL_M_ON_WINDOWS 2020-11-06 11:09:47 +01:00
10697fad34 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2020-11-06 11:03:56 +01:00
7c314dec14 #4892 - Follow-up of 30481e1ea8 -> Fixed behavior of imgui dialog for settings of 3DConnexion devices (CTRL+M) on Windows 2020-11-06 11:03:41 +01:00
c204e90ecc Localization:
Some phrases are corrected in the code
The POT-file is updated
2020-11-05 22:17:49 +01:00
792f4ec199 #5079 - Fixed GCode Viewer changing files modified date on Windows 2020-11-05 14:02:43 +01:00
9a4bd0f236 Follow-up of d2e5be89e3 -> Fixed processing of color print, pause print and custom gcode tags 2020-11-04 13:33:27 +01:00
34ea49cb91 New Export Finished notification showing path and opening containing folder. Fix of #4917. Fixed wrongly grayed eject button in File menu. Hopefully fix of ctrl shortcut of tooltips at sidebar. 2020-11-04 09:29:08 +01:00