Layer Join line at "Pause at layers" command in Orca Slicer

Layer Join line at “Pause at layers” command in Orca Slicer

Pictures attached

Video’s:-

SOVOL SV08 Filament Change Pause Power Loss Recovery Test ( Firmware 2.4.6 2024-12-28 )

SOVOL SV08 Paint Supports and Pause at Layer ( Firmware 2.3.3 2024-4-27 )

[
grid]




[/grid]

I asked SOVOL and they replied:-

After the printing is paused, the nozzle will automatically lift up a layer when resuming printing to avoid collision between the nozzle and the printed model. The wall thickness of the small model has no filling layer, so the gap is more obvious.

Is this gap only seen in small models? Does the same gap appear when printing large-size models?

So are they saying RESUME does not allow for this?

I’ve noticed that any time I’ve paused a print or had a filament run out, I always get a bad layer line at that point in the print (especially noticeable for larger prints). Now reading that the nozzle is shifted up a full layer instead of resuming, I want to dig into the files and figure out how they’re doing this via the resume function as none of my other printers ever did something like that.

I’ll follow-up with my findings, as it’s been very frustrating to have those layer lines between pause events or filament swaps.

1 Like

Try a Load Filament just before Resume. Clean off the ozze then actually ask for Resume.

You may have to say Cancel on the small supplied display to get to Unload fil and Load fil after cancel this it should go back the Resume option even through we ask for cancel.

Do a test on a small 10mm cube and see.

If I remember Pause move nozzle up is in printer.cfg And Macro.cfg

I may make a video, if I can stop procrastinating :grinning:

Biggest challenge :joy::joy:

FIX but: Video jump to the main part

PAUSE in Macro.cfg

[gcode_macro PAUSE]
rename_existing: PAUSE_BASE
variable_state: ‘normal’
gcode:
{% if printer.pause_resume.is_paused == False %}
{% set x_park = printer[‘gcode_macro _global_var’].pause_park.x|float %}
{% set y_park = printer[‘gcode_macro _global_var’].pause_park.y|float %}
{% set e_restract = printer[‘gcode_macro _global_var’].pause_park.e|float %}
{% set z_lift_max = printer[‘gcode_macro _global_var’].z_maximum_lifting_distance %}

    {% set state = params.STATE if 'filament_change' in params.STATE else 'normal' %}
    
    {action_respond_info("Pause Print!")}
    
    PAUSE_BASE
    M117 Pause Print!!!
    G91
    {% if (printer.gcode_move.position.z + 5) < z_lift_max %}
        G1 Z+5 F3000
    {% else %}
        G1 Z+{(z_lift_max - printer.gcode_move.position.z)} F3000
    {% endif %}
    G90
    {% if printer.gcode_move.position.x != x_park and
            printer.gcode_move.position.y != y_park     
    %}
        G1 X{x_park} Y{y_park} F{printer["gcode_macro _global_var"].pause_resume_travel_speed * 60}
    {% endif %}

    M104 S{printer.extruder.target}

    {% if state == 'normal' %}
        {% if (printer.extruder.temperature + 5 >= printer.extruder.target) and (printer.extruder.temperature >= printer.configfile.settings['extruder'].min_extrude_temp) %}
            {% if printer['filament_switch_sensor filament_sensor'].enabled == True and 
                printer['filament_switch_sensor filament_sensor'].filament_detected == True
            %}
                G91
                G1 E-{e_restract} F300
                G90
            {% elif printer['filament_switch_sensor filament_sensor'].enabled == True and 
                    printer['filament_switch_sensor filament_sensor'].filament_detected != True %}
                G91
                G1 E+95 F300
                G1 E-10 F1500
                G1 E-20 F600
                M400
                G4 P3000
                G1 E-50 F300 
                G90
            {% endif %}
        {% endif %}
    {% elif state == 'filament_change' %}
        {% if (printer.extruder.temperature + 5 >= printer.extruder.target) and (printer.extruder.temperature >= printer.configfile.settings['extruder'].min_extrude_temp) %}
            G91
            G1 E+25 F300
            G1 E-10 F1500
            G1 E-20 F600
            M400
            G4 P3000
            G1 E-50 F300 
            G90
        {% endif %}
    {% endif %}
{% endif %}

PAUSE in mainsail.cfg

[gcode_macro PAUSE]

description: Pause the actual running print
rename_existing: PAUSE_BASE
gcode:

get user parameters or use default

{% set client = printer[‘gcode_macro _CLIENT_VARIABLE’]|default({}) %}
{% set idle_timeout = client.idle_timeout|default(0) %}
{% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != ‘’ else 0 %}
{% set restore = False if printer.toolhead.extruder == ‘’
else True if params.RESTORE|default(1)|int == 1 else False %}

end of definitions

SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE=“{{‘restore’: restore, ‘temp’: temp}}”

set a new idle_timeout value

{% if idle_timeout > 0 %}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
{% endif %}
PAUSE_BASE
{client.user_pause_macro|default(“”)}
_TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

Maybe
{% set z_lift_max = printer[‘gcode_macro _global_var’].z_maximum_lifting_distance %}

Or/and

    PAUSE_BASE
    M117 Pause Print!!!
    G91
    {% if (printer.gcode_move.position.z + 5) < z_lift_max %}
        G1 Z+5 F3000
    {% else %}
        G1 Z+{(z_lift_max - printer.gcode_move.position.z)} F3000
    {% endif %}
    G90
    {% if printer.gcode_move.position.x != x_park and
            printer.gcode_move.position.y != y_park     
    %}
        G1 X{x_park} Y{y_park} F{printer["gcode_macro _global_var"].pause_resume_travel_speed * 60}
    {% endif %}

Maybe wouth a loo ate
G1 Z{z_park}
and or
z_park