Commit graph

474 commits

Author SHA1 Message Date
Vojtech Bubnik
43dc3bfc42 Fix of a crash with sequential print and raft. Fixes 2023-02-03 15:50:15 +01:00
Lukas Matena
ab4655aa40 Fix ooze prevention behaviour on first layer 2023-01-27 12:04:55 +01:00
Lukas Matena
fd3ab55197 MMU: Fixed missing travel to the wipe tower in one more case 2023-01-27 12:04:55 +01:00
PavelMikus
d0c86403a5 Fix lslices ordering - keep topological ordering from clipper, and separate print ordering into vector of indices 2023-01-26 15:50:18 +01:00
Lukas Matena
ae15032e0f Wipe tower: fixed missing travels to wipe tower on layers with no toolchanges 2023-01-26 07:28:37 +01:00
Lukas Matena
a067da6d53 Ooze prevention:
- remove the infinite skirt
- added 'idle_temperature' in Filament Settings as an optional parameter
- the logic is changed: if idle_temp is present, it is used,
  otherwise it uses the old delta value from Print Settings
- TODO: the optional parameter is not well supported in UI
2023-01-26 07:28:37 +01:00
Lukas Matena
98fea2f6ee Wipe tower: use GCode::set_extruder, allow ooze prevention:
this removes duplicated code and fixes toolchange retraction
The ooze prevention part needs further work, now it does not
work as advertised (the tall skirt)
2023-01-26 07:28:37 +01:00
Lukas Matena
7fb1bc2c16 Placeholders 'layer_num', 'layer_z' and 'max_layer_z' were not accessible in fil. start gcode when the wipe tower was off 2023-01-26 07:28:37 +01:00
Lukas Matena
b3664179f6 Wipe tower: remove a move to the wipe tower when not needed 2023-01-26 07:28:36 +01:00
Lukas Matena
90bd46e30a Added 'is_extruder_used' placeholder accessible from Custom Start G-Code 2023-01-26 07:28:36 +01:00
Vojtech Bubnik
ca0c83d914 The new ExtrusionRole implementation newly supports both "Bridging"
and "External" attributes at the same time.
PerimeterGenerator was updated to make use of it and set "External"
attribute for overhang perimeters.
2023-01-16 14:39:57 +01:00
Vojtech Bubnik
d1f610d957 Extending the expressivity of ExtrusionRole
Moved is_xx() test functions to ExtrusionRole enum class,
changed the tests to use the new ExtrusionRole bitmask.
Follow-up to 5991850db1
e50e96bb26
c64dbacf88
2023-01-16 12:39:08 +01:00
Vojtech Bubnik
c64dbacf88 WIP Extending the expressivity of ExtrusionRole
Changed GCodeExtrusionRole to enum class.
Follow-up to 5991850db1
e50e96bb26
2023-01-16 11:14:34 +01:00
Vojtech Bubnik
5991850db1 WIP Extending the expressivity of ExtrusionRole
Co-authored-by: supermerill <merill@free.fr>
Based on the unfinished idea of @supermerill, defining ExtrusionRole
as a bit mask of ExtrusionRoleModifier.
Because the ExtrusionRole was used for both ExtrusionEntity and
G-code export / G-code viewer, the original ExtrusionRole had to be split
to ExtrusionRole and GCodeExtrusionRole to support bitmask attributes
for the former while keeing a low number of ordinary values for the latter.
2023-01-16 10:14:46 +01:00
Vojtech Bubnik
661463645b Background processing: The milestone state machine was extended
with canceled / invalidated states.
Print / PrintObject infrastructure was extended with a cleanup()
callback, which may check for the new State::Canceled / State::Invalid
states of a particular milestone and turn it to State::Fresh
while releasing data of that particular milestone which is no more valid.

Also fixed a bug in 31fbfa56de
where the PrintObject shared data invalidation condition was flipped.
2023-01-16 10:14:46 +01:00
Pavel Mikus
cfb702be99 rename avoid_curled_filament_during_travels to avoid_crossing_curled_overhangs
mark avoid_crossing_curled_overhangs as Experimental
rename overhang_steepness_levels to overhang_overlap_levels
2023-01-11 17:15:11 +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
dd7777f648 fix tests 2022-12-14 14:49:20 +01:00
PavelMikus
17304a6263 minor fixes 2022-12-14 14:49:20 +01:00
PavelMikus
11353a4a5c UI integration, new option for speed on overhangs 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
PavelMikus
f823da9f38 extend extrusion with points on boundaries 2022-12-14 14:49:20 +01:00
PavelMikus
5690be1b76 fix issues after rebase 2022-12-14 14:49:20 +01:00
PavelMikus
f4f1958cac slowdown fix, curvature quality estimation fix 2022-12-14 14:49:20 +01:00
PavelMikus
bdc58c617b turn off curvature estimator for extrusion quality control, improve the logic of the estimator. 2022-12-14 14:49:20 +01:00
PavelMikus
0fdb545b55 fix issues, new implemenetation affecting all extrusions 2022-12-14 14:49:20 +01:00
PavelMikus
38a287fec4 first implementation, but for overhangs the code is not run for some reason 2022-12-14 14:49:20 +01:00
PavelMikus
30e81fad3b Disallow enabling options avoid_crossing_perimeters and
avoid_curled_filament_during_travels at the same time,
throw warning if both options enabled together - in this case ignore curled filament avoidance
2022-12-12 11:36:21 +01:00
Vojtech Bubnik
dee9fb797c Follow-up to 8858651bf4
Fixed missing support interface layers in G-code after
Refactoring of Layers: Reworked G-code export...
2022-12-08 13:05:47 +01:00
Vojtech Bubnik
7309c729e0 Reworked "only_retract_when_crossing_perimeters" feature, which
was terribly slow:
Introduced RetractWhenCrossingPerimeters.cpp,hpp
AABBTreeIndirect traverse template was extended to support early exit.
2022-12-06 11:45:05 +01:00
Vojtech Bubnik
423503a6c5 Follow-up to 3713f09a8e
30fbdd1235
Fixed duplication of infills.
2022-11-22 09:27:11 +01:00
Vojtech Bubnik
a98467f661 Merge remote-tracking branch 'remotes/origin/master' into vb_treesupports 2022-11-18 13:26:48 +01:00
Vojtech Bubnik
70b1b4dfbf Fixed extrusion of gap fill of classic perimeter generator
after recent refactoring / sorting of extrusions into LayerIslands.
2022-11-16 15:27:17 +01:00
Vojtech Bubnik
f1c0c61895 Refactored Point / MultiPoint / Polyline / Polygon:
1) Removed virtual methods. There was not really need for them.
2) Some of the virtual methods were using conversion to Lines, which
   was unnecessary and expensive.
3) Removed some nearest element search methods from Point.
2022-11-14 19:01:17 +01:00
Pavel Mikuš
633ce8aa21
Pm jps path finding ()
New step - estimation of curling on both the model and the support extrusions.
Improvements in curled filament estimation algortihm
Implementation of Jump Point Search algorithm 
Use of JPS algorithm to avoid curled extrusions during travel moves in Gcode export
2022-11-09 13:33:58 +01:00
Vojtech Bubnik
28f8997dd3 Follow-up to f24b4e86a9:
Fixed compilation on OSX
Fixed incorrect clear of LayerIslands.
2022-11-07 17:26:48 +01:00
Vojtech Bubnik
f24b4e86a9 Follow-up to f342bfae4e
as GCC did not like what MSVC was able to swallow.
2022-11-07 16:30:11 +01:00
Vojtech Bubnik
f342bfae4e Improved const correctness of ToolOrdering. 2022-11-07 16:00:13 +01:00
Vojtech Bubnik
3cdacd700c Merged with master 2022-11-07 14:51:07 +01:00
Vojtech Bubnik
8858651bf4 WIP Refactoring of Layers: Reworked G-code export to make use
of Layer->LayerSlice->LayerIsland hierarchy. This should improve
tool path ordering of multiple parts within the same object .

Some shells tests rewritten from Perl to C++.

FIXME: Gap fill extrusions are currently not handled by the initial
G-code preview!
2022-11-07 14:47:43 +01:00
Lukáš Hejl
411535ecdf Fixed undefined behavior (dereferencing std::unique_ptr pointing to nullptr) in the G-Code processing pipeline. 2022-11-07 10:09:49 +01:00
Vojtech Bubnik
ee626eb65a WIP: Layers split into islands, islands overlapping in Z interconnected
into a graph with links to the layer above / below.

In addition:
Members of LayerRegion were made private, public interface const only.
this->m_xxx replaced with just m_xxx
SurfacesPtr was made a vector of const pointers.
2022-10-26 18:41:39 +02:00
Vojtech Bubnik
9bc69efde6 Configuration of TBB work pool threads executed from the background
slicing process:
1) "C" locales are always enforced.
2) OSX Quality of Service level is set to make sure the slicing
  runs on fat cores on Apple Silicon if some fat cores are available.
2022-09-27 18:12:27 +02:00
Lukas Matena
d7a34f7e40 Merge branch 'master_250' 2022-08-30 16:31:07 +02:00