3dprinter: add start and stop macros
This commit is contained in:
parent
95251fd560
commit
4d5938ade7
|
@ -142,7 +142,7 @@ screw_thread: CW-M5
|
|||
[mcu]
|
||||
serial: /dev/ttyACM0
|
||||
|
||||
[neopixel extruder]
|
||||
[neopixel extruder_led]
|
||||
pin: PB7
|
||||
initial_RED: 1.0
|
||||
initial_GREEN: 1.0
|
||||
|
@ -291,6 +291,242 @@ gcode:
|
|||
[gcode_macro CALIBRATE_SCREWS]
|
||||
gcode:
|
||||
SCREWS_TILT_CALCULATE
|
||||
[gcode_macro START_PRINT]
|
||||
gcode:
|
||||
#Get Printer built volume dimensions
|
||||
{% set X_MAX = printer.toolhead.axis_maximum.x|default(100)|float %}
|
||||
{% set Y_MAX = printer.toolhead.axis_maximum.y|default(100)|float %}
|
||||
{% set Z_MAX = printer.toolhead.axis_maximum.z|default(100)|float %}
|
||||
|
||||
#Get Nozzle diameter and filament width for conditioning
|
||||
{% set NOZZLE = printer.extruder.nozzle_diameter|default(0.4)|float %}
|
||||
|
||||
#Set Start coordinates of priming lines
|
||||
{% set X_START = 2.0|default(2.0)|float %}
|
||||
{% set Y_START = 20.0|default(20.0)|float %}
|
||||
|
||||
#Get Bed and Extruder temperature from Slicer GCode
|
||||
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
|
||||
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
|
||||
|
||||
SET_LED LED=extruder_led RED=1 GREEN=0 BLUE=0
|
||||
|
||||
M117 Preheat nozzle and bed
|
||||
M104 S{EXTRUDER_TEMP}
|
||||
M140 S{BED_TEMP}
|
||||
|
||||
# Reset the G-Code Z offset (adjust Z offset if needed)
|
||||
SET_GCODE_OFFSET Z=0.0 MOVE=1
|
||||
|
||||
G28
|
||||
|
||||
# {% if not "x" in printer.toolhead.homed_axes %}
|
||||
# {% if not "y" in printer.toolhead.homed_axes %}
|
||||
# {% if not "z" in printer.toolhead.homed_axes %}
|
||||
# G28
|
||||
# {% else %}
|
||||
# G28 X Y
|
||||
# {% endif %}
|
||||
# {% else %}
|
||||
# {% if not "z" in printer.toolhead.homed_axes %}
|
||||
# G28 X Z
|
||||
# {% else %}
|
||||
# G28 X
|
||||
# {% endif %}
|
||||
# {% endif %}
|
||||
# {% else %}
|
||||
# {% if not "y" in printer.toolhead.homed_axes %}
|
||||
# {% if not "z" in printer.toolhead.homed_axes %}
|
||||
# G28 Y Z
|
||||
# {% else %}
|
||||
# G28 Y
|
||||
# {% endif %}
|
||||
# {% else %}
|
||||
# {% if not "z" in printer.toolhead.homed_axes %}
|
||||
# G28 Z
|
||||
# {% endif %}
|
||||
# {% endif %}
|
||||
# {% endif %}
|
||||
|
||||
|
||||
|
||||
# {% if not "x" in printer.toolhead.homed_axes %} # If X-Axis not homed.
|
||||
# M117 Homing X-Axis...
|
||||
# G28 X0
|
||||
# {% endif %}
|
||||
# {% if not "y" in printer.toolhead.homed_axes %} # If Y-Axis not homed.
|
||||
# M117 Homing Y-Axis...
|
||||
# G28 Y0
|
||||
# {% endif %}
|
||||
# {% if not "z" in printer.toolhead.homed_axes %} # If Y-Axis not homed.
|
||||
# M117 Homing Z-Axis...
|
||||
# G28 Z0
|
||||
# {% endif %}
|
||||
|
||||
# Use the bed mesh
|
||||
BED_MESH_PROFILE LOAD=default
|
||||
|
||||
#Move up to clean bed
|
||||
G1 Y{Y_START} Z{Z_MAX/4.0} F6000
|
||||
|
||||
SET_LED LED=extruder_led RED=1 GREEN=1 BLUE=0
|
||||
|
||||
M117 Heat nozzle and bed
|
||||
M190 S{BED_TEMP}
|
||||
M109 S{EXTRUDER_TEMP}
|
||||
|
||||
PRIME_LINE
|
||||
|
||||
M117 Printing
|
||||
|
||||
[gcode_macro PRIME_LINE]
|
||||
gcode:
|
||||
#Get Printer built volume dimensions
|
||||
{% set X_MAX = printer.toolhead.axis_maximum.x|default(100)|float %}
|
||||
{% set Y_MAX = printer.toolhead.axis_maximum.y|default(100)|float %}
|
||||
{% set Z_MAX = printer.toolhead.axis_maximum.z|default(100)|float %}
|
||||
|
||||
#Get Nozzle diameter and filament width for conditioning
|
||||
{% set NOZZLE = printer.extruder.nozzle_diameter|default(0.4)|float %}
|
||||
|
||||
#Set Start coordinates of priming lines
|
||||
{% set X_START = 2.0|default(2.0)|float %}
|
||||
{% set Y_START = 20.0|default(20.0)|float %}
|
||||
|
||||
#Calculate Primer line extrusion volume and filament length
|
||||
{% set NOZZLE75 = 0.75 * NOZZLE %}
|
||||
|
||||
SET_LED LED=extruder_led RED=0 GREEN=1 BLUE=0
|
||||
|
||||
M117 Print prime Line
|
||||
#Precondition extruder
|
||||
G92 E0 ; reset extruder
|
||||
G1 Z2.0 F3000 ; move z up little to prevent scratching of surface
|
||||
G1 X{X_START} Y{Y_START + 20} Z{NOZZLE75} F5000.0 ; move to start-line position
|
||||
G1 X{X_START} Y{Y_START + 20 + 160.0} Z{NOZZLE75} F1500.0 E15 ; draw 1st line
|
||||
G1 X{X_START + NOZZLE / 2.0} Y{Y_START + 180.0} Z{NOZZLE} F5000.0 ; move to side a little
|
||||
G1 X{X_START + NOZZLE / 2.0} Y{Y_START} Z{NOZZLE} F1500.0 E30 ; draw 2nd line
|
||||
G92 E0 ; reset extruder
|
||||
G1 Z2.0 F3000 ; move z up little to prevent scratching of surface
|
||||
|
||||
SET_LED LED=extruder_led RED=1 GREEN=1 BLUE=1
|
||||
|
||||
[gcode_macro END_PRINT]
|
||||
gcode:
|
||||
#Get Printer built volume dimensions
|
||||
{% set Y_START = 2.0|default(2.0)|float %}
|
||||
{% set X_MAX = printer.toolhead.axis_maximum.x|default(100)|float %}
|
||||
{% set Y_MAX = printer.toolhead.axis_maximum.y|default(100)|float %}
|
||||
{% set Z_MAX = printer.toolhead.axis_maximum.z|default(100)|float %}
|
||||
|
||||
SET_LED LED=extruder_led RED=1 GREEN=0 BLUE=0
|
||||
|
||||
M117 Fix-up extruder
|
||||
G91
|
||||
G1 E-2 F2700
|
||||
G1 E-1.5 Z0.2 F2400
|
||||
G1 X5 Y5 F6000
|
||||
G1 Z10
|
||||
G90
|
||||
|
||||
M117 Present print
|
||||
|
||||
{% if printer.toolhead.position.z + 10 > Z_MAX/4.0 %}
|
||||
G1 X{X_MAX / 2} Y{Y_MAX * 0.8} Z{printer.toolhead.position.z + 10} F6000
|
||||
{% else %}
|
||||
G1 X{X_MAX / 2} Y{Y_MAX * 0.8} Z{Z_MAX/4.0} F6000
|
||||
{% endif %}
|
||||
|
||||
M117 Poweroff
|
||||
M106 S0
|
||||
M104 S0
|
||||
M140 S0
|
||||
M84 #Disable Steppers
|
||||
|
||||
SET_LED LED=extruder_led RED=0 GREEN=0 BLUE=0
|
||||
|
||||
[gcode_macro PAUSE]
|
||||
description: Pause the actual running print
|
||||
rename_existing: PAUSE_BASE
|
||||
gcode:
|
||||
SET_LED LED=extruder_led RED=0 GREEN=0 BLUE=1
|
||||
PAUSE_BASE
|
||||
_TOOLHEAD_PARK_PAUSE_CANCEL
|
||||
|
||||
[gcode_macro RESUME]
|
||||
description: Resume the actual running print
|
||||
rename_existing: RESUME_BASE
|
||||
gcode:
|
||||
SET_LED LED=extruder_led RED=0 GREEN=1 BLUE=0
|
||||
##### read extrude from _TOOLHEAD_PARK_PAUSE_CANCEL macro #####
|
||||
{% set extrude = printer['gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL'].extrude %}
|
||||
#### get VELOCITY parameter if specified ####
|
||||
{% if 'VELOCITY' in params|upper %}
|
||||
{% set get_params = ('VELOCITY=' + params.VELOCITY) %}
|
||||
{%else %}
|
||||
{% set get_params = "" %}
|
||||
{% endif %}
|
||||
##### end of definitions #####
|
||||
{% if printer.extruder.can_extrude|lower == 'true' %}
|
||||
M83
|
||||
G1 E{extrude} F2100
|
||||
{% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %}
|
||||
{% else %}
|
||||
{action_respond_info("Extruder not hot enough")}
|
||||
{% endif %}
|
||||
RESUME_BASE {get_params}
|
||||
SET_LED LED=extruder_led RED=1 GREEN=1 BLUE=1
|
||||
|
||||
[gcode_macro CANCEL_PRINT]
|
||||
description: Cancel the actual running print
|
||||
rename_existing: CANCEL_PRINT_BASE
|
||||
variable_park: True
|
||||
gcode:
|
||||
## Move head and retract only if not already in the pause state and park set to true
|
||||
{% if printer.pause_resume.is_paused|lower == 'false' and park|lower == 'true'%}
|
||||
_TOOLHEAD_PARK_PAUSE_CANCEL
|
||||
{% endif %}
|
||||
|
||||
TURN_OFF_HEATERS
|
||||
CANCEL_PRINT_BASE
|
||||
SET_LED LED=extruder_led RED=0 GREEN=0 BLUE=0
|
||||
|
||||
[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
|
||||
description: Helper: park toolhead used in PAUSE and CANCEL_PRINT
|
||||
variable_extrude: 1.0
|
||||
gcode:
|
||||
SET_LED LED=extruder_led RED=1 GREEN=1 BLUE=0
|
||||
##### set park positon for x and y #####
|
||||
# default is your max posion from your printer.cfg
|
||||
{% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
|
||||
{% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
|
||||
{% set z_park_delta = 2.0 %}
|
||||
##### calculate save lift position #####
|
||||
{% set max_z = printer.toolhead.axis_maximum.z|float %}
|
||||
{% set act_z = printer.toolhead.position.z|float %}
|
||||
{% if act_z < (max_z - z_park_delta) %}
|
||||
{% set z_safe = z_park_delta %}
|
||||
{% else %}
|
||||
{% set z_safe = max_z - act_z %}
|
||||
{% endif %}
|
||||
##### end of definitions #####
|
||||
{% if printer.extruder.can_extrude|lower == 'true' %}
|
||||
M83
|
||||
G1 E-{extrude} F2100
|
||||
{% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %}
|
||||
{% else %}
|
||||
{action_respond_info("Extruder not hot enough")}
|
||||
{% endif %}
|
||||
{% if "xyz" in printer.toolhead.homed_axes %}
|
||||
G91
|
||||
G1 Z{z_safe} F900
|
||||
G90
|
||||
G1 X{x_park} Y{y_park} F6000
|
||||
{% if printer.gcode_move.absolute_coordinates|lower == 'false' %} G91 {% endif %}
|
||||
{% else %}
|
||||
{action_respond_info("Printer not homed")}
|
||||
{% endif %}
|
||||
|
||||
|
||||
# added via klipper configuration logic
|
||||
# to generate:
|
||||
|
|
Loading…
Reference in a new issue