58 Commits

Author SHA1 Message Date
Martin Šach
919740fb3e Apply fix includes. 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
Martin Šach
cf44ad22fe Use size_t instead of int for index.
The functions estamate_points_properties used some ints to manipulate
indexes that led to compiler warrnings.
2023-09-26 13:47:49 +02:00
Martin Šach
d9d0ed293e Improve curvature calculation.
Fix authored by Pavel Mikus.
2023-09-22 13:30:05 +02:00
Vojtech Bubnik
8dad25efc4 Merge branch 'master' into master_262 2023-09-04 14:44:32 +02:00
ps_copyright
f32859c302 final copyright headers 2023-09-01 14:49:07 +02:00
Vojtech Bubnik
3cfe2f4a3a Merge branch 'vb_arc_welder' into master_262 2023-08-28 15:50:00 +02:00
Pavel
57b2f364e0 Improve and fix curvature estimation algorithm 2023-08-08 13:12:58 +02:00
Pavel
c74eb1abe0 SPE-1821 Fix issue with overhangs sometimes wrongly detected when using classic
Fix gcode export - remove empty lines
2023-07-27 09:22:27 +02:00
Vojtech Bubnik
fa0986c0c5 Rebased pm_arcwelder_overhangs_port to vb_arc_welder 2023-07-27 09:17:35 +02:00
Pavel
bf6a8dc0b0 updating the gcode extrude to support new overhang attributes 2023-07-26 11:43:01 +02:00
Pavel
d0b8323bc8 Trying to fix the issue with segfault, so far unsucessfully. It seems that one ExtrusionCollection is moved and then accessed... 2023-07-26 11:43:01 +02:00
Pavel
6ec918c2a2 Compuation of overhang distance of the perimeters is a new step in the slicing pipeline, the result is stored as and ExtrusionPath attribute.
Perimeters are split as necessary based on the differing distances.
2023-07-26 11:43:01 +02:00
Pavel Mikus
28cd3ac212 new step for overhangs 2023-07-26 11:43:01 +02:00
Vojtech Bubnik
19062b4d5f ArcWelder path interpolation based on the work by Brad Hochgesang @FormerLurker.
WIP GCode/SmoothPath.cpp,hpp cache for interpolating extrusion path with arches.
Removed Perl test t/geometry.t, replaced with C++ tests.
Refactored ExtrusionEntity and derived classes to hold extrusion attributes in new ExtrusionFlow/ExtrusionAttributes classes.
Reworked path ordering in G-code export to never copy polylines, but to work with a new "flipped" attribute.
Reworked G-code export to interpolate extrusion paths with smooth paths and to extrude those smooth paths.
New parameters: arc_fitting, arc_fitting_tolerance
Renamed GCode class to GCodeGenerator
Moved GCodeWriter.cpp/hpp to GCode/
Moved Wipe from from GCode.cpp,hpp to GCode/Wipe.cpp,hpp
Moved WipeTowerIntegration from GCode.cpp,hpp to GCode/WipeTowerIntegration.cpp,hpp
New variant of douglas_peucker() to simplify range of iterators in place.
Refactored wipe in general and wipe on perimeters / hiding seams.

WIP: Convert estimate_speed_from_extrusion_quality() and its application to smooth paths.
WIP: Cooling buffer to process G2G3, disable arc fitting for filters that cannot process it.
2023-07-13 11:54:42 +02:00
Pavel Mikus
29282e206f Fix warnings in ExtrusionProcessor and SupportSpotGenerator 2023-05-31 10:12:05 +02:00
Pavel Mikus
cb2936afc6 SPE-1720 Fix slowdown of long segments which cross small overhang area. 2023-05-23 14:48:06 +02:00
Vojtech Bubnik
c9a55c2c01 Merge remote-tracking branch 'remotes/origin/vb_scalable_alloc' 2023-04-21 16:28:39 +02:00
PavelMikus
f6c38fb7f9 Smoothen the results, fix some issues. 2023-04-21 10:04:45 +02:00
PavelMikus
3e3ccc200e Fixed artefacts, made the new slowdown enabled with dynamic overhang speed at all times 2023-04-21 10:04:45 +02:00
PavelMikus
798396d918 Fixed several issues with smoothening of the slowdown, but there are still artefacts in the preview, on curved into flat srufaces 2023-04-21 10:04:45 +02:00
PavelMikus
aa0e21eed1 Center estiamted curvature values,
Center esimtated curling - transfering data by nearest line caused CCW or CW shift, based on which point of the current line was used. By switching the points on layer basis, this problem disapeared
2023-04-21 10:04:45 +02:00
PavelMikus
da6b972a79 Smoothen the curled height estimations and slowdown 2023-04-21 10:04:45 +02:00
PavelMikus
6e40e061f6 Finish rough implementation of slowdown over curled filament 2023-04-21 10:04:45 +02:00
Pavel Mikus
3e42d16f62 minor parameter changes 2023-04-21 10:04:45 +02:00
Pavel Mikus
b04e3bc25e Initial implementation, requieres both dynamic speed and avoid curled overhangs options to be enabled
Also implements new, probably far better estimation of curled height of filament
2023-04-21 10:04:45 +02:00
Vojtech Bubnik
9cde96993e Reworked the ClipperLib / Polygon types to use
the tbb::scallable_allocator to better scale on multiple threads.
2023-04-20 11:31:44 +02:00
PavelMikus
2b85615b31 Fix issue https://github.com/prusa3d/PrusaSlicer/issues/10269
Dynamic overhang speed could sometimes wrongly apply volumtric limits
Also, setting speed to zero will now cause the algorithm to use base external perim speed.
2023-04-06 16:20:56 +02:00
Pavel Mikus
7edd813fc8 fix bugs in ExtrusionEstimator 2023-03-02 15:30:41 +01:00
Pavel Mikus
10d04529d6 Implemented dynamic fan control. Cooling buffer does not yet relfect that 2023-03-02 15:30:41 +01:00
Pavel Mikus
a496444b7e make fixed overlap levels for dynamic overhang speed 2023-03-02 15:30:41 +01:00
PavelMikus
a167d43c1d Fix bug in GCode markers when dynamic overhang speed is enabled
Should fix the following issues: #9594, #9485, #9563, #9588, #9610
Also fixed a problem with zero speed when dynamic speed was percentage based and speeds were set to 0 (auto)
2023-02-07 17:06:42 +01:00
PavelMikus
c31e3ec1a2 Bugfix in extrusion quality estimator, Refactoring of alerts, rename of autogenerate button 2023-01-25 17:01:58 +01:00
PavelMikus
f2deefd1de Support spot generator improvement - supporting bridges only in one direction 2023-01-25 17:01:58 +01:00
PavelMikus
d20f880124 local issues support generator fix 2023-01-11 17:15:11 +01:00
Pavel Mikus
7b657f3e88 handle conflicting speed settings for the same overhang level - use always the largest 2023-01-11 17:15:11 +01:00
Pavel Mikus
ec4cc2e694 refactored and unified code for curled up filament estimation 2023-01-11 17:15:11 +01:00
Pavel Mikus
72a25e7ad0 use new extrusion quality estimator function in support spot generator; fix issue with local support points and incorrect distance sign; 2023-01-11 17:15:11 +01:00
PavelMikus
a439590c1d bug fix in point insertion calculation 2022-12-14 14:49:20 +01:00
PavelMikus
9bf7ce5e28 change parameter name, fix and improve intersection insertions 2022-12-14 14:49:20 +01:00
Pavel Mikus
f730fd21d4 refactoring overhang speed 2022-12-14 14:49:20 +01:00
PavelMikus
3714943b49 unified extrusion quality estimator 2022-12-14 14:49:20 +01:00
PavelMikus
89f012acb1 unification of curling estimation - first step, but does not compile yet 2022-12-14 14:49:20 +01:00
PavelMikus
4a6945cb77 final touch 2022-12-14 14:49:20 +01:00
PavelMikus
f1f2810476 bugfixes 2022-12-14 14:49:20 +01:00
PavelMikus
9d87257aec lower the speed, improve params 2022-12-14 14:49:20 +01:00
PavelMikus
9d1ac71e55 added support for multiple objects 2022-12-14 14:49:20 +01:00
PavelMikus
fc79717e48 fix hopefully all issues 2022-12-14 14:49:20 +01:00
PavelMikus
73f3b15507 added curvature, fixed bugs, improved point placement 2022-12-14 14:49:20 +01:00
Pavel Mikus
338d4f4a1e simplification, curvature removed, but there are still issues 2022-12-14 14:49:20 +01:00