Commit Graph

40 Commits

Author SHA1 Message Date
Enrico Turri
62894d3f7b Export the first M73 line to gcode before custom gcode 2018-09-07 16:05:10 +02:00
bubnikv
93b8f3147c Fixed inccorect (excessive) time estimates with the MMU 2.0 2018-08-07 14:15:37 +02:00
bubnikv
71b1e09af9 T1 and M702 C are now evaluated by the time estimator to add the new
"filament_load_time" and "filament_unload_time" values to match
the MK3 MMU2 behavior.

Emitting of the remaining times into the output G-code was made optional
through a new "remaining_times" configuration value, so the firmware
flavors and versions, which do not know the M73 code, will not complain.

Configuration changes:

The wipe tower default position was shifted inwards after the wipe tower
coordinate reference point was changed from the center to the left front
corner.

Added the "filament_load_time" and "filament_unload_time" values
to the MK3 MMU filament profiles.

Enabled "remaining_times" for the MK2.5, MK3 and MK3MMU2 printers.
2018-08-04 17:38:25 +02:00
bubnikv
ac2b20b54b Merge branch 'master' into time_estimate 2018-08-03 23:04:44 +02:00
bubnikv
0454adc194 Added support for the upstream Marlin interpretation of the M204 code.
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]
2018-08-03 16:26:28 +02:00
Enrico Turri
8e433c32bf Time estimator: added placeholder to process gcode lines T 2018-07-30 12:08:26 +02:00
Lukas Matena
167060e470 Added some profilling macros into GCodeTimeEstimator 2018-07-20 16:14:23 +02:00
Enrico Turri
95bd2bb8f9 Faster time estimate for multimaterial 2018-07-20 15:54:11 +02:00
Enrico Turri
4b8e10a05c Slightly faster time estimation 2018-07-20 12:05:08 +02:00
bubnikv
f7390c7ad6 The acceleration G-codes (M204 Sxxx) emited for Marlin are now
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.
2018-07-18 14:00:42 +02:00
bubnikv
9d027a558e Implemented clamping of the acceleration when extruding for the Marlin
firmware, both for the G-code export and the time estimator.
2018-07-18 11:58:02 +02:00
Enrico Turri
08529189c9 Changed time estimator default values 2018-07-17 10:50:15 +02:00
Enrico Turri
75cf4e0947 Generate M73 lines for silent mode only for MK3 printers 2018-07-13 11:32:50 +02:00
Enrico Turri
dc25df7b32 Faster remaining times export 2018-06-28 13:57:28 +02:00
Enrico Turri
7d61b2076f Faster remaining time calculation 2018-06-28 09:24:07 +02:00
Enrico Turri
9725966f38 Time estimate uses G1 lines containing E parameter for remaining time calculations 2018-06-28 08:52:07 +02:00
Enrico Turri
7ff22b9413 Time estimate emitted to gcode at requested interval 2018-06-27 15:35:47 +02:00
Enrico Turri
4009fdcc18 Finalized format for gcode line containing remaining printing time 2018-06-06 11:00:36 +02:00
Enrico Turri
5a8d1ffdba Prototype for exporting estimated remaining time into gcode for default and silent mode 2018-05-30 12:08:03 +02:00
Enrico Turri
bf295b9039 Time Estimator and GCode Analyzer - Fixed handling of commands G90, G91, M82 and M83 - Fixes #812 2018-03-29 14:46:11 +02:00
Enrico Turri
29853a3a45 GCodeTimeEstimator - Added move statistics log (for debug purpose) 2018-01-30 13:18:21 +01:00
Enrico Turri
e94491ee8c GCodeTimeEstimator - Fixed _simulate_st_synchronize() 2018-01-08 13:23:54 +01:00
Enrico Turri
dfcb502ef4 GCodeTimeEstimator - Fixed square roots of negative numbers 2018-01-08 12:17:39 +01:00
bubnikv
fec1fcdca8 Separated the Marlin G-code flavor from the RepRap G-code flavor
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.
2018-01-06 18:49:28 +01:00
Enrico Turri
ae0688f351 GCodeTimeEstimator - added processing of commands M221 (Set extrude factor override percentage) 2018-01-05 10:35:04 +01:00
Enrico Turri
69e3ea6581 GCodeTimeEstimator - simulate firmware st_synchronize() for commands G4, G92, M1 2018-01-05 09:46:09 +01:00
Enrico Turri
3f57e20235 GCodeTimeEstimator: refactoring of forward and reverse passes on blocks 2018-01-04 13:00:34 +01:00
bubnikv
011281df86 Fix of the Spiral Vase after the GCodeReader rework.
A patch of the GCodeTimeEstimator to avoid crashes. This is not a final fix though.
2018-01-03 21:55:32 +01:00
bubnikv
9d98a27b98 Fix of compilation on OSX and Linux. By the standard, a temporary
value cannot be passed to a reference.
2018-01-03 17:57:37 +01:00
bubnikv
b292554fd8 Optimized the GCodeReader.
Fixed the profiling build.
2018-01-03 17:29:49 +01:00
bubnikv
0e4ecfaf56 Fix of time estimator (int abs used instead of float abs) 2018-01-02 13:29:40 +01:00
Enrico Turri
b2eb522f55 GCodeTimeEstimator - clean up unused code 2017-12-19 09:29:04 +01:00
Enrico Turri
0fe855cd6d Time estimate shown in GUI as formatted string / Write to file made by class GCode's private methods 2017-12-14 09:18:28 +01:00
Enrico Turri
20234c94ee GCodeTimeEstimator - added retract_acceleration, minimum_travel_feedrate members and process of M201 gcode 2017-12-12 13:44:52 +01:00
Enrico Turri
e199d0532c GCodeTimeEstimator - added process of G92 gcode 2017-12-11 15:15:21 +01:00
Enrico Turri
34a0a2cb5e GCodeTimeEstimator - added process of M82 and M83 gcodes 2017-12-11 14:03:29 +01:00
Enrico Turri
a0a503e4a8 integration of time estimator into gcode export - save time estimation into gcode file 2017-12-11 09:06:29 +01:00
Enrico Turri
092d271fa2 time estimator wip stage 2 2017-12-08 10:50:36 +01:00
Enrico Turri
bc3d184d7c time estimator wip 2017-12-06 14:12:10 +01:00
bubnikv
72ae3585e4 Removed a broken Arc Fitting feature.
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
2017-04-26 14:24:31 +02:00