Voron2.4 3D打印机仿拓竹擦嘴实现

ixprism 发布于 2 天前 56 次阅读


大概是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_BASE
gcode:
    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: xyz
set_position_z: 0
gcode:
   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

此作者没有提供个人介绍。
最后更新于 2025-11-17