1023 Commits

Author SHA1 Message Date
Lukas Matena
2385a65bd3 Wipe tower: Fixed issues with overlapping extrusions:
The commit contains quite a bit of refactoring, but the key change is at the
end of save_on_last_wipe. It was missing the subtraction of the wipe volume
from the respective member variable, so the tower would attempt to wipe too
much volume into the shrunk area.
2024-02-28 16:05:15 +01:00
Lukas Matena
2791886657 Wipe tower: changed default value for stamping speed 2024-02-28 16:05:15 +01:00
Lukas Matena
0736f68e77 Wipe tower: rebranded skinnydip to stamping 2024-02-28 16:05:15 +01:00
Lukas Matena
030cd934c5 Wipe tower: removed skinnydip_extra_move 2024-02-28 16:05:14 +01:00
Lukas Matena
c4d4c7f22e Wipe tower: tweaking MK4 specific behaviour 2024-02-28 16:05:14 +01:00
Lukas Matena
ba37505ab0 Wipe tower:
- fixed depth calculation for nonzero extra spacing
- ixed issues with non-unity extra flow (incorrect wiping volumes, overlaps)
- minimum purge on wipe tower now has to be purged before finish_layer is called
2024-02-28 16:05:14 +01:00
Lukas Matena
02982073b6 Wipe tower: cold ramming should use temperature of the old tool, not the new one 2024-02-28 16:05:14 +01:00
Lukas Matena
4900235332 Wipe tower: various little fixes:
- removed skinnydip_unloading_speed, unloading_speed is used instead
- the new parameter wipe_tower_extra_flow now automatically adjusts spacing
- the extra flow is seen in the preview
- skinnydip moves were simplified
- for MK4, pressure advance is kept for ramming and disabled for skinnydip
- G4 S0/R were swapped
- for MK4, the new temperature is set before the last cooling move
- range of the ramming dialog increased to 60 mm3/s
- fixed skinnydip_extra_move
- fixed temperature setting after cold_ramming
2024-02-28 16:05:14 +01:00
Lukas Matena
727a67acb4 Wipe tower: MK4 detection now relies on printer_notes field 2024-02-28 16:05:14 +01:00
Lukas Matena
8e9251f2f0 Wipe tower: separate acceleration control (related to #10854) 2024-02-28 15:48:01 +01:00
Lukas Matena
60dbf28bf2 Wipe tower: shorten x move during skinnydip to max of 20mm 2024-02-28 15:48:01 +01:00
Lukas Matena
98f377c844 Wipe tower: keep pressure advance on for MK4 2024-02-28 15:48:01 +01:00
Lukas Matena
0a5c3d088a Wipe tower: Filament monitoring switch 2024-02-28 15:48:01 +01:00
Lukas Matena
443e628896 Wipe tower: keep the head stationary during skinnydip retraction 2024-02-28 15:48:01 +01:00
Lukas Matena
6149294f40 Wipe tower: cold ramming 2024-02-28 15:48:01 +01:00
Lukas Matena
ecba2ca007 Wipe tower: increased purge flow parameter 2024-02-28 15:48:01 +01:00
Lukas Matena
d497757a7d Wipe tower: remove extra skinnydip parameters 2024-02-28 15:48:01 +01:00
Lukas Matena
18150a82d9 Wipe tower: add G4 S0 before a temp change G-code 2024-02-28 15:48:01 +01:00
Lukas Matena
61e20a8cfa Wipe tower: skinnydip_extra_move, skinnydip_delay 2024-02-28 15:48:01 +01:00
Lukas Matena
cddfcb888f Wipe tower: cold ramming 2024-02-28 15:48:01 +01:00
Lukas Matena
7325d8752f Moving the extruder while skinnydipping 2024-02-28 15:48:00 +01:00
Lukas Matena
0dba13d862 First skinnydip implementation 2024-02-28 15:48:00 +01:00
Martin Šach
bc0fc8a789 Fix missing deretraction coused by caching gcode writer. Use find and replace to remove the retraction if not required 2024-02-19 15:27:38 +01:00
Martin Šach
0b4e406b28 Add missing point to the rectangular travel 2024-02-19 15:24:48 +01:00
Lukas Matena
1c6282ce03 Fixed missing cooling slowdown when z travel speed was zero (#12258, SPE-2163) 2024-02-16 11:38:34 +01:00
Martin Šach
f64aea6499 Fix: Cap speed by max_volumetric_speed even for dynamic overhangs. 2024-02-07 10:12:43 +01:00
Lukas Matena
e4030321f7 Calculate wipe tower filament consumption per layer 2024-02-07 09:55:37 +01:00
Lukáš Hejl
8ce089c6ff SPE-2098: Pick a required extruder before a color change for multi-extruder printers.
When we need to perform a color change on an extruder that isn’t used within the layer, we perform a tool change to select the correct extruder. Then, we perform the color change, and finally, we perform another tool change to switch back to the original extruder.
2024-02-06 11:23:09 +01:00
Martin Šach
4481525169 Fix wipe tower deretraction string.
Return the previous behaviour for non priming toolchanges and
handle priming toolchanges separately.
2024-01-29 09:52:20 +01:00
Martin Šach
7f423083b4 Fix: Use toolchange z instead of writer z to restore z on wipe tower.
Writer z can be set in custom toolchange gcode and than the restoration
is invalid.
2024-01-23 09:30:40 +01:00
Martin Šach
812c40e887 Unify GCodeGenerator travel to first layer position.
* Fixes SPE-2116. The reason for this bug was forgotten change in
  WipeTowerIntegration after change in gcode.cpp.
* Prevents future similar bugs by unifing the functionality to a method.
2024-01-23 09:00:58 +01:00
Martin Šach
f9283728d6 During first layer change, do not actually move z.
This enables the user to set his own z in start gcode. Fixes #11843.
2024-01-17 12:22:22 +01:00
Lukáš Hejl
da57489874 Implement lift before obstacles that take into account already extruder extrusions on the current layer.
Ignore the first intersection of the travel path with the object from which the travel starts.

Created a new class TravelObstacleTracker, for wrapping all data structures related to lift before obstacles.
2024-01-17 12:22:22 +01:00
Lukáš Hejl
2fc9299c65 Use max value of double instead of std::optional in get_first_crossed_line_distance() and get_obstacle_adjusted_slope_end(). 2024-01-17 12:22:22 +01:00
Lukáš Hejl
dbd0369767 Use forward declarations in Travel.hpp. 2024-01-17 12:22:22 +01:00
SachCZ
ff30d7aad3 Replace last_pos and helpers with optional in GCode.cpp 2024-01-17 12:22:22 +01:00
SachCZ
7f397cd7b3 Implement ramping layer change using a tag in gcode
During layer change, instead of generating the gcode, generate a placeholder tag. Then at the end of layer processing replace this tag with a ramping travel move.
This solves the issue, that one does not know the starting point of the current layer where the layer change gcode would be originally generate.
The ramping layer changes uses smoothing of the ramping travel. Also it is adjusted in such a way that it increases the ramp angle when the travel is too short, to always reach the next layer.
2024-01-17 12:22:19 +01:00
SachCZ
24e3254697 Smooth z-hop curve to avoid unreasonably high jerk setting.
* Replace the ramping travel with a smooth ramping travel on marlin 2 under the right circumstances.
2024-01-17 12:21:36 +01:00
Lukáš Hejl
7ab3e5490c SPE-2096: Fixed calculation of maximum wipe length in XY coordinates.
Also, comparing the accumulated length of the path for wipe was incorrectly mixing scaled and unscaled distances.
2024-01-05 22:43:30 +01:00
Lukáš Hejl
2c671d8d6c Use memcpy instead of strncpy in GCodeFormatter::emit_string() to silence the warning.
The warning was there because std::string_view::data() returns a pointer to a buffer that is not necessarily null-terminated. So, strncpy shouldn't be used on non-null-terminated buffers, but we always relied only on the buffer length, so it couldn't cause any issues.
2024-01-04 10:22:27 +01:00
Kristian Nielsen
c7d31f980a Fix missing braces around multi-line if ()
Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2024-01-04 10:21:24 +01:00
Lukas Matena
e0a03c7970 Merge branch 'master_271' into HEAD 2023-12-13 15:49:26 +01:00
Lukas Matena
2d130c71b6 Move binary gcode checkbox to Printer Settings 2023-12-11 15:40:35 +01:00
Lukas Matena
64a9b546fd Added wipe tower weight into G-code metadata 2023-12-08 14:05:12 +01:00
Justin Schuh
834f6ef37c Improve filtering on Klipper exclude_objects labels (#11802, PR#11813 by @jschuh) 2023-12-08 13:51:32 +01:00
Martin Šach
466ac9105e Fix: Spiral vase missing perimeter 2023-12-07 14:45:08 +01:00
Martin Šach
c3132e91c8 Fix SPE-2068: Helical layer change generating travels out of bounds. 2023-12-06 10:50:13 +01:00
Martin Šach
e298593a2e Refactor: Separate gcode generator layer changes utilities to a file. 2023-12-06 09:49:56 +01:00
Martin Šach
1ec4cbe2d6 Add forgotten header guards 2023-12-06 09:49:56 +01:00
Martin Šach
e13d3cdbf2 Refactor: Move gcode travel utils to a separate file. 2023-12-06 09:49:56 +01:00