1100 Commits

Author SHA1 Message Date
Martin Šach
a5f6da6bd5 Move get_sorted_extrusions to a gcode generator method 2024-07-10 15:18:52 +02:00
Martin Šach
40da8d7336 Move get_extrusions to a function 2024-07-10 15:18:52 +02:00
Martin Šach
0bc86ace2e Make previous position independent of the object instance (offset) 2024-07-10 15:18:52 +02:00
Martin Šach
17dc776109 Separate extrusions ordering and extrusions exporting into two for loops 2024-07-10 15:18:52 +02:00
Martin Šach
fe1b8134d6 Remove ExtrusionOrder dependency on seam placer 2024-07-10 15:18:52 +02:00
Martin Šach
dbe9355672 Use dynamic cast for perimeter extrusion entity as it might not always be an ExtrusionLoop 2024-07-10 15:18:52 +02:00
Martin Šach
02c615999b Separate extrusion order utilities to a file. 2024-07-10 15:18:50 +02:00
Martin Šach
919740fb3e Apply fix includes. 2024-07-08 15:37:02 +02:00
Martin Šach
96e3e77fef Prepare fe for include optimization.
- Add pragmas to keep necessary headers with symbols not explicitly
stated in the file.
- Use include paths that IWYU understands.
2024-07-08 15:37:02 +02:00
Martin Šach
21116995d7 Refactor CMake and improve #includes.
* 1. Remove all global include_directories.
* 2. Move 3d party dependencies from src to budled deps if possible.
* Unify and enforce one way of including headers:
    e.g. #include "libslic3r/GCode.hpp" vs #include "GCode.hpp"
    (always use the "libslic3r/GCode.hpp" option).
* Make all dependencies (also header only) a cmake target.
2024-07-08 15:36:46 +02:00
enricoturri1966
443879d798 SPE-2219 - Added loading progress bar in GCodeViewer 2024-06-20 14:55:16 +02:00
Martin Šach
33e57827bc Fix neares corner seam picking 2024-06-20 14:53:13 +02:00
Martin Šach
f6396f59e9 Refactor seams - due to new rear implementation shells are now only required for aligned seams. 2024-06-14 14:55:50 +02:00
Martin Šach
7d6563641c Change implementation of rear seam.
Use line distancer to obtain the nearest line to a rear point.
Be smart about choosing the rear point.
2024-06-14 14:55:50 +02:00
Martin Šach
badd01b65d Make nearest seam position choose from corners first if there are any 2024-06-14 14:54:19 +02:00
Lukas Matena
dda46d7554 GCodeProcessor: Getting rid of needless std::vector::insert calls 2024-06-10 10:46:12 +02:00
Merill
357264272d fix reset() call on a copy (PR #12737) 2024-06-07 08:51:36 +02:00
Lukáš Hejl
d6136a34e3 SPE-2301: Add a new option that makes a printer print loops clockwise instead of counterclockwise. 2024-06-03 18:24:03 +02:00
Martin Šach
3543f8c738 Remove seam 'visit forward' assert and rename it to better convey what the function does. 2024-05-30 10:47:18 +02:00
Martin Šach
258882ca5a Fix SPE-2304. Rear seam not respecting paiting.
If a rear seam was projected it was not respecting seam paiting,
because it continued to search the points even if they had
'worse' point_type (e.g. common/blocker). Now the search
is aborted if there is an enforcer and it is not picked.
2024-05-20 16:49:25 +02:00
Lukáš Hejl
b425fe459d Rename EnforcerBlockerType to TriangleStateType because we no longer use it just as a blocker or an enforcer. 2024-05-14 17:16:23 +02:00
Lukas Matena
d8bf4fed18 Merge branch 'lh_ms_seam_improvements' 2024-05-14 07:33:26 +02:00
Lukas Matena
8d26de63f3 The new chamber_minimal_temperature parameter is taken into account 2024-05-14 07:14:18 +02:00
Lukas Matena
126de4d648 Chamber temperature G-code emission 2024-05-14 07:14:18 +02:00
Martin Šach
a0d6d9f4c3 Use lower arm length for better seams on spheres 2024-05-13 13:21:42 +02:00
Martin Šach
8ed0614b90 Gracefuly handle cases where the geometetry is not the same as generated perimeters 2024-05-13 11:23:45 +02:00
Martin Šach
9bf4a5f14b Add continuity modifier to seam aligned.
Previously, when searching for the optimal seam candidate, no previous
seams were taken into account. This sometimes led to ugly leaps in the seam
path. Now the visibility of a seam candidate that continues from a
previous seam is reduced, meaning there is a bigger chance it will
be picked.
2024-05-10 10:34:56 +02:00
Martin Šach
9a1dcc4720 Handle special seam case of just 2 or 3 perimeters.
If there are only 2 or 3 perimeters on a layer, exactly two of them are
external and just one of them is a hole, then the seams should be
choosen next to each other on the external perimeters.
2024-05-06 10:28:16 +02:00
Martin Šach
e60b8b1193 Seam placement improvements.
Previously there was an algirithm that was fitting a curve through
the resulting seam points. This worked for smooth models, but was
failing for some very basic cases (such as a cylinder).

The new algorithm builds on the previously implemented visibility
algirithm but does not do the curve fitting anymore.

Now the code is more separated for the four seam placement
options (rear, random, aligned, nearest).

Nearest and random are handled as one would expect.
Aligned is handled in a more "brute force" manner
(trying multiple seams and picking the best one)
and rear smartly switches between two modes
(center straight line projection and max y).
2024-05-06 10:11:32 +02:00
Lukáš Hejl
7e06a955bd SPE-2196: Fix the incorrect direction of travel at the end of the external perimeter when ArcWelder is enabled together with disabled wipes. 2024-05-03 14:37:27 +02:00
Lukas Matena
666b8ae5e4 Fixed conflict after merge 2024-03-27 17:08:32 +01:00
Lukas Matena
9dc7b70084 Merge branch 'master_27x' 2024-03-27 16:37:47 +01:00
Lukáš Hejl
9b252b1c8b SPE-2201: Fix deretractions (tiny extrusions) when the spiral vase is enabled. 2024-03-27 13:59:02 +01:00
enricoturri1966
858e431f97 Removed obsolete tech ENABLE_GCODE_VIEWER_DATA_CHECKING 2024-03-26 14:41:55 +01:00
enricoturri1966
539c155c59 Code cleanup and techs removal - completed 2024-03-26 14:41:55 +01:00
enricoturri1966
7bd60043d8 Code cleanup and techs removal - step 1 2024-03-26 14:27:02 +01:00
enricoturri1966
5c4c18661e SPE-1872: Implemented G2/G3 lines discretization for gcfMarlinFirmware firmware flavour 2024-03-26 14:27:02 +01:00
enricoturri1966
ebc7444a20 SPE-1872: Corrections into GCodeProcessor::process_G2_G3() to match firmware code 2024-03-26 14:27:02 +01:00
enricoturri1966
07d2fb32fa SPE-1872: Actual speed profile - Rework in its calculation + enhanced imgui debug window 2024-03-26 14:27:01 +01:00
enricoturri1966
e51647b5da SPE-1872: Fixed actual speed for seam moves and at extrusion/travel/wipe start 2024-03-26 14:27:01 +01:00
enricoturri1966
fbb7eb77b4 SPE-1872: Actual speed profile extended to travel and wipe moves 2024-03-26 14:27:01 +01:00
enricoturri1966
42c9174567 SPE-1872: Fixes in function recalculate_trapezoids() and method GCodeProcessor::TimeMachine::calculate_time() to smooth actual speed profile 2024-03-26 14:27:01 +01:00
enricoturri1966
0ba4a67af2 SPE-1872: Added visualization of actual volumetric flow rate 2024-03-26 14:27:01 +01:00
enricoturri1966
268b5860fd SPE-1872: Fixes in calculating actual speed 2024-03-26 14:27:01 +01:00
enricoturri1966
e4a3fb3b45 SPE-1872: Added visualization of actual speed in gcode preview 2024-03-26 14:27:01 +01:00
enricoturri1966
55b674ca3b Code cleanup 2024-03-26 14:15:37 +01:00
enricoturri1966
c57d63f2f9 New gcode visualization integration - Removed tech ENABLE_GCODE_VIEWER_STATISTICS 2024-03-26 14:12:32 +01:00
enricoturri1966
08b6369ae4 New gcode visualization integration - Removed GCodeProcessorResult::spiral_vase_layers 2024-03-26 14:12:32 +01:00
enricoturri1966
d3fd11dad9 New gcode visualization integration - Layers times 2024-03-26 14:04:08 +01:00
enricoturri1966
cea952a208 New gcode visualization integration - Travels and Extrusion roles times 2024-03-26 14:04:08 +01:00