480 Commits

Author SHA1 Message Date
Lukas Matena
088fb22182 Fixed 'is_extruder_used' placeholder 2023-02-15 15:56:17 +01:00
Lukas Matena
e2045a60ee Separate acceleration control for external perimeters and (top) solid infill 2023-02-15 15:03:37 +01:00
Lukas Matena
026ca7b3c9 Fixed wipe tower with no sparse layers (layers were missing) #9592 #9703 2023-02-14 14:02:58 +01:00
Vojtech Bubnik
56c4cfb202 Fix of supports for soluble / non-soluble after refactoring
of extrusions into islands.
Fixes #9647
2023-02-08 14:40:50 +01:00
PavelMikus
dc1579df04 Apply volumetric speed limits to reference external perimeter speed when using percentage based speeds.
Otherwise it was possible to get higher speeds the extruder limit.
2023-02-08 10:52:06 +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
Vojtech Bubnik
43dc3bfc42 Fix of a crash with sequential print and raft. Fixes #9464 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 5991850db1f2d09d1b7713f42300e2bfe4a42128
e50e96bb26eab4f9d56c98706c03166635cf4fff
c64dbacf88c617e3d676bdaa6c8c81317ccaee5d
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 5991850db1f2d09d1b7713f42300e2bfe4a42128
e50e96bb26eab4f9d56c98706c03166635cf4fff
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 31fbfa56de70bf8093cea5fe56c73b0e6fa017c3
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 8858651bf46dce2ac0b3435ab9b46a4053cf7c3b
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 3713f09a8e461435d66cb375ddd41fb5f22bf7ef
30fbdd123525e1ea04d4af7593efc20a4b223147
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 (#8)
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 f24b4e86a9612fcf4cba28a5ae9f24db13f1b171:
Fixed compilation on OSX
Fixed incorrect clear of LayerIslands.
2022-11-07 17:26:48 +01:00
Vojtech Bubnik
f24b4e86a9 Follow-up to f342bfae4e3d09a2c6dbd873e0ed7c821988a897
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