1 / 3
Q1 Pro Filament cutter — image 1
1 / 3

Q1 Pro Filament cutter

Order a print of this model

We calculate the final price from your selected file. You review and accept it before payment.

Saved on this device.

Filament cutter between feeder and hotend

Rating
5 / 5
Likes
27
Downloads
84
Makes
0
Views
801
Reviews
1

Updated at source:

Model information

License
Creative Commons — Attribution — Noncommercial


Video:

To assemble, you will need:

Spring 0.5X9X15 - 4 pcs
Knife 36x6x6- 1 pcs
Screw M2.5х25 - 2 pcs
Screw M3x6 - 2pcs
Screw DIN965 M2x6 - 1pcs
Brass threaded insert M3x5x5 - 6 pcs
Brass threaded insert M3x4x4.2 - 2 pcs
Brass threaded insert M2x3x3.2 - 1 pcs

Assemble:

Blade:
  • Trim the blade using one of the templates.
  • Press the brass threaded insert M2x3x3.2 into place.
  • Insert the trimmed blade into the blade holder.
  • Secure the blade with a DIN965 M2x6 screw.
Feeder:
  • Install the brass threaded inserts M3x5x5 around the perimeter, following the same pattern as the original feeder.
  • Install the brass threaded inserts M3x4x4.2 into the hotend mounting points, following the same pattern as the original feeder.
  • Connect the two 0.5x9x15 springs together.
  • Insert the spring and the blade into their designated places.
  • Compress the spring and blade using the lever and secure them with an M2.5x25 screw.
Pusher:
  • Install the brass threaded inserts M3x5x5 into the outer hole.
  • Connect the two 0.5x9x15 springs together.
  • Insert the spring, push rod, and bushing into the push rod housing.
  • Screw the M2.5x25 screw into the bottom of the push rod housing.
  • Secure the assembly to the printer frame using two M3x6 screws.

Macros:

Macros for editing are in gcode_macro.cfg

Modified macro for automatic unloading of the filament from the touch screen

[gcode_macro M603]
description: unload filament
gcode:
    M118 Heat up complete
    G92 E0
    #############FILAMENT_CUT##############
        FILAMENT_CUT unload=1
    #######################################
    # G0  E15 F400
    # G4  P1000
    # G92 E0
    # G1  E-90 F800
    M400
    M118 Filament unloaded

Modified pause macro for automatic cutting of the filament when changing the color from the slicer

[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
    {% set z = params.Z|default(35)|int %}                                                   ; z hop amount
    {% set cut_filament = params.CUT_FILAMENT|default(0)|int %} # 0 = false, 1 = true
{% if printer['pause_resume'].is_paused|int == 0 %}    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z}                              ; set z hop variable for reference in resume macro
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target}    ; set hotend temp variable for reference in resume macro

    DISABLE_FILAMENT_WIDTH_SENSOR
    SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0                                             ; disable filament sensor      
    SAVE_GCODE_STATE NAME=PAUSE                                                          ; save current print position for resume                
    BASE_PAUSE                                                                           ; pause print
    G92 E0
    G1 E-5 F1800
    {% if (printer.gcode_move.position.z ) < z %}
        G91                                                                              ; relative positioning
        G1 Z{z} F900                                                                     ; raise Z up by z hop amount
    {% else %}
        G91                                                                              ; relative positioning
        G1 Z{5} F900
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
    {% endif %}
    #############FILAMENT_CUT##############
    {% if cut_filament %}
        FILAMENT_CUT unload=1 need_homing=0
    {% endif %}
    #######################################
    SAVE_GCODE_STATE NAME=PAUSEPARK2
    G90                                                                                  ; absolute positioning
    G1 X97 F9000
    G1 Y253 F9000                                     ; park toolhead at front center
    SAVE_GCODE_STATE NAME=PAUSEPARK                                                      ; save parked position in case toolhead is moved during the pause (otherwise the return zhop can error)
    M104 S0                                                                              ; turn off hotend
    SET_IDLE_TIMEOUT TIMEOUT=86400                                                       ; set timeout to 24 hours
    SET_STEPPER_ENABLE STEPPER=extruder enable=0
{% endif %}</code></pre><p>Filament Change G-code</p><pre><code class="language-plaintext">;ROD_CHANGE

PAUSE cut_filament=1

Macro for automatic filament cutting

[gcode_macro FILAMENT_CUT]
gcode:
    {% set cut_speed = params.CUT_SPEED|default(1000)|float %}
    {% set speed = params.SPEED|default(7800)|float %}
    {% set cut_temp = params.CUT_TEMP|default(180)|float %}
    {% set unload = params.UNLOAD|default(0)|int %}  # 0 = false, 1 = true
    {% set need_homing = params.NEED_HOMING|default(1)|int %}  # 0 = false, 1 = true

{% set initial_temp = printer.extruder.temperature %}

{% if printer.extruder.temperature &lt; cut_temp %}
    M104 S{cut_temp}
{% endif %}


{% if need_homing %}
    G28 X Y
{% else %}
    {% if "x" not in printer.toolhead.homed_axes %}
        G28 X
    {% endif %}
    {% if "y" not in printer.toolhead.homed_axes %}
        G28 Y
    {% endif %}
{% endif %}
G90

{% if printer.extruder.temperature &lt; cut_temp %}
    TEMPERATURE_WAIT SENSOR=extruder MINIMUM={cut_temp}
{% endif %}

G1 X20 Y205 F{speed}
G1 X20 Y245 F{speed}
M83
G1 X-5 Y245 E-0.8 F{cut_speed}
G1 X20 Y245 E1.0 F{cut_speed}

{% if unload %}
    G1 X20 Y180 E-22.5 F{speed}
{% else %}
    G1 X20 Y205 E-2.5 F{speed}
    G1 X20 Y180 F{speed}
{% endif %}


{% if initial_temp &lt; cut_temp %}
    M104 S0
{% endif %}</code></pre>

Tags