1053 字
5 分钟
Voron2.4 3D打印机仿拓竹擦嘴实现
大概是23年做的,当时P1S刚出
此段用于开始打印前
[gcode_macro PRINT_START]gcode: {% set bedtemp = params.BED|int %} #设置热床温度 M109 S150 M140 S{bedtemp} BED_MESH_CLEAR G28 #归位所有轴 WIPE_NOZZLE QUAD_GANTRY_LEVEL G28 Z {% set bedtemp = params.BED|int %} #设置热床温度 {% set hotendtemp = params.EXTRUDER|int %} #打印头温度 M190 S{bedtemp} M109 S{hotendtemp} BED_MESH_PROFILE LOAD=default #CALIBRATE_Z #G28 G92 E0; #重置挤出 # Draw Line G90 G0 X110 Y0 Z0.2 F9000 # Move to start position G92 E0 # Reset Extruder G1 E10 F600 # Extrude a little G1 X10 E20 F1000 # Draw line G92 E0 # Reset Extruder G91 # relative positioning G0 X50 F18000 # Wipe line 1 G0 X-40 F18000 # Wipe line 2 G0 Z5 F1000 # Raise nozzle G0 Y5 F1000 # move nozzle away a little G90 #M221 S96用于擦嘴
[gcode_macro WIPE_NOZZLE]gcode: {% set WIPE_TEMP = 220 %} {% set MIN_TEMP = WIPE_TEMP - 30 %} {% set ACTUAL_TEMP = printer.extruder.temperature %} {% set TARGET_TEMP = printer.extruder.target %} {% if TARGET_TEMP < WIPE_TEMP %} { action_respond_info('Extruder temperature target of %.1fC is too LOW, heating to %.1fC' % (TARGET_TEMP, WIPE_TEMP)) } #温度判断 M109 S{ WIPE_TEMP } {% endif %} G90 G0 X180 Y258.5 F9000 # Move to start position G0 Z-1 G1 X230 F6000 # Extrude a little G1 X180 F6000 # Draw line G1 X230 F6000 # Extrude a little G1 X180 F6000 # Draw line G1 X230 F6000 # Extrude a little G1 X170 F6000 # Draw line G1 X230 Z1 F6000 # Draw line M106 S255 M104 S150 G0 X125 Y258 G0 Z0.5 F20000 G0 X125 Y257 Z-1.01 G0 X131 F211 G0 X124 G0 Z0.5 F20000 G0 X125 Y258.5 G0 Z-1.01 G0 X131 F211 G0 X124 G0 Z0.5 F20000 G0 X125 Y258 G0 Z-1.01 G0 X131 F211 G0 X124 G0 Z0.5 F20000 G0 X125 Y258.5 G0 Z-1.01 G0 X131 F211 G0 X124 G0 Z0.5 F20000 G0 X125 Y257 G0 Z-1.01 G0 X131 F211 G0 X124 G0 Z0.5 F20000 G0 X125 Y258 G0 Z-1.01 G0 X131 F211 G0 X124 G0 Z0.5 F20000 G0 X125 Y257 G0 Z-1.01 G0 X131 F211 G0 X124 G0 X128 G2 I0.5 J0 F300 G2 I0.5 J0 F300 G0 Z1 G1 X210 Y258.5 F6000 # Extrude a little G1 X185 F6000 # Draw line G1 Y240 Z10 M106 S0 #M221 S96打印结束后打印头归位
[gcode_macro PRINT_END]gcode: M400 ; 等待当前移动完成 G92 E0 ; 设置挤出机相对坐标0 G1 E-10.0 F3600 ; 挤出机回抽10mm G91 ; 设置相对坐标系 G0 Z1.00 ; Z轴抬升1mm G90 ; 设置绝对坐标系 G0 X125 Y250.0 F20000 ; 移动至X125 Y20 TURN_OFF_HEATERS M107 ; turn off fan BED_MESH_CLEAR #M84用于取消打印
[gcode_macro CANCEL_PRINT]rename_existing: CANCEL_PRINT_BASEgcode: M400 ; 等待当前移动完成 G92 E0 ; 设置挤出机相对坐标0 G1 E-10.0 F3600 ; 挤出机回抽10mm G91 ; 设置相对坐标系 G0 Z1.00 ; Z轴抬升1mm G90 ; 设置绝对坐标系 G0 X125 Y250 F20000 ; 移动至X125 Y20 TURN_OFF_HEATERS M107 ; turn off fan BED_MESH_CLEAR #M84 CANCEL_PRINT_BASE用于加载与卸载耗材
[gcode_macro LOAD_FILAMENT]gcode: M83 ; set extruder to relative FORCE_MOVE STEPPER=extruder DISTANCE=5 VELOCITY=5 [ACCEL=100] {% set LOAD_TEMP = 250 %} {% set MIN_TEMP = LOAD_TEMP - 10 %} {% set ACTUAL_TEMP = printer.extruder.temperature %} {% set TARGET_TEMP = printer.extruder.target %}
{% if TARGET_TEMP < LOAD_TEMP %} { action_respond_info('Extruder temperature target of %.1fC is too LOW, heating to %.1fC' % (TARGET_TEMP, LOAD_TEMP)) } M109 S{ LOAD_TEMP } {% endif %} G1 E60 F1800 ; load G1 E60 F500 ; prime nozzle with filament G1 E-5 F3600 M82 ; set extruder to absolute TURN_OFF_HEATERS
[gcode_macro UNLOAD_FILAMENT]gcode: M83 ; set extruder to relative {% set LOAD_TEMP = 250 %} {% set MIN_TEMP = LOAD_TEMP - 10 %} {% set ACTUAL_TEMP = printer.extruder.temperature %} {% set TARGET_TEMP = printer.extruder.target %}
{% if TARGET_TEMP < LOAD_TEMP %} { action_respond_info('Extruder temperature target of %.1fC is too LOW, heating to %.1fC' % (TARGET_TEMP, LOAD_TEMP)) } M109 S{ LOAD_TEMP } {% endif %} G1 E20 F500 G1 E80 F300 M82 TURN_OFF_HEATERS优化无限位归零
[homing_override]axes: xyzset_position_z: 0gcode: G90 G0 Z5 F600 {% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}
{% if home_all or 'X' in params %} _HOME_X {% endif %}
{% if home_all or 'Y' in params %} _HOME_Y {% endif %}
{% if home_all or 'Z' in params %} _HOME_Z {% endif %}
[gcode_macro _HOME_X]gcode: # Always use consistent run_current on A/B steppers during sensorless homing {% set RUN_CURRENT_X = printer.configfile.settings['tmc2209 stepper_x'].run_current|float %} {% set RUN_CURRENT_Y = printer.configfile.settings['tmc2209 stepper_y'].run_current|float %} {% set HOME_CURRENT = 0.5 %} # replace the XX with a current value that is about 70% less than your run_current value for X and Y SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CURRENT * RUN_CURRENT_X} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CURRENT * RUN_CURRENT_Y}
# Home G28 X # Move away G91 G1 X-10 F1200
# Wait just a second… (give StallGuard registers time to clear) G4 P1000 G90 # Set current during print SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y}
[gcode_macro _HOME_Y]gcode: # Set current for sensorless homing {% set RUN_CURRENT_X = printer.configfile.settings['tmc2209 stepper_x'].run_current|float %} {% set RUN_CURRENT_Y = printer.configfile.settings['tmc2209 stepper_y'].run_current|float %} {% set HOME_CURRENT = 0.5 %} # replace the XX with a current value that is about 70% less than your run_current value for X and Y SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CURRENT * RUN_CURRENT_X} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CURRENT * RUN_CURRENT_X}
# Home G28 Y # Move away G91 G1 Y-10 F1200
# Wait just a second… (give StallGuard registers time to clear) G4 P1000 G90 # Set current during print SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y}
[gcode_macro _HOME_Z]gcode: G90 G1 X125 Y125 F20000 G28 Z G1 Z30