Show errors and warnings on the display (_ERROR, _WARN)
action_raise_error aborts while the macro renders, so an M117 in the same macro never ran and errors such as the RESUME lane check only reached the console. messages.cfg adds _ERROR (M117, then raise in a separate macro) and _WARN (RESPOND TYPE=error + M117); all errors and warnings use them. PAUSE shows AFC's error as the pause reason; RESUME, CANCEL_PRINT and PRINT_WARMUP clear the display. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a67e99015f
commit
fbdb2d5e1d
11 files changed
+78
-29
No files matched your search
@@ -162,7 +162,7 @@ gcode:
|
||||
{% set verdict = 'FAIL: ' ~ failed|join(', ') if failed else ('OK' if checked else 'NOTHING CHECKED') %}
|
||||
RESPOND MSG="PURGE_CHECK {lane}: {motion}; {press} -> {verdict}"
|
||||
{% if failed and cfg.mode == "enforce" %}
|
||||
RESPOND TYPE=error MSG="PURGE_CHECK: {lane} {failed|join(', ')} - check extruder and lane"
|
||||
_WARN MSG="PURGE_CHECK: {lane} {failed|join(', ')} - check extruder and lane" DISPLAY="Purge check failed: {lane}, paused"
|
||||
SET_GCODE_VARIABLE MACRO=_PURGE_CHECK_CFG VARIABLE=last_failed VALUE=True
|
||||
PAUSE ; no effect while already paused (resume purge): see _RESUME_PURGE_VERIFY
|
||||
{% endif %}
|
||||
|
||||
@@ -49,13 +49,13 @@ gcode:
|
||||
{% set min_temp = printer.configfile.settings.extruder.min_extrude_temp|float %}
|
||||
{% set temp = params.TEMP|default([printer.extruder.target, 0]|max)|float %}
|
||||
{% if 'bdpressure_check' not in printer %}
|
||||
{action_raise_error("PURGE_UNTIL_EMPTY: needs bdpressure_check.py and [bdpressure_check]")}
|
||||
_ERROR MSG="PURGE_UNTIL_EMPTY: needs bdpressure_check.py and [bdpressure_check]"
|
||||
{% elif printer.print_stats.state == "printing" %}
|
||||
{action_raise_error("PURGE_UNTIL_EMPTY: printer is printing, pause the print first")}
|
||||
_ERROR MSG="PURGE_UNTIL_EMPTY: printer is printing, pause the print first"
|
||||
{% elif "xyz" not in printer.toolhead.homed_axes %}
|
||||
{action_raise_error("PURGE_UNTIL_EMPTY: home the printer first")}
|
||||
_ERROR MSG="PURGE_UNTIL_EMPTY: home the printer first"
|
||||
{% elif temp < min_temp %}
|
||||
{action_raise_error("PURGE_UNTIL_EMPTY: give the filament temperature, e.g. PURGE_UNTIL_EMPTY TEMP=240")}
|
||||
_ERROR MSG="PURGE_UNTIL_EMPTY: give the filament temperature, e.g. PURGE_UNTIL_EMPTY TEMP=240" DISPLAY="PURGE_UNTIL_EMPTY: give TEMP=..."
|
||||
{% else %}
|
||||
BDP_CHECK_QUERY
|
||||
_PURGE_UNTIL_EMPTY_RUN MAX={max_purges} LENGTH={length} UNSYNC={unsync} TEMP={temp}
|
||||
@@ -65,7 +65,7 @@ gcode:
|
||||
[gcode_macro _PURGE_UNTIL_EMPTY_RUN]
|
||||
gcode:
|
||||
{% if not printer.bdpressure_check.available %}
|
||||
{action_raise_error("PURGE_UNTIL_EMPTY: bd_pressure load-check firmware not found")}
|
||||
_ERROR MSG="PURGE_UNTIL_EMPTY: bd_pressure load-check firmware not found" DISPLAY="PURGE_UNTIL_EMPTY: no bd_pressure"
|
||||
{% endif %}
|
||||
SET_GCODE_VARIABLE MACRO=PURGE_UNTIL_EMPTY VARIABLE=done VALUE=0
|
||||
SET_GCODE_VARIABLE MACRO=PURGE_UNTIL_EMPTY VARIABLE=count VALUE=0
|
||||
@@ -105,7 +105,7 @@ gcode:
|
||||
{% set p = printer.bdpressure_check %}
|
||||
{% set n = cfg.count + 1 %}
|
||||
{% if not p.available %}
|
||||
{action_raise_error("PURGE_UNTIL_EMPTY: lost the bd_pressure load-check reading, stopped. bdwidth runout response may still be off: SET_FILAMENT_SENSOR SENSOR=<bdwidth name> ENABLE=1")}
|
||||
_ERROR MSG="PURGE_UNTIL_EMPTY: lost the bd_pressure load-check reading, stopped. bdwidth runout response may still be off: SET_FILAMENT_SENSOR SENSOR=<bdwidth name> ENABLE=1" DISPLAY="PURGE_UNTIL_EMPTY: lost bd_pressure, stopped"
|
||||
{% endif %}
|
||||
{% set empty = p.longest_ms < cfg.empty_ms %}
|
||||
SET_GCODE_VARIABLE MACRO=PURGE_UNTIL_EMPTY VARIABLE=count VALUE={n}
|
||||
@@ -123,5 +123,5 @@ gcode:
|
||||
{% if cfg.done %}
|
||||
RESPOND MSG="PURGE_UNTIL_EMPTY: no more filament after {cfg.count} purge{'s' if cfg.count != 1 else ''}. The last bit between the extruder gears and the nozzle is pushed out by the next load."
|
||||
{% else %}
|
||||
RESPOND TYPE=error MSG="PURGE_UNTIL_EMPTY: still pressure after {params.MAX} purges. The lane may still be feeding, or the nozzle is blocked - check before running it again."
|
||||
_WARN MSG="PURGE_UNTIL_EMPTY: still pressure after {params.MAX} purges. The lane may still be feeding, or the nozzle is blocked - check before running it again." DISPLAY="PURGE_UNTIL_EMPTY: still pressure, check lane and nozzle"
|
||||
{% endif %}
|
||||
@@ -53,11 +53,10 @@ gcode:
|
||||
{% endif %}
|
||||
G1 X{th.axis_maximum.x - 10} Y{th.axis_maximum.y - 10} F5000
|
||||
{% elif cfg.soft_fail|int == 1 %}
|
||||
RESPOND TYPE=error MSG="AFC: XY drift detected! X={'%.3f' % d.x} Y={'%.3f' % d.y} mm. Axes are re-homed, print PAUSED. Run AFC_XY_RESUME to continue, or CANCEL_PRINT."
|
||||
M117 AFC: XY drift! See console. Paused.
|
||||
_WARN MSG="AFC: XY drift detected! X={'%.3f' % d.x} Y={'%.3f' % d.y} mm. Axes are re-homed, print PAUSED. Run AFC_XY_RESUME to continue, or CANCEL_PRINT." DISPLAY="AFC: XY drift! See console. Paused."
|
||||
PAUSE
|
||||
{% else %}
|
||||
RESPOND TYPE=error MSG="AFC: XY drift X={'%.3f' % d.x} Y={'%.3f' % d.y} mm -> M112"
|
||||
_WARN MSG="AFC: XY drift X={'%.3f' % d.x} Y={'%.3f' % d.y} mm -> M112"
|
||||
M112
|
||||
{% endif %}
|
||||
|
||||
|
||||
Reference in new issue
Block a user