First commit
This commit is contained in:
commit
7693c29676
102 changed files with 11831 additions and 0 deletions
93
files/kamp/Adaptive_Meshing.cfg
Normal file
93
files/kamp/Adaptive_Meshing.cfg
Normal file
|
@ -0,0 +1,93 @@
|
|||
###########################################
|
||||
# Adaptive Meshing for Creality K1 Series
|
||||
###########################################
|
||||
|
||||
[gcode_macro BED_MESH_CALIBRATE]
|
||||
rename_existing: _BED_MESH_CALIBRATE
|
||||
gcode:
|
||||
{% set all_points = printer.exclude_object.objects | map(attribute='polygon') | sum(start=[]) %}
|
||||
{% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %}
|
||||
{% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %}
|
||||
{% set probe_count = printer.configfile.settings.bed_mesh.probe_count %}
|
||||
{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}
|
||||
{% set verbose_enable = kamp_settings.verbose_enable | abs %}
|
||||
{% set mesh_margin = kamp_settings.mesh_margin | float %}
|
||||
{% set fuzz_amount = kamp_settings.fuzz_amount | float %}
|
||||
{% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %}
|
||||
{% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %}
|
||||
{% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %}
|
||||
{% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %}
|
||||
{% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %}
|
||||
{% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %}
|
||||
{% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %}
|
||||
{% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %}
|
||||
{% set adapted_x_min = x_min - mesh_margin - (fuzz_range | random / 100.0) %}
|
||||
{% set adapted_y_min = y_min - mesh_margin - (fuzz_range | random / 100.0) %}
|
||||
{% set adapted_x_max = x_max + mesh_margin + (fuzz_range | random / 100.0) %}
|
||||
{% set adapted_y_max = y_max + mesh_margin + (fuzz_range | random / 100.0) %}
|
||||
{% set adapted_x_min = [adapted_x_min , bed_mesh_min[0]] | max %}
|
||||
{% set adapted_y_min = [adapted_y_min , bed_mesh_min[1]] | max %}
|
||||
{% set adapted_x_max = [adapted_x_max , bed_mesh_max[0]] | min %}
|
||||
{% set adapted_y_max = [adapted_y_max , bed_mesh_max[1]] | min %}
|
||||
{% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method='ceil') | int) + 1 %}
|
||||
{% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method='ceil') | int) + 1 %}
|
||||
{% if (points_x > points_y) %}
|
||||
{% set points_y = points_x %}
|
||||
{% endif %}
|
||||
{% if (points_x < points_y) %}
|
||||
{% set points_x = points_y %}
|
||||
{% endif %}
|
||||
{% if (([points_x, points_y]|max) > 6) %}
|
||||
{% set algorithm = "bicubic" %}
|
||||
{% set min_points = 4 %}
|
||||
{% else %}
|
||||
{% set algorithm = "lagrange" %}
|
||||
{% set min_points = 3 %}
|
||||
{% endif %}
|
||||
{% set points_x = [points_x , min_points]|max %}
|
||||
{% set points_y = [points_y , min_points]|max %}
|
||||
{% set points_x = [points_x , probe_count[0]]|min %}
|
||||
{% set points_y = [points_y , probe_count[1]]|min %}
|
||||
|
||||
{% if verbose_enable == True %}
|
||||
|
||||
{% if printer.exclude_object.objects != [] %}
|
||||
|
||||
RESPOND TYPE=command MSG="Algorithm: {algorithm}"
|
||||
RESPOND TYPE=command MSG="Default probe count: {probe_count[0]},{probe_count[1]}"
|
||||
RESPOND TYPE=command MSG="Adapted probe count: {points_x},{points_y}"
|
||||
RESPOND TYPE=command MSG="Default mesh bounds: {bed_mesh_min[0]},{bed_mesh_min[1]}, {bed_mesh_max[0]},{bed_mesh_max[1]}"
|
||||
|
||||
{% if mesh_margin > 0 %}
|
||||
|
||||
RESPOND TYPE=command MSG="Mesh margin is {mesh_margin}, mesh bounds extended by {mesh_margin}mm."
|
||||
|
||||
{% else %}
|
||||
|
||||
RESPOND TYPE=command MSG="Mesh margin is 0, margin not increased."
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if fuzz_amount > 0 %}
|
||||
|
||||
RESPOND TYPE=command MSG="Mesh point fuzzing enabled, points fuzzed up to {fuzz_amount}mm"
|
||||
|
||||
{% else %}
|
||||
|
||||
RESPOND TYPE=command MSG="Fuzz amount is 0, mesh points not fuzzed."
|
||||
|
||||
{% endif %}
|
||||
|
||||
RESPOND TYPE=command MSG="Adapted mesh bounds: {adapted_x_min},{adapted_y_min}, {adapted_x_max},{adapted_y_max}"
|
||||
RESPOND TYPE=command MSG="KAMP adjustments successful. Happy KAMPing!"
|
||||
|
||||
{% else %}
|
||||
|
||||
RESPOND TYPE=command MSG="No object detected! Make sure you have enabled Exclude Objets setting in your slicer. Using Full Bed Mesh."
|
||||
G4 P5000
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
_BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y}
|
40
files/kamp/KAMP_Settings.cfg
Normal file
40
files/kamp/KAMP_Settings.cfg
Normal file
|
@ -0,0 +1,40 @@
|
|||
###########################################
|
||||
# KAMP Settings for Creality K1 Series
|
||||
###########################################
|
||||
|
||||
# Below you can enable or disable specific configuration files depending on what you want KAMP to do:
|
||||
|
||||
[include Start_Print.cfg] # START_PRINT macro for Creality K1 Series.
|
||||
[include Adaptive_Meshing.cfg] # Adaptive Meshing configurations.
|
||||
[include Line_Purge.cfg] # Adaptive Line Purging configurations.
|
||||
[include Smart_Park.cfg] # Smart Park feature, which parks the printhead near the print area for final heating.
|
||||
#[include Prusa_Slicer.cfg] # Enable this if you use Prusa Slicer, it's the necessary macros to enable Exclude Objects functionality.
|
||||
|
||||
[respond] # Necessary to receive messages from KAMP
|
||||
|
||||
[gcode_macro _KAMP_Settings]
|
||||
description: This macro contains all adjustable settings for KAMP
|
||||
|
||||
# The following variables are settings for KAMP as a whole:
|
||||
|
||||
variable_verbose_enable: True # Set to True to enable KAMP information output when running. This is useful for debugging.
|
||||
|
||||
# The following variables are for adjusting Adaptive Meshing settings for KAMP:
|
||||
|
||||
variable_mesh_margin: 0 # Expands the mesh size in millimeters if desired. Leave at 0 to disable.
|
||||
variable_fuzz_amount: 0 # Slightly randomizes mesh points to spread out wear from nozzle-based probes. Leave at 0 to disable.
|
||||
|
||||
# The following variables are for adjusting Adaptive Line Purging settings for KAMP:
|
||||
|
||||
variable_purge_height: 0.8 # Z position of nozzle during purge. Default is 0.8.
|
||||
variable_tip_distance: 0 # Distance between tip of filament and nozzle before purge. Should be similar to PRINT_END final retract amount. Default is 0.
|
||||
variable_purge_margin: 10 # Distance the purge will be in front of the print area. Default is 10.
|
||||
variable_purge_amount: 50 # Amount of filament to be purged prior to printing. Default is 50.
|
||||
variable_flow_rate: 12 # Flow rate of purge in mm3/s. Default is 12.
|
||||
|
||||
# The following variables are for adjusting the Smart Park feature for KAMP, which will park the printhead near the print area at a specified height:
|
||||
|
||||
variable_smart_park_height: 10 # Z position for Smart Park. Default is 10.
|
||||
|
||||
gcode:
|
||||
RESPOND TYPE=command MSG="Running the KAMP_Settings macro does nothing, it's only used for storing KAMP settings."
|
200
files/kamp/Line_Purge.cfg
Normal file
200
files/kamp/Line_Purge.cfg
Normal file
|
@ -0,0 +1,200 @@
|
|||
###########################################
|
||||
# Line Purge for Creality K1 Series
|
||||
###########################################
|
||||
|
||||
[gcode_macro _LINE_PURGE]
|
||||
description: A purge macro that adapts to be near your actual printed objects
|
||||
gcode:
|
||||
{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}
|
||||
{% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %}
|
||||
{% if printer.firmware_retraction is defined %}
|
||||
{% set RETRACT = G10 | string %}
|
||||
{% set UNRETRACT = G11 | string %}
|
||||
{% else %}
|
||||
{% set RETRACT = 'G1 E-0.5 F2400' | string %}
|
||||
{% set UNRETRACT = 'G1 E0.5 F2400' | string %}
|
||||
{% endif %}
|
||||
{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}
|
||||
{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}
|
||||
{% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %}
|
||||
{% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %}
|
||||
{% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %}
|
||||
{% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %}
|
||||
{% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %}
|
||||
{% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %}
|
||||
{% set rapid_move = 10 %}
|
||||
{% set all_points = printer.exclude_object.objects | map(attribute='polygon') | sum(start=[]) %}
|
||||
{% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %}
|
||||
{% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %}
|
||||
{% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %}
|
||||
{% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %}
|
||||
{% set detect_object = purge_x_min + purge_x_max + purge_y_min + purge_y_max %}
|
||||
{% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %}
|
||||
{% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %}
|
||||
{% if (purge_x_center + purge_amount + rapid_move) > bed_x_max %}
|
||||
{% set purge_x_center = (bed_x_max - (purge_amount + rapid_move)) %}
|
||||
{% endif %}
|
||||
{% if (purge_y_center + purge_amount + rapid_move) > bed_y_max %}
|
||||
{% set purge_y_center = (bed_y_max - (purge_amount + rapid_move)) %}
|
||||
{% endif %}
|
||||
{% set purge_x_origin_low = (purge_x_min - purge_margin) %}
|
||||
{% set purge_x_origin_high = (purge_x_max + purge_margin) %}
|
||||
{% set purge_y_origin_low = (purge_y_min - purge_margin) %}
|
||||
{% set purge_y_origin_high = (purge_y_max + purge_margin) %}
|
||||
{% set purge_move_speed = (flow_rate / 5.0) * 60 | float %}
|
||||
|
||||
{% if cross_section < 5 %}
|
||||
|
||||
RESPOND TYPE=command MSG="[Extruder] max_extrude_cross_section is insufficient for line purge, please set it to 5 or greater. Purge skipped."
|
||||
|
||||
{% else %}
|
||||
|
||||
{% if verbose_enable == True %}
|
||||
|
||||
RESPOND TYPE=command MSG="Moving filament tip {tip_distance}mm"
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if detect_object == 0 %}
|
||||
|
||||
RESPOND TYPE=command MSG="No object detected! Using classic purge line."
|
||||
|
||||
{% elif purge_y_origin_low > 0 %}
|
||||
|
||||
RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_low} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."
|
||||
|
||||
{% elif purge_x_origin_low > 0 %}
|
||||
|
||||
RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_low}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."
|
||||
|
||||
{% elif purge_y_origin_high < bed_y_max %}
|
||||
|
||||
RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_high} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."
|
||||
|
||||
{% elif purge_x_origin_high < bed_x_max %}
|
||||
|
||||
RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_high}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."
|
||||
|
||||
{% else %}
|
||||
|
||||
RESPOND TYPE=command MSG="No space for purge line! Using classic purge line."
|
||||
|
||||
{% endif %}
|
||||
|
||||
SAVE_GCODE_STATE NAME=Prepurge_State
|
||||
|
||||
{% if detect_object == 0 %}
|
||||
|
||||
G92 E0
|
||||
G1 Z0.1 F600
|
||||
M83
|
||||
{RETRACT}
|
||||
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5
|
||||
M204 S12000
|
||||
SET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000
|
||||
M220 S100
|
||||
M221 S100
|
||||
G1 Z2.0 F1200
|
||||
G1 X0.1 Y20 Z0.3 F6000.0
|
||||
G1 X0.1 Y180.0 Z0.3 F3000.0 E10.0
|
||||
G1 X0.4 Y180.0 Z0.3 F3000.0
|
||||
G1 X0.4 Y20.0 Z0.3 F3000.0 E10.0
|
||||
G1 Y10.0 F3000.0
|
||||
G1 Z2.0 F3000.0
|
||||
G92 E0
|
||||
M82
|
||||
G1 F12000
|
||||
G21
|
||||
|
||||
{% elif purge_y_origin_low > 0 %}
|
||||
|
||||
G92 E0
|
||||
G0 F{travel_speed}
|
||||
G90
|
||||
G0 X{purge_x_center} Y{purge_y_origin_low}
|
||||
G0 Z{purge_height}
|
||||
M83
|
||||
G1 E{tip_distance} F{purge_move_speed}
|
||||
G1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}
|
||||
{RETRACT}
|
||||
G0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}
|
||||
G92 E0
|
||||
M82
|
||||
G0 Z{purge_height * 2} F{travel_speed}
|
||||
|
||||
{% elif purge_x_origin_low > 0 %}
|
||||
|
||||
G92 E0
|
||||
G0 F{travel_speed}
|
||||
G90
|
||||
G0 X{purge_x_origin_low} Y{purge_y_center}
|
||||
G0 Z{purge_height}
|
||||
M83
|
||||
G1 E{tip_distance} F{purge_move_speed}
|
||||
G1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}
|
||||
{RETRACT}
|
||||
G0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}
|
||||
G92 E0
|
||||
M82
|
||||
G0 Z{purge_height * 2} F{travel_speed}
|
||||
|
||||
{% elif purge_y_origin_high < bed_y_max %}
|
||||
|
||||
G92 E0
|
||||
G0 F{travel_speed}
|
||||
G90
|
||||
G0 X{purge_x_center} Y{purge_y_origin_high}
|
||||
G0 Z{purge_height}
|
||||
M83
|
||||
G1 E{tip_distance} F{purge_move_speed}
|
||||
G1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}
|
||||
{RETRACT}
|
||||
G0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}
|
||||
G92 E0
|
||||
M82
|
||||
G0 Z{purge_height * 2} F{travel_speed}
|
||||
|
||||
{% elif purge_x_origin_high < bed_x_max %}
|
||||
|
||||
G92 E0
|
||||
G0 F{travel_speed}
|
||||
G90
|
||||
G0 X{purge_x_origin_high} Y{purge_y_center}
|
||||
G0 Z{purge_height}
|
||||
M83
|
||||
G1 E{tip_distance} F{purge_move_speed}
|
||||
G1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}
|
||||
{RETRACT}
|
||||
G0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}
|
||||
G92 E0
|
||||
M82
|
||||
G0 Z{purge_height * 2} F{travel_speed}
|
||||
|
||||
{% else %}
|
||||
|
||||
G92 E0
|
||||
G1 Z0.1 F600
|
||||
M83
|
||||
{RETRACT}
|
||||
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5
|
||||
M204 S12000
|
||||
SET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000
|
||||
M220 S100
|
||||
M221 S100
|
||||
G1 Z2.0 F1200
|
||||
G1 X0.1 Y20 Z0.3 F6000.0
|
||||
G1 X0.1 Y180.0 Z0.3 F3000.0 E10.0
|
||||
G1 X0.4 Y180.0 Z0.3 F3000.0
|
||||
G1 X0.4 Y20.0 Z0.3 F3000.0 E10.0
|
||||
G1 Y10.0 F3000.0
|
||||
G1 Z2.0 F3000.0
|
||||
G92 E0
|
||||
M82
|
||||
G1 F12000
|
||||
G21
|
||||
|
||||
{% endif %}
|
||||
|
||||
RESTORE_GCODE_STATE NAME=Prepurge_State
|
||||
|
||||
{% endif %}
|
32
files/kamp/Prusa_Slicer.cfg
Normal file
32
files/kamp/Prusa_Slicer.cfg
Normal file
|
@ -0,0 +1,32 @@
|
|||
###########################################
|
||||
# PrusaSlicer Macros for Creality K1 Series
|
||||
###########################################
|
||||
|
||||
[gcode_macro DEFINE_OBJECT]
|
||||
gcode:
|
||||
EXCLUDE_OBJECT_DEFINE {rawparams}
|
||||
|
||||
|
||||
[gcode_macro START_CURRENT_OBJECT]
|
||||
gcode:
|
||||
EXCLUDE_OBJECT_START NAME={params.NAME}
|
||||
|
||||
|
||||
[gcode_macro END_CURRENT_OBJECT]
|
||||
gcode:
|
||||
EXCLUDE_OBJECT_END {% if params.NAME %}NAME={params.NAME}{% endif %}
|
||||
|
||||
|
||||
[gcode_macro LIST_OBJECTS]
|
||||
gcode:
|
||||
EXCLUDE_OBJECT_DEFINE
|
||||
|
||||
|
||||
[gcode_macro LIST_EXCLUDED_OBJECTS]
|
||||
gcode:
|
||||
EXCLUDE_OBJECT
|
||||
|
||||
|
||||
[gcode_macro REMOVE_ALL_EXCLUDED]
|
||||
gcode:
|
||||
EXCLUDE_OBJECT RESET=1
|
79
files/kamp/Smart_Park.cfg
Normal file
79
files/kamp/Smart_Park.cfg
Normal file
|
@ -0,0 +1,79 @@
|
|||
###########################################
|
||||
# Smart Park for Creality K1 Series
|
||||
###########################################
|
||||
|
||||
[gcode_macro _SMART_PARK]
|
||||
description: Parks your printhead near the print area for pre-print hotend heating.
|
||||
gcode:
|
||||
{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}
|
||||
{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}
|
||||
{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}
|
||||
{% set z_height = kamp_settings.smart_park_height | float %}
|
||||
{% set purge_margin = kamp_settings.purge_margin | float %}
|
||||
{% set purge_amount = kamp_settings.purge_amount | float %}
|
||||
{% set verbose_enable = kamp_settings.verbose_enable | abs %}
|
||||
{% set center_x = bed_x_max / 2 %}
|
||||
{% set center_y = bed_y_max / 2 %}
|
||||
{% set axis_minimum_x = printer.toolhead.axis_minimum.x | float %}
|
||||
{% set axis_minimum_y = printer.toolhead.axis_minimum.y | float %}
|
||||
{% set all_points = printer.exclude_object.objects | map(attribute='polygon') | sum(start=[]) %}
|
||||
{% set x_min = (all_points | map(attribute=0) | min | default(0)) %}
|
||||
{% set x_max = (all_points | map(attribute=0) | max | default(0)) %}
|
||||
{% set y_min = (all_points | map(attribute=1) | min | default(0)) %}
|
||||
{% set y_max = (all_points | map(attribute=1) | max | default(0)) %}
|
||||
{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}
|
||||
{% set rapid_move = 10 %}
|
||||
{% set park_x_center = ([((x_max + x_min) / 2) - (purge_amount / 2), 0] | max) %}
|
||||
{% set park_y_center = ([((y_max + y_min) / 2) - (purge_amount / 2), 0] | max) %}
|
||||
{% if (park_x_center + purge_amount + rapid_move) > bed_x_max %}
|
||||
{% set park_x_center = (bed_x_max - (purge_amount + rapid_move)) %}
|
||||
{% endif %}
|
||||
{% if (park_y_center + purge_amount + rapid_move) > bed_y_max %}
|
||||
{% set park_y_center = (bed_y_max - (purge_amount + rapid_move)) %}
|
||||
{% endif %}
|
||||
{% set park_x_origin_low = (x_min - purge_margin) %}
|
||||
{% set park_x_origin_high = (x_max + purge_margin) %}
|
||||
{% set park_y_origin_low = (y_min - purge_margin) %}
|
||||
{% set park_y_origin_high = (y_max + purge_margin) %}
|
||||
{% set detect_object = (x_min + x_max + y_min + y_max) %}
|
||||
{% if detect_object == 0 %}
|
||||
{% set x_min = 10 %}
|
||||
{% set y_min = 10 %}
|
||||
{% set z_height = 2 %}
|
||||
{% elif park_y_origin_low > 0 %}
|
||||
{% set x_min = park_x_center %}
|
||||
{% set y_min = park_y_origin_low %}
|
||||
{% elif park_x_origin_low > 0 %}
|
||||
{% set x_min = park_x_origin_low %}
|
||||
{% set y_min = park_y_center %}
|
||||
{% elif park_y_origin_high < bed_y_max %}
|
||||
{% set x_min = park_x_center %}
|
||||
{% set y_min = park_y_origin_high %}
|
||||
{% elif park_x_origin_high < bed_x_max %}
|
||||
{% set x_min = park_x_origin_high %}
|
||||
{% set y_min = park_y_center %}
|
||||
{% else %}
|
||||
{% set x_min = 10 %}
|
||||
{% set y_min = 10 %}
|
||||
{% set z_height = 2 %}
|
||||
{% endif %}
|
||||
|
||||
{% if verbose_enable == True %}
|
||||
|
||||
RESPOND TYPE=command MSG="Smart Park location: {x_min},{y_min}"
|
||||
|
||||
{% endif %}
|
||||
|
||||
SAVE_GCODE_STATE NAME=Presmartpark_State
|
||||
|
||||
G90
|
||||
{% if printer.toolhead.position.z < z_height %}
|
||||
|
||||
G0 Z{z_height}
|
||||
|
||||
{% endif %}
|
||||
|
||||
G0 X{x_min} Y{y_min} F{travel_speed}
|
||||
G0 Z{z_height}
|
||||
|
||||
RESTORE_GCODE_STATE NAME=Presmartpark_State
|
62
files/kamp/Start_Print.cfg
Normal file
62
files/kamp/Start_Print.cfg
Normal file
|
@ -0,0 +1,62 @@
|
|||
###########################################
|
||||
# Start Print Macro for Creality K1 Series
|
||||
###########################################
|
||||
|
||||
[respond]
|
||||
|
||||
[virtual_pins]
|
||||
|
||||
[output_pin KAMP]
|
||||
pin: virtual_pin:KAMP_pin
|
||||
value: 1
|
||||
|
||||
[output_pin BED_LEVELING]
|
||||
pin: virtual_pin:BED_LEVELING_pin
|
||||
value: 1
|
||||
|
||||
|
||||
[gcode_macro START_PRINT]
|
||||
variable_prepare: 0
|
||||
gcode:
|
||||
WAIT_TEMP_END
|
||||
CLEAR_PAUSE
|
||||
{% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %}
|
||||
{% set bed_temp = printer.custom_macro.default_bed_temp %}
|
||||
{% set extruder_temp = printer.custom_macro.default_extruder_temp %}
|
||||
{% if 'BED_TEMP' in params|upper and (params.BED_TEMP|float) %}
|
||||
{% set bed_temp = params.BED_TEMP %}
|
||||
{% endif %}
|
||||
{% if 'EXTRUDER_TEMP' in params|upper and (params.EXTRUDER_TEMP|float) %}
|
||||
{% set extruder_temp = params.EXTRUDER_TEMP %}
|
||||
{% endif %}
|
||||
{% if printer['gcode_macro START_PRINT'].prepare|int == 0 %}
|
||||
PRINT_PREPARE_CLEAR
|
||||
CX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp}
|
||||
CX_NOZZLE_CLEAR
|
||||
ACCURATE_G28
|
||||
{% if printer.exclude_object.objects != [] and printer['output_pin KAMP'].value == 1 %}
|
||||
RESPOND TYPE=command MSG="Starting KAMP Bed Mesh..."
|
||||
BED_MESH_CLEAR
|
||||
BED_MESH_CALIBRATE PROFILE=kamp
|
||||
BED_MESH_PROFILE LOAD="kamp"
|
||||
{% else %}
|
||||
{% if printer['output_pin BED_LEVELING'].value == 1 %}
|
||||
RESPOND TYPE=command MSG="Starting Full Bed Mesh..."
|
||||
CX_PRINT_LEVELING_CALIBRATION
|
||||
{% endif %}
|
||||
BED_MESH_PROFILE LOAD="default"
|
||||
{% endif %}
|
||||
{% else %}
|
||||
PRINT_PREPARE_CLEAR
|
||||
{% endif %}
|
||||
{% if printer.exclude_object.objects != [] and printer['output_pin KAMP'].value == 1 %}
|
||||
_SMART_PARK
|
||||
M109 S{extruder_temp}
|
||||
M190 S{bed_temp}
|
||||
RESPOND TYPE=command MSG="Starting KAMP line purge..."
|
||||
_LINE_PURGE
|
||||
{% else %}
|
||||
RESPOND TYPE=command MSG="Starting classic line purge..."
|
||||
CX_PRINT_DRAW_ONE_LINE
|
||||
{% endif %}
|
||||
SET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel}
|
Loading…
Add table
Add a link
Reference in a new issue