61 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
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
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
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
0dba13d862 First skinnydip implementation 2024-02-28 15:48:00 +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
Lukas Matena
e4030321f7 Calculate wipe tower filament consumption per layer 2024-02-07 09:55:37 +01:00
Martin Šach
49455cf427 Replace GCode.cpp travel_to with more general z-hop strategy.
The new travel has an initial flat part, sloped part and
once the travel height reaches maxima a flat part again.
Also, the notion of extruder lift is removed. It is used no more.
Consequently the retract_lift parameter lost its original meaning.
2023-11-10 12:19:39 +01: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
Lukas Matena
8c413cb4ae Wipe tower: multiextruder ramming is now not limited by the 0.25s granularity the semm ramming uses 2023-08-21 12:24:50 +02:00
Lukas Matena
4f66559b1e Polishing the multiextruder ramming 2023-08-21 12:24:50 +02:00
Lukas Matena
4421e58438 Perform ramming for non-single-extruder-MM 2023-08-21 12:24:50 +02:00
Lukas Matena
3ab20de3c0 Wipe tower: Use perimeter_speed and infill_speed instead of the hardcoded values 2023-07-27 12:53:10 +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
Lukas Matena
46678c27b5 Conflict checker: detection of the wipe tower when it narrows towards the top 2023-05-31 13:34:03 +02:00
Lukas Matena
9775bf213d Wipe tower: changed the way how initial wipe tower preview depth is calculated 2023-03-31 16:42:44 +02:00
Lukas Matena
64cf357907 Wipe tower: fix the cone in combination with 'no_sparse_layers' 2023-03-23 12:44:42 +01:00
Lukas Matena
b20325671a Wipe tower: added the stabilization cone into configuration 2023-03-23 12:44:42 +01:00
Lukas Matena
571b133791 Wipe tower: stabilization cone 2023-03-23 12:44:42 +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
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
3b94494c4f Fix of #8186: incorrect count of toolchanges reported:
broken for o long time, probably since 58a811a
2022-04-12 13:39:14 +02:00
Vojtech Bubnik
b5573f959b Refactoring for code clarity: Replaced this->m_xxx with m_xxx
as the m_ prefix already signifies a class local variable.
2021-05-06 14:43:36 +02:00
Lukas Matena
5783cc62fb Wipe tower priming lines are placed at origin with custom bed shapes
Custom shapes were previously detected as circular and the lines were placed off the bed
2021-04-26 09:21:18 +02:00
Lukas Matena
58a811a638 Wipe tower: correctly detect first layer even with 'No sparse layers' option enabled 2021-04-06 15:37:39 +02:00
Lukas Matena
3459231111 Wipe tower: set travel feedrate for a move from custom toolchange position to the wipe tower (#5483) 2021-04-05 23:39:27 +02:00
Lukas Matena
a6ddab856b Wipe tower: refactoring of brim and solid infill on first layer 2021-04-05 23:39:27 +02:00
Lukas Matena
f6de946dd7 Wipe tower: don't use soluble filament for perimeters, sparse infill or first layer 2021-04-05 23:39:27 +02:00
Lukas Matena
3ed68ac28a Wipe tower: slightly changed finish_layer logic so it can be called after any toolchange 2021-04-05 23:39:27 +02:00
Lukas Matena
cc7ef40e20 Wipe tower: remove unfinished square wipe tower option 2021-04-05 23:39:27 +02:00
Lukas Matena
97c4c02001 Wipe tower: don't do sparse infill when there is a soluble filament above it 2021-04-05 23:39:27 +02:00
Lukas Matena
1efa9a06f6 Adjustable wipe tower brim 2021-03-05 16:41:02 +01:00
Lukas Matena
b178d0af38 Wipe tower - small refactoring and fix
Collection of data from internal wipe tower gcode generator now uses move semantics.
Part of gcode at the end of priming was erroneously not exported (extruder current reset etc.)
2020-09-25 12:35:20 +02:00
Lukas Matena
a13fc805d7 Removed obsolete wipe tower related code
Most of the code is already commented out for a long time, it should be safe to remove now.
2020-09-22 15:20:24 +02:00
Lukas Matena
e7ae26fb8a Fix of #2834 (unretracted wipes on wipe tower)
Wiping moves performed before moving away from the wipe tower were replaced by
scheduling a regular wipe that is performed after normal gcode generator regains
control. This makes it consistent with wipes on the model and gets rid of the
unretracted wipes.
2020-09-22 15:20:19 +02:00
Lukas Matena
a48a79603c Multimaterial purging lines fixed on rectangular beds with non-standard origin (#3805) 2020-03-10 15:31:53 +01:00
Lukas Matena
4ba7cb7ede Fix of the wipe tower starting point
see issues #2968, #3234 and #3248
2019-12-04 13:47:02 +01:00
Lukas Matena
88514eeb0e Merge branch 'lm_low_wipe_tower' 2019-11-14 10:37:04 +01:00
Lukas Matena
fdf9272fbe Wipe tower brim width is now part of WipeTowerData class, so it can be used wherever needed 2019-10-08 13:50:51 +02:00
Lukas Matena
b5e3899267 Wipe tower: Sparse layers are not included in filament consumption in case that the 'no sparse layers' option is set 2019-10-01 11:41:37 +02:00