mirror of
https://github.com/sorted01/Filametrix.git
synced 2026-01-01 12:55:57 -05:00
updates and fixes
This commit is contained in:
parent
d02073b8a7
commit
b9cf1129a6
1 changed files with 35 additions and 17 deletions
|
|
@ -8,18 +8,18 @@ variable_retract_length: 35
|
||||||
|
|
||||||
# The location of the pin, this should be the position of the toolhead when the cutter
|
# The location of the pin, this should be the position of the toolhead when the cutter
|
||||||
# just lightly touches the pin
|
# just lightly touches the pin
|
||||||
variable_pin_loc_x: 20
|
variable_pin_loc_x: 21
|
||||||
variable_pin_loc_y: 21.0
|
variable_pin_loc_y: 19
|
||||||
|
|
||||||
# The starting and end positions when making the cut
|
# The starting and end positions when making the cut
|
||||||
# In particular, instead of making the cut by traveling to the pin location above,
|
# In particular, instead of making the cut by traveling to the pin location above,
|
||||||
# we leave a small safety margin along X-axis to avoid scratching on the pin when traveling
|
# we leave a small safety margin along X-axis to avoid scratching on the pin when traveling
|
||||||
# This should also give a small distance to produce some momentum when pressing on the pin
|
# This should also give a small distance to produce some momentum when pressing on the pin
|
||||||
variable_pin_park_x_dist: 5
|
variable_pin_park_x_dist: 5.0
|
||||||
|
|
||||||
# Position of the toolhead when the cutter is fully compressed
|
# Position of the toolhead when the cutter is fully compressed
|
||||||
# Should leave a small headroom to avoid banging the toolhead or gantry
|
# Should leave a small headroom to avoid banging the toolhead or gantry
|
||||||
variable_pin_loc_x_compressed: 5
|
variable_pin_loc_x_compressed: 5.0
|
||||||
|
|
||||||
# Speed related settings
|
# Speed related settings
|
||||||
# Note that if the cut speed is too fast, the steppers can lose steps
|
# Note that if the cut speed is too fast, the steppers can lose steps
|
||||||
|
|
@ -39,9 +39,12 @@ variable_cut_fast_move_fraction: 0.5 ; fraction of the move that uses fast move
|
||||||
variable_safe_margin_x: 30
|
variable_safe_margin_x: 30
|
||||||
variable_safe_margin_y: 30
|
variable_safe_margin_y: 30
|
||||||
|
|
||||||
# Number of repeats for the cut
|
# Whether or not to make a second cut
|
||||||
# Better be one to avoid small debris due to different cutting positions for different tries
|
# The goal of the second cut is to avoid filament adding friction to the blade causing the lever unable to decompress
|
||||||
variable_num_cut_repeats: 1
|
# If set to a positive value, we first retract this amount, make the second cut, then extrude back
|
||||||
|
# Set to 0 to disable to second cut
|
||||||
|
# You should only enable this if you cannot get the lever to reliabily decompress.
|
||||||
|
variable_second_cut_retract_length: 0
|
||||||
|
|
||||||
# Whether to eject the filament at the end
|
# Whether to eject the filament at the end
|
||||||
variable_final_eject: 0
|
variable_final_eject: 0
|
||||||
|
|
@ -61,7 +64,6 @@ variable_retracted_length_: 0 ; a state variable to keep track of how much we ha
|
||||||
gcode:
|
gcode:
|
||||||
{% set RETRACT_LENGTH = params.RETRACT_LENGTH | default(printer['gcode_macro CUT_FILAMENT']['retract_length']) | float %}
|
{% set RETRACT_LENGTH = params.RETRACT_LENGTH | default(printer['gcode_macro CUT_FILAMENT']['retract_length']) | float %}
|
||||||
{% set FINAL_EJECT = params.FINAL_EJECT | default(printer['gcode_macro CUT_FILAMENT']['final_eject'], True) | int %}
|
{% set FINAL_EJECT = params.FINAL_EJECT | default(printer['gcode_macro CUT_FILAMENT']['final_eject'], True) | int %}
|
||||||
{% set NUM_CUT_REPEATS = params.NUM_CUT_REPEATS | default(printer['gcode_macro CUT_FILAMENT']['num_cut_repeats']) | int%}
|
|
||||||
{% set current_loc_x = printer.gcode_move.gcode_position.x %}
|
{% set current_loc_x = printer.gcode_move.gcode_position.x %}
|
||||||
{% set current_loc_y = printer.gcode_move.gcode_position.y %}
|
{% set current_loc_y = printer.gcode_move.gcode_position.y %}
|
||||||
|
|
||||||
|
|
@ -88,13 +90,14 @@ gcode:
|
||||||
G90 ; absolute positioning
|
G90 ; absolute positioning
|
||||||
_MOVE_TO_CUTTER_PIN PIN_PARK_X_LOC={pin_park_x_loc} PIN_PARK_Y_LOC={pin_park_y_loc}
|
_MOVE_TO_CUTTER_PIN PIN_PARK_X_LOC={pin_park_x_loc} PIN_PARK_Y_LOC={pin_park_y_loc}
|
||||||
|
|
||||||
{% set fast_slow_transition_loc = (pin_loc_x_compressed - pin_park_x_loc) * cut_fast_move_fraction + pin_park_x_loc | float %}
|
# Make the main cut
|
||||||
{% for _ in range(NUM_CUT_REPEATS) %}
|
_DO_CUT_MOTION PIN_PARK_X_LOC={pin_park_x_loc}
|
||||||
G1 X{fast_slow_transition_loc} F{cut_fast_move_spd} ; make a fast move to initiate contact of the blade with the filament
|
# Optional secondary cut to help decompressing the lever
|
||||||
G1 X{pin_loc_x_compressed} F{cut_slow_move_spd} ; do the cut in slow move
|
{% if second_cut_retract_length > 0 %}
|
||||||
G4 P{cut_dwell_time}
|
G1 E-{second_cut_retract_length} F3000
|
||||||
G1 X{pin_park_x_loc} F{evacuate_speed} ; evacuate
|
_DO_CUT_MOTION PIN_PARK_X_LOC={pin_park_x_loc}
|
||||||
{% endfor %}
|
G1 E{second_cut_retract_length} F3000
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if FINAL_EJECT == 1 %}
|
{% if FINAL_EJECT == 1 %}
|
||||||
G1 E-80 F3000
|
G1 E-80 F3000
|
||||||
|
|
@ -130,13 +133,29 @@ gcode:
|
||||||
G1 X{pin_park_x_loc} Y{pin_park_y_loc} F{travel_spd}
|
G1 X{pin_park_x_loc} Y{pin_park_y_loc} F{travel_spd}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro _DO_CUT_MOTION]
|
||||||
|
description: helper to do a single horizontal cut movement
|
||||||
|
gcode:
|
||||||
|
{% set pin_loc_x_compressed = printer['gcode_macro CUT_FILAMENT']['pin_loc_x_compressed'] | float %}
|
||||||
|
{% set cut_fast_move_fraction = printer['gcode_macro CUT_FILAMENT']['cut_fast_move_fraction'] | float %}
|
||||||
|
{% set cut_fast_move_spd = printer['gcode_macro CUT_FILAMENT']['cut_fast_move_spd'] | float %}
|
||||||
|
{% set cut_slow_move_spd = printer['gcode_macro CUT_FILAMENT']['cut_slow_move_spd'] | float %}
|
||||||
|
{% set cut_dwell_time = printer['gcode_macro CUT_FILAMENT']['cut_dwell_time'] | float %}
|
||||||
|
{% set evacuate_speed = printer['gcode_macro CUT_FILAMENT']['evacuate_speed'] | float %}
|
||||||
|
{% set pin_park_x_loc = params.PIN_PARK_X_LOC | float %}
|
||||||
|
{% set fast_slow_transition_loc = (pin_loc_x_compressed - pin_park_x_loc) * cut_fast_move_fraction + pin_park_x_loc | float %}
|
||||||
|
G1 X{fast_slow_transition_loc} F{cut_fast_move_spd} ; make a fast move to initiate contact of the blade with the filament
|
||||||
|
G1 X{pin_loc_x_compressed} F{cut_slow_move_spd} ; do the cut in slow move
|
||||||
|
G4 P{cut_dwell_time}
|
||||||
|
G1 X{pin_park_x_loc} F{evacuate_speed} ; evacuate
|
||||||
|
|
||||||
[gcode_macro restore_cutted_filament]
|
[gcode_macro restore_cutted_filament]
|
||||||
description: extrudes an amount equal (or proportional) to the retraction during the last cut
|
description: extrudes an amount equal (or proportional) to the retraction during the last cut
|
||||||
gcode:
|
gcode:
|
||||||
SAVE_GCODE_STATE NAME=restore_cutted_filament_state
|
SAVE_GCODE_STATE NAME=restore_cutted_filament_state
|
||||||
{% set RETRACTED_LENGTH = printer['gcode_macro CUT_FILAMENT']['retracted_length_'] | float %}
|
{% set RETRACTED_LENGTH = printer['gcode_macro CUT_FILAMENT']['retracted_length_'] | float %}
|
||||||
M83 ; relative extrusion
|
M83 ; relative extrusion
|
||||||
G1 E{RETRACT_LENGTH} F3000
|
G1 E{RETRACTED_LENGTH} F3000
|
||||||
SET_GCODE_VARIABLE macro=CUT_FILAMENT variable=retracted_length_ value=0 ; clear the retracted amount
|
SET_GCODE_VARIABLE macro=CUT_FILAMENT variable=retracted_length_ value=0 ; clear the retracted amount
|
||||||
RESTORE_GCODE_STATE NAME=restore_cutted_filament_state
|
RESTORE_GCODE_STATE NAME=restore_cutted_filament_state
|
||||||
|
|
||||||
|
|
@ -144,4 +163,3 @@ gcode:
|
||||||
[gcode_macro _ERCF_FORM_TIP_STANDALONE]
|
[gcode_macro _ERCF_FORM_TIP_STANDALONE]
|
||||||
gcode:
|
gcode:
|
||||||
CUT_FILAMENT {rawparams}
|
CUT_FILAMENT {rawparams}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue