mirror of
https://github.com/QIDITECH/QIDI_PLUS4.git
synced 2026-01-30 23:48:44 +03:00
update v1.7.0
This commit is contained in:
@@ -1,9 +1,4 @@
|
||||
# QIDI Plus4 V1.6.0
|
||||
#20241102
|
||||
#1. 起始代码腔室加热将在调平后开启
|
||||
#2. 腔室加热开启必须带着热床升温
|
||||
#3. M141和M191宏定义修改,热床低于70会开启热床加热
|
||||
#4. 擦料时取消打印,会先移动一点出来
|
||||
# QIDI Plus4 V1.0.0
|
||||
|
||||
[gcode_macro _CG28]
|
||||
gcode:
|
||||
@@ -205,28 +200,194 @@ gcode:
|
||||
M400
|
||||
M118 Nozzle cooled
|
||||
|
||||
[gcode_macro MOVE_TO_TRASH]
|
||||
gcode:
|
||||
_CG28
|
||||
M204 S10000
|
||||
{% if (printer.gcode_move.position.y) > 305 %}
|
||||
G1 X82 Y324 F6000
|
||||
G1 X95
|
||||
{% else %}
|
||||
G1 X82 F12000
|
||||
G1 Y310 F12000
|
||||
G1 Y324 F600
|
||||
G1 X95 F6000
|
||||
{% endif %}
|
||||
|
||||
# Excute when start printing, prior to gcode file
|
||||
[gcode_macro PRINT_START]
|
||||
gcode:
|
||||
AUTOTUNE_SHAPERS
|
||||
TOOL_CHANGE_END
|
||||
DISABLE_ALL_SENSOR
|
||||
CLEAR_PAUSE
|
||||
|
||||
{% set bedtemp = params.BED|int %}
|
||||
{% set hotendtemp = params.HOTEND|int %}
|
||||
{% set chambertemp = params.CHAMBER|default(0)|int %}
|
||||
{% set extruder = params.EXTRUDER|default(0)|int %}
|
||||
set_zoffset
|
||||
M104 S0
|
||||
|
||||
M106 P2 S0
|
||||
M106 P3 S0
|
||||
M106 S255
|
||||
{% if "xyz" in printer.toolhead.homed_axes %}
|
||||
G0 X50 Y50 F6000
|
||||
{% endif %}
|
||||
G28
|
||||
M141 S0
|
||||
M140 S{bedtemp}
|
||||
M106 S0
|
||||
{% if printer.save_variables.variables.box_count >= 1 %}
|
||||
SAVE_VARIABLE VARIABLE=load_retry_num VALUE=0
|
||||
SAVE_VARIABLE VARIABLE=retry_step VALUE=None
|
||||
SAVE_VARIABLE VARIABLE=is_tool_change VALUE=0
|
||||
{% for i in range(16) %}
|
||||
SAVE_VARIABLE VARIABLE=runout_{i} VALUE=0
|
||||
G4 P100
|
||||
{% endfor %}
|
||||
{% if printer.save_variables.variables.enable_box == 1 %}
|
||||
{% set last_load_slot = printer.save_variables.variables.last_load_slot|default("slot-1") %}
|
||||
{% set value_t = printer.save_variables.variables["value_t" ~ extruder]|default("slot" ~ extruder) %}
|
||||
{% if printer['hall_filament_width_sensor'].Diameter > 0.5 %}
|
||||
{% if last_load_slot != value_t and last_load_slot != "slot-1" %}
|
||||
CUT_FILAMENT
|
||||
MOVE_TO_TRASH
|
||||
M109 S{hotendtemp}
|
||||
EXTRUDER_UNLOAD SLOT={last_load_slot}
|
||||
M83
|
||||
G1 E18 F300
|
||||
T{extruder}
|
||||
G1 E1 F50
|
||||
G1 E28.13 F611
|
||||
G1 E0.97 F50
|
||||
G1 E8.73 F611
|
||||
G1 E0.97 F50
|
||||
G1 E8.73 F611
|
||||
G1 E0.97 F50
|
||||
G1 E-2 F1800
|
||||
{% for i in range(1,5) %}
|
||||
M106 S255
|
||||
M400
|
||||
G91
|
||||
G1 X-3 F60
|
||||
G1 X3 F60
|
||||
G90
|
||||
CLEAR_FLUSH
|
||||
M106 S60
|
||||
G1 E34.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E10.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E10.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E-2 F1800
|
||||
{% endfor %}
|
||||
{% elif last_load_slot == value_t and printer.save_variables.variables.slot_sync == "slot-1" %}
|
||||
MOVE_TO_TRASH
|
||||
M109 S{hotendtemp}
|
||||
T{extruder}
|
||||
M83
|
||||
G1 E1 F50
|
||||
G1 E28.13 F611
|
||||
G1 E0.97 F50
|
||||
G1 E8.73 F611
|
||||
G1 E0.97 F50
|
||||
G1 E8.73 F611
|
||||
G1 E0.97 F50
|
||||
G1 E-2 F1800
|
||||
{% for i in range(1,5) %}
|
||||
M106 S255
|
||||
M400
|
||||
G91
|
||||
G1 X-3 F60
|
||||
G1 X3 F60
|
||||
G90
|
||||
CLEAR_FLUSH
|
||||
M106 S60
|
||||
G1 E34.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E10.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E10.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E-2 F1800
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if last_load_slot != "slot-1" %}
|
||||
MOVE_TO_TRASH
|
||||
M109 S{hotendtemp}
|
||||
M400
|
||||
EXTRUDER_UNLOAD SLOT={last_load_slot}
|
||||
T{extruder}
|
||||
M83
|
||||
G1 E1 F50
|
||||
G1 E28.13 F611
|
||||
G1 E0.97 F50
|
||||
G1 E8.73 F611
|
||||
G1 E0.97 F50
|
||||
G1 E8.73 F611
|
||||
G1 E0.97 F50
|
||||
G1 E-2 F1800
|
||||
{% for i in range(1,5) %}
|
||||
M106 S255
|
||||
M400
|
||||
G91
|
||||
G1 X-3 F60
|
||||
G1 X3 F60
|
||||
G90
|
||||
CLEAR_FLUSH
|
||||
M106 S60
|
||||
G1 E34.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E10.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E10.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E-2 F1800
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
MOVE_TO_TRASH
|
||||
M109 S{hotendtemp}
|
||||
T{extruder}
|
||||
M83
|
||||
G1 E1 F50
|
||||
G1 E28.13 F611
|
||||
G1 E0.97 F50
|
||||
G1 E8.73 F611
|
||||
G1 E0.97 F50
|
||||
G1 E8.73 F611
|
||||
G1 E0.97 F50
|
||||
G1 E-2 F1800
|
||||
{% for i in range(1,5) %}
|
||||
M106 S255
|
||||
M400
|
||||
G91
|
||||
G1 X-3 F60
|
||||
G1 X3 F60
|
||||
G90
|
||||
CLEAR_FLUSH
|
||||
M106 S60
|
||||
G1 E34.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E10.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E10.8 F611
|
||||
G1 E1.2 F50
|
||||
G1 E-2 F1800
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
M106 S0
|
||||
CLEAR_NOZZLE HOTEND={hotendtemp}
|
||||
M190 S{bedtemp}
|
||||
# M141 S{chambertemp}
|
||||
M104 S140
|
||||
Z_TILT_ADJUST
|
||||
G29
|
||||
G0 Z50 F600
|
||||
G0 X5 Y5 F6000
|
||||
@@ -247,13 +408,19 @@ gcode:
|
||||
RESET_FILAMENT_WIDTH_SENSOR
|
||||
query_filament_width
|
||||
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1
|
||||
{% if printer["filament_motion_sensor box_motion_sensor"] and printer.save_variables.variables.enable_box == 1 %}
|
||||
CLEAR_MOTION_DATA
|
||||
SET_FILAMENT_SENSOR SENSOR=box_motion_sensor ENABLE=1
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro DISABLE_ALL_SENSOR]
|
||||
gcode:
|
||||
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0
|
||||
{% if printer["filament_motion_sensor box_motion_sensor"] %}
|
||||
SET_FILAMENT_SENSOR SENSOR=box_motion_sensor ENABLE=0
|
||||
{% endif %}
|
||||
DISABLE_FILAMENT_WIDTH_SENSOR
|
||||
|
||||
|
||||
[gcode_macro AUTOTUNE_SHAPERS]
|
||||
variable_autotune_shapers: 'ei'
|
||||
gcode:
|
||||
@@ -285,7 +452,7 @@ gcode:
|
||||
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
|
||||
SET_STEPPER_ENABLE STEPPER=stepper_z1 enable=1
|
||||
BED_MESH_CLEAR
|
||||
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0
|
||||
DISABLE_ALL_SENSOR
|
||||
|
||||
[homing_override]
|
||||
axes:xyz
|
||||
@@ -342,7 +509,7 @@ gcode:
|
||||
G1 Y5 F2400
|
||||
G4 P2000
|
||||
|
||||
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR * 0.8}
|
||||
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR * 0.8}
|
||||
G28 X
|
||||
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR}
|
||||
BEEP I=1 DUR=100
|
||||
@@ -395,6 +562,7 @@ gcode:
|
||||
M106 P2 S0
|
||||
M106 P0 S0
|
||||
M106 P3 S0
|
||||
DISABLE_BOX_HEATER
|
||||
|
||||
M104 S0
|
||||
M140 S0
|
||||
@@ -418,6 +586,7 @@ gcode:
|
||||
[gcode_macro CANCEL_PRINT]
|
||||
rename_existing: BASE_CANCEL_PRINT
|
||||
gcode:
|
||||
TOOL_CHANGE_END
|
||||
{% if (printer.gcode_move.position.z) < 200 %}
|
||||
G1 Z200 F600
|
||||
{% endif %}
|
||||
@@ -436,6 +605,7 @@ gcode:
|
||||
M104 S0
|
||||
M140 S0
|
||||
M141 S0
|
||||
DISABLE_BOX_HEATER
|
||||
|
||||
M220 S100
|
||||
M221 S100
|
||||
@@ -461,12 +631,11 @@ gcode:
|
||||
{% set z = params.Z|default(35)|int %}
|
||||
|
||||
{% if printer['pause_resume'].is_paused|int == 0 %}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=efan VALUE={printer["fan_generic cooling_fan"].speed *255}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME_PRINT VARIABLE=zhop VALUE={z}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME_PRINT VARIABLE=etemp VALUE={printer['extruder'].target}
|
||||
SET_GCODE_VARIABLE MACRO=RESUME_PRINT VARIABLE=efan VALUE={printer["fan_generic cooling_fan"].speed *255}
|
||||
|
||||
DISABLE_FILAMENT_WIDTH_SENSOR
|
||||
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0
|
||||
DISABLE_ALL_SENSOR
|
||||
SAVE_GCODE_STATE NAME=PAUSE
|
||||
BASE_PAUSE
|
||||
G92 E0
|
||||
@@ -477,7 +646,7 @@ gcode:
|
||||
{% else %}
|
||||
G91
|
||||
G1 Z{5} F900
|
||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
|
||||
SET_GCODE_VARIABLE MACRO=RESUME_PRINT VARIABLE=zhop VALUE=0
|
||||
{% endif %}
|
||||
SAVE_GCODE_STATE NAME=PAUSEPARK2
|
||||
G90
|
||||
@@ -490,67 +659,130 @@ gcode:
|
||||
M104 S0
|
||||
SET_IDLE_TIMEOUT TIMEOUT=86400
|
||||
SET_STEPPER_ENABLE STEPPER=extruder enable=0
|
||||
{% set slot_sync = printer.save_variables.variables.slot_sync|default("slot-1") %}
|
||||
{% if printer['box_stepper ' ~ slot_sync] %}
|
||||
SET_STEPPER_ENABLE STEPPER='box_stepper '{slot_sync} enable=0
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro RESUME]
|
||||
rename_existing: BASE_RESUME
|
||||
[gcode_macro RESUME_PRINT]
|
||||
variable_zhop: 0
|
||||
variable_etemp: 0
|
||||
variable_efan: 0
|
||||
gcode:
|
||||
{% set e = params.E|default(5)|int %}
|
||||
{% set tool_change = params.TOOL_CHANGE|default(0)|int %}
|
||||
|
||||
{% if printer['pause_resume'].is_paused|int == 1 %}
|
||||
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}
|
||||
{% if etemp > 0 %}
|
||||
M109 S{etemp|int}
|
||||
{% if printer.save_variables.variables.box_count >= 1 and printer.save_variables.variables.enable_box == 1 and printer.save_variables.variables.is_tool_change == 1%}
|
||||
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}
|
||||
MOVE_TO_TRASH
|
||||
{% if etemp > 0 %}
|
||||
M109 S{etemp|int}
|
||||
{% endif %}
|
||||
M83
|
||||
RESTORE_GCODE_STATE NAME=PAUSEPARK2 MOVE=1 MOVE_SPEED=200
|
||||
RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=15
|
||||
BASE_RESUME
|
||||
{% else %}
|
||||
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}
|
||||
{% if etemp > 0 %}
|
||||
M109 S{etemp|int}
|
||||
{% endif %}
|
||||
{% if printer.save_variables.variables.box_count >= 1 %}
|
||||
SAVE_VARIABLE VARIABLE=retry_step VALUE=None
|
||||
{% endif %}
|
||||
M83
|
||||
M106 S0
|
||||
G1 X95 F12000
|
||||
G1 Y324 F12000
|
||||
G92 E0
|
||||
G1 E5 F50
|
||||
G92 E0
|
||||
G1 E50 F200
|
||||
G92 E0
|
||||
G1 E-0.8 F200
|
||||
G4 P300
|
||||
|
||||
M106 S{efan}
|
||||
|
||||
G1 Y318 F30000
|
||||
G1 Y322 F3000
|
||||
G1 Y318 F30000
|
||||
G1 Y322 F3000
|
||||
G1 Y318 F30000
|
||||
G1 Y322 F3000
|
||||
G1 Y324 F600
|
||||
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X95 F12000
|
||||
|
||||
G1 Y316 F9000
|
||||
G1 Y312 F600
|
||||
G1 Y260 F12000
|
||||
RESTORE_GCODE_STATE NAME=PAUSEPARK2 MOVE=1 MOVE_SPEED=200
|
||||
RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=15
|
||||
BASE_RESUME
|
||||
{% if tool_change == 0 %}
|
||||
ENABLE_ALL_SENSOR
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
M83
|
||||
M106 S0
|
||||
G1 X95 F12000
|
||||
G1 Y324 F12000
|
||||
G92 E0
|
||||
G1 E5 F50
|
||||
G92 E0
|
||||
G1 E50 F200
|
||||
G92 E0
|
||||
G1 E-0.8 F200
|
||||
G4 P300
|
||||
{% endif %}
|
||||
|
||||
M106 S{efan}
|
||||
|
||||
G1 Y318 F30000
|
||||
G1 Y322 F3000
|
||||
G1 Y318 F30000
|
||||
G1 Y322 F3000
|
||||
G1 Y318 F30000
|
||||
G1 Y322 F3000
|
||||
G1 Y324 F600
|
||||
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X58 F12000
|
||||
G1 X78 F12000
|
||||
G1 X95 F12000
|
||||
|
||||
G1 Y316 F9000
|
||||
G1 Y312 F600
|
||||
G1 Y260 F12000
|
||||
RESTORE_GCODE_STATE NAME=PAUSEPARK2 MOVE=1 MOVE_SPEED=200
|
||||
RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=15
|
||||
BASE_RESUME
|
||||
ENABLE_FILAMENT_WIDTH_SENSOR
|
||||
RESET_FILAMENT_WIDTH_SENSOR
|
||||
query_filament_width
|
||||
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1
|
||||
[gcode_macro RESUME]
|
||||
rename_existing: BASE_RESUME
|
||||
gcode:
|
||||
{% if printer['pause_resume'].is_paused|int == 1 %}
|
||||
{% if printer.save_variables.variables.box_count >= 1 %}
|
||||
{% if printer.save_variables.variables.enable_box == 1 %}
|
||||
{% set retry_val = printer.save_variables.variables.retry_step %}
|
||||
{% if retry_val == None %}
|
||||
{% if printer['hall_filament_width_sensor'].Diameter > 0.5 %}
|
||||
RESUME_PRINT
|
||||
{% else %}
|
||||
{% if printer.save_variables.variables.is_tool_change == 1 %}
|
||||
RESUME_PRINT
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if (retry_val.startswith('QDE_004_002')
|
||||
or retry_val.startswith('QDE_004_003')
|
||||
or retry_val.startswith('QDE_004_004')
|
||||
or retry_val.startswith('QDE_004_005')
|
||||
or retry_val.startswith('QDE_004_006')
|
||||
or retry_val.startswith('QDE_004_009')) %}
|
||||
TRY_MOVE_AGAIN
|
||||
{% else %}
|
||||
{% if printer['hall_filament_width_sensor'].Diameter > 0.5 %}
|
||||
RESUME_PRINT
|
||||
{% else %}
|
||||
{% if printer.save_variables.variables.is_tool_change == 1 %}
|
||||
RESUME_PRINT
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if printer['hall_filament_width_sensor'].Diameter > 0.5 %}
|
||||
RESUME_PRINT
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if printer['hall_filament_width_sensor'].Diameter > 0.5 %}
|
||||
RESUME_PRINT
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro BEEP]
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
# Plugins
|
||||
[include timelapse.cfg]
|
||||
[include KAMP_Settings.cfg]
|
||||
[include box.cfg]
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyS2
|
||||
@@ -66,6 +67,10 @@ pause_on_runout:True
|
||||
runout_gcode:
|
||||
RESET_FILAMENT_WIDTH_SENSOR
|
||||
M118 Filament run out
|
||||
{% set can_auto_reload = printer.save_variables.variables.auto_reload_detect|default(0) %}
|
||||
{% if can_auto_reload == 1 %}
|
||||
AUTO_RELOAD_FILAMENT
|
||||
{% endif %}
|
||||
event_delay: 3.0
|
||||
pause_delay: 0.5
|
||||
|
||||
|
||||
Reference in New Issue
Block a user