Fix of https://github.com/prusa3d/Slic3r/issues/1089
M204 S.. T..:
T is interpreted by the firmware and Slic3r time estimator the old way
(as acceleration when retracting) only if an S code is found at the same line.
This allows PrusaResearch to interpret the legacy G-codes generated
by our older Slic3r with older Slic3r profiles.
M204 P.. R.. T..:
T is ignored, P is interpreted as acceleration when extruding,
R is interpreted as acceleration when retracting.
This will be the format the Slic3r 1.41.0 will produce from
the Machine Limits page.
In the future both MK3 firmware and Slic3r will likely be extended
to support the separate travel acceleration.
This change is in sync with the Prusa3D firmware:
dd4c4b39b4
Slic3r will now export
M204 P[machine_max_acceleration_extruding] R[machine_max_acceleration_retracting] T[machine_max_acceleration_extruding]
before the custom start G-code, which will be correctly interpreted
by both the new Prusa3D firmware and the Slic3r's time estimator.
To support our legacy MK2 firmware before we merge the commit above, we may
just insert the following line into the custom start G-code section to override
the block inserted by Slic3r automatically before the custom start G-code:
M204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]
clamped by the maximum acceleration when extruding.
The machine envelope values are only set at the time estimator
from the Printer parameters for the Marlin firmware.
due to the differences in the M203 code
(RepRap firmware has it in mm/min, Marlin in mm/sec).
This difference is important to the G-code time estimator.
Changed the g-code flavor to Marlin for all Prusa3D bundled profiles.
Removed the questionable Pressure Advance feature. It is better to use the Pressure Advance implemented into a firmware.
Added a C++ implementation of GCodeReader and SpiralVase, thanks to @alexrj
Added a C++ implementation of GCodeTimeEstimator, thanks to @lordofhyphens