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.
- 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
- 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
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.
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.
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.)
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.