Wiping filament procedure
-
Is there someone who use a wiping / cleaning procedure for the nozzle ?
I am thinking about a series of zig zag movement over a nylon brush after the probing procedure of the bed and just before the printing process.
I am having some problem with petg that tend to drip off from the nozzle during the print preparation and I have to clean the nozzle by hand all the time.
I am thinking about something like this.heating
sampling bed
extruding some filament in a specific cleaning point
zig zag cleaning
printingcan someone help me doing this?
Andrea
-
This is way more information than you are asking for.
You will primarily be interested in implementing the 3 scripts that automatically get exectued with each tool change. https://duet3d.com/wiki/G-code#T:_Select_Tool and the macros that those reference to move the head to a specific location, and execute wipe moves. Do not try to use my macros verbatim as your machine and wipe zone is going to be drastically different. I think implementing FW retraction is the best way to handle retractions, priming, wiping, and controlling blobs. You do not need to set a M207 for each material as I have so long as you can find some median settings that you are happy with and place somewhere in your slicer generated Gcode or config.g.
One thing I struggled with was figuring out how to retract and unretract after priming. That is why I switched to FW retract. If the machine has already executed one retraction, it will not execute it again until it has unretracted, even if there has been a tool change. Kisslicer places a G10 at the end of every path so when one tool finishes G10 is executed, followed by the scripts executed by the T command. Once the machine is in the wipe zone G11 gets executed in the Tpost, followed by my priming and wiping. Then G10 is issued prior to returning the the normal Gcode script which has the requisite G11 as a new tool is starting to print.
I have my machine pretty well set up with the Gcode tabs and several FW /sys files for automatically changing parameters for materials, retractions, etc. I'm using FW retraction (G10 and G11) coupled with M207. The code sections below look like a lot, but once you get your head wrapped around it and start implementing it begins to make sense. Sometimes you just have to go through and think about the literals of what the machine is going to do, not what you expect it to do.
I have been trying to devise a way to keep my systems more agnostic for each material and such. I think this can be achieved by moving what is currently in my Kisslicer <matl>tab into a /sys file for the specific material. Then using M98 P/sys/materialname.g to reference the specific parameters. Getting temperatures to be properly set may be a slight challenge.
Prefix tab in Kisslicer:
[[language]] ;****Start Up Script******* ; M98 P/sys/Pre-Print.g G10 P <ext>S <temp>R <temp>;Set the temperatures for the first extruder to be used ; ; Cycle through the tools to set the temps properly ; Make sure that the motors are still off at this point so TC scripts are not executed M84 T0 T1 T2 T3 T-1 ; M140 S <bed>; Set Bed/Chamber Temp G28 ; home all macro ; G1 Z15 F1000 ; Move build plate up near nozzles ;M190 S <bed>;Wait for bed to reach target temp G4 S30 M116 P0:3 ; ;***********End Startup Script****************</bed></bed></temp></temp></ext>
M98 P/sys/Pre-Print.g file:
[[language]] ; This file is executed in the Slicer Prefix Gcode using M98 P/sys/Pre-Print.g M84 ;Turn Motors off so tool change scripts are not exectued when initializing temps M140 S85 G10 P0 S220 R30 T0 G10 P1 S220 R30 T1 G10 P2 S270 R225 T2 G10 P3 S270 R225 T3 T-1 ;Reset the Flowrate Multipliers to 100% for all drives M221 D0 S100 M221 D1 S100 M221 D2 S100 M221 D3 S100 ; M220 S100 ;Reset Speed Multiplier to 100% ; M98 P/sys/AccelReset.g ;Accel Reset Macro M42 P7 S255 ; Turn on Vacuum Pump
Select New Ext & Warm Tab from Kisslicer:
The Warm Same Ext, Cool Same Ext, and Cool & Retire Tabs all just reference<matl></matl>[[language]] ;************SELECT NEW EXTRUDER***************** <matl>T <ext+0>;**************END SELECT NEW EXTRUDER***********</ext+0></matl>
A <matl>G-Code tab:</matl>
[[language]] G10 P <ext>S <temp>R <temp>; S Active Temp, R standby temp M572 D <ext>S0.11 ;0.045;0.09-most recent ; Retract Settings S Length, R Extra L ; F Feedrate, T Unretract Rate, Z Z-hop M207 S2 R-0.05 F1980 T780 Z2 M204 P780 T2000 ; Set default acceleration for Print and Travel moves M566 X420 Y480 ; Instantaneous speed delta (mm/min)</ext></temp></temp></ext>
TFree.g file:
[[language]] ; Put G/M Codes in here to run when Tool 0 is going to be freed M98 P/sys/MoveToWipe.g ;Move to wipe zone G92 E0 G1 E-1 G92 E0
I do not use TPre.g right now.
TPost.g:
; Put G/M Codes in here to run after Tool 0 is activated
[[language]] M116 P0 G11 G92 E0 ;Zero the new Tool G1 E25 F87.5 G92 E0 ;G1 E-0.75 F1980 ;Permanently retract some filament to avoid a blob after the too change, while allowing G10/11 to still work properly. ;G92 E0 G10 ;FW retract remember to set M207 in Material GCode in slicer and turn on G10 in FW tab of printer setttings M98 P/sys/WipeMoves.g ;Wipe Moves Macro
Movetowipe.g:
[[language]] ; Macro that move the head to the wipe zone ;G92 E0 ;G1 E-0.5 F1800 ;retract is not necessary if the slicer has it turned on for tool changes which is nice because it also properly unretracts (post purge) when the head gets to the starting point for the new layer. ;No need for a G10 here since the retract and lift is added before the tool change by the slicer G1 X230 Y0 F18000 ; move to front center of machine left of wipe zone G1 Y-75 ; move toward front of machine G1 X440 ; move right into wipe zone G92 E0 ; reset current extruder position to zero
Wipemoves.g
[[language]] ;wipe moves G1 F18000 ;G1 Y-41 F18000 ; move to first row of nozzles ;G1 X230 ; wipe left ;G1 Y-75 ; move front ;G1 X440 ; move right ;G1 Y-28 ; move to middle of nozzles ;G1 X230 ; wipe left ;G1 Y-75 ; move to front ;G1 X440 ; move right ;G1 Y-11 ; move to last row of nozzles ;G1 X230 ; wipe left G1 Y0 X230 ```</matl>
-
Here is what the startup and tool change section of a Gcode file looks like then. The macros take care of the magic not shown here:
[[language]] ; *** G-code Prefix *** ; ;****Start Up Script******* ; M98 P/sys/Pre-Print.g G10 P0 S275 R275 ;Set the temperatures for the first extruder to be used ; ; Cycle through the tools to set the temps properly ; Make sure that the motors are still off at this point so TC scripts are not executed M84 T0 T1 T2 T3 T-1 ; M140 S81 ; Set Bed/Chamber Temp G28 ; home all macro ; G1 Z15 F1000 ; Move build plate up near nozzles ;M190 S81 ;Wait for bed to reach target temp G4 S30 M116 P0:3 ; ;***********End Startup Script**************** ; ; *** Main G-code *** ; ; BEGIN_LAYER_RAFT z=0.175 z_thickness=0.250 ; ; *** Selecting and Warming Extruder 1 to 275 C *** ;************SELECT NEW EXTRUDER***************** G10 P0 S275 R275 ; S Active Temp, R standby temp M572 D0 S0.06 ; ; Retract Settings S Length, R Extra L ; F Feedrate, T Unretract Rate, Z Z-hop M207 S2 R-0.15 F1800 T1800 Z2 ; M204 P2000 T2000 ; Set default acceleration for Print and Travel moves 1800 2250 M566 X950 Y950 ; Jerk speeds mm/minute (instantaneous change) 600 600 100 80 T0 ;**************END SELECT NEW EXTRUDER*********** ; ; ; ; 'Raft Path', 4.1 [feed mm/s], 23.5 [head mm/s] G1 X306.727 Y75.841 Z0.175 E0 F18000 ; trigger prime G11 ; head speed 23.529411, filament speed 4.115942, preload 0.000000 G1 X306.859 Y75.709 E0.03265 F1411.8 G1 X307.255 Y75.313 E0.09793
-
Instead of a brush, take a look at this wiping method: https://youtu.be/E0y7x5uajUM?t=4m18s
Seems better than a brush because it's self-cleaning and wiped filament shouldn't accumulate anywhere except the trash can.
-
Instead of a brush, take a look at this wiping method: https://youtu.be/E0y7x5uajUM?t=4m18s
Seems better than a brush because it's self-cleaning and wiped filament shouldn't accumulate anywhere except the trash can.
A wiper and a steel brush is how Stratasys has been doing this for years. I am using a thin piece of PTFE with a brass brush behind it. I have a bin that catches the purgings. An important part is extruding enough material so that it weighs enough and easily detaches from the nozzle rather than getting bunched up around and stuck to it.