Mark Wheadon has invented a wonderful technique to place patterns in 3D printing he calls Velocity Painting. Normally, when printing a pattern by slicing a model, the printer will use extra layers to print the design. Mark’s technique post processes the GCode generated after slicing a model. It applies an image to the model by adjusting the speed of the print head where the image intersects the model. Check out his explanation, photos and code. My theory is that it works as follows: Technically, the printer should deposit the same amount of material over a given vector, regardless of speed. However, in reality the quick speed change does not give enough time for pressure to increase or decrease in the print head and so it over or under extrudes after the speed change.
Using the same intersection method, I’ve adjusted his technique and created a new process to do Extrusion Painting. Instead of adjusting the speed to paint the picture, my code adjusts the extrusion. By pushing out more or less plastic during the print a design can be added. I believe this method will provide more control over the process. In fact, an ideal process may actually use a combination of two adjusting both the speed and the extrusion.
It is a single wall cube. I’ve increased the extrusion by 5X in the smiley so the design is 3D. If you had a model with this design baked in, the best a slicer could do would be to add an extra perimeter to draw the pattern. Instead, this maintains a single perimeter but pushes out more plastic for the pattern. This was sliced with a thickness of 0.48mm and printed at a constant 100mm/s.
I’ve tried 8 different GCode viewers but the only one that showed extrusion thickness was matter control.
Next, I will try to underextrude the design which should create a pattern similar to the vases Mark created. Another improvement would be to anti-alias the pattern by ramping up and down the extrusion rather than the sudden change. With a quick change and high pattern extrusions, the extra plastic is dragged along the print. Reducing the extrusion of both the thick and thin parts may eliminate that too (I used 5X!).
Mark’s code was in Perl but I don’t know Perl so I’ve translated the code to Python and modified it to do the Extrusion Painting. The code is available on GitHub.