Flow, Feed-rates and Stringing



A potentially confusing area when setting up prints with Silkworm is the amount of plastic that needs to be flowing through the extruder in order to get a desired thickness of printed line.  This post is meant to illuminate the principles and calculations involved in this, as well as develop how you can use this understanding to better control the materiality of the printed object.



GCode Illustration-01

Sample G Code

G Code offers an instruction to the printer’s motors to move to a specific coordinate and maybe do something while it is moving.

Movement Illustration-01

The plastic flow of your extrusion refers to the amount of plastic being moved through your extruder over the course of a movement from one point to another.  In Rep Rap G Code, this flow is measured as the millimetre length of plastic filament being pulled into the extruder from your spool (the E value above).  Because of this all the calculation for plastic flow is left to the software or user creating the G Code.

Untitled drawing (1)


In order to calculate the amount of plastic being pushed out of the end of the nozzle, and thus the thickness/ height of the line of plastic being printed, it is important to note the shape of the forces acting on the molten plastic (see illustration below).  These forces cause an irregular shape to be produced.  The calculation to find the amount of plastic needed to produce a given width of printed line needs three parameters, filament diameter, nozzle diameter and layer height of the print.

Cross Sectional Flow forces

This diagram shows the cross section of an extruded line.  A length of plastic filament coming into the extruder assembly (which is the length that the G Code counts) is pulled through the heating element and extrudes through a nozzle which is smaller than the diameter of the filament.  When it comes out of the nozzle there is another set of calculations that can help us understand how the geometry is determined, and how to control the output.

Here are some calculations and principles from Josef Prusa (you can find the explicit calculations in the source code, Ctrl+U):

  • Layer Height (LH) = height of each printed layer above the previous
  • Line Width (LW) = width of extruded line
  • Width Over Height (WOH) = line width/ layer height
  • Free Extrusion Diameter (extDia) = nozzle diameter + 0.08mm
  • Line Width (LW) = LH ×WOH
  • Free extrusion cross section area (freeExt) = (extDia/2)×(extDia/2)×π
  • Extruded line cross section area (extLine) = LW ×LH
  • Suggested bridge flow-rate multiplier = (freeExt*0.7)/extLine


  • WOH smaller than 2.0 can produce weak parts
  • WOH bigger than 3 decreases the detail of printed part, because of thick line
  • Minimal extrusion cross section area for stable extrusion (minExt) = freeExt×0.5

You can reverse engineer some of these calculations to understand a few basic principles.  Basically everything is driven by the choice of layer height and line width.  Layer height primarily affects the smoothness of solid elements and adhesion to plastic beneath (large layer heights will create potentially brittle prints).  Line width can determine the accuracy of detail in solid printing, but it is important to have a thick enough line to adhere to neighbouring lines if a solid surface is to be achieved.  The difference between free extrusion cross section area calculation and extruded line cross section area calculation is that the first is a cross section through the plastic as it is free falling from the nozzle (i.e. a cylinder), and the second is a cross section through the plastic as it is being extruded onto a surface below it (i.e. a squashed cylinder, see diagram above).

To calculate how much ingoing filament is required for a given layer height to achieve a specific line width we need to first do the calculation as areas.  If is the amount of filament going in (which we want to calculate):

Filament cross section = x multiplied by filament diameter

Extruded (squashed) cross section = layer width multiplied by layer height

Ratio of extruded plastic to filament= nozzle diameter divided by filament diameter

Thus we can find that cross section area of = extLine (LW ×LH) multiplied by the above ratio

and will then be that divided by the filament diameter




Movement Illustration-01


The feed-rate (the F value above) of a movement in G Code is the speed (measured in mm/s) that the motors of the printer move all together.   Thus it is the speed at which the printer will move to a coordinate and/or extrude or retract plastic.


As you can see from these two prints; the feed-rate of the movement, which varies as the extruder moves around the curves, when set against a constant flow rate, will stretch the plastic at higher speeds.  This created the effect of very delicate strands of plastic, but because the plastic is a continuous strand, it still retains a certain amount of material strength and springiness.




Taking flow and feed-rates one step further, stringing is the act of creating strands without any plastic flow.  Usually regarded as an error in the print, the diagrams below demonstrate how it is achieved with changes in nozzle chamber pressure:

Delimiter Pressure-01

In Silkworm the chamber pressure of the nozzle, as well as the start and end vectors for a particular movement, can be controlled through the use of Delimiters:


The Delimiter allows complete control over the start and end conditions of a movement, and the connecting, non-extruding movements between extruding movements.  By specifying a different chamber pressure at the beginning or end, it is possible to created specific stringing and warping effects in the material product.


An Example of flow change and stringing used to create irregular patterns in a non-structural print wall.

Clay Printing – First Steps

Printing with Clay?

Among other things, we have been looking at getting started with clay printing on DIY 3d printers here on Project Silkworm.   This is quite an exciting area for 3d printing because it relates to both the large and smaller scales of fabrication.

Ceramic 3d Printing by Brian Peters

Unfold Fab

The attraction of clay printing is in its potential to print with materials that have a deeper association with craftsmanship and construction.  One could imagine being able to print out pottery, sculptures and even bricks and larger scale pieces of construction:


Concrete Printing Process developed at Loughborough University



Approaches to Paste Extrusion

The principles behind printing with clay are similar to fused deposition printing with plastic, the main difference is a lack of need to heat the material to make it and the method of pushing the material into the extruder chamber.  The Rep Rap wiki page documents different ways of accomplishing this.   The most straightforward methods seem to be variations on a plunger mechanism to push the clay out of the end of the nozzle.  Unfortunately this method has some major drawbacks, not in the least the fact that the syringe has to be quite a few times larger than the object it is printing (depending on geometry).

A more economical method is to attach a pipe to a container of clay paste and pump the clay through the pipe into the nozzle.  The main principles of printing with paste seem to be getting a consistent pressure acting on paste, pushing it out of the nozzle.  Unfold Fab’s blog has some really good documentation of experiments for this method.


Road to better paste extrusion, episode 1


Road to better paste extrusion, episode 2





Examples you can try out yourself

The great thing about Rep Rap and derived systems is hack-ability   You can see something interesting that someone else is doing, locate the files and try it out yourself (and print out most of the parts 🙂 ).  I thought I would put together a series of examples that you can try out on your own machines and join in the development.  Over the next few months we will be attempting to use Silkworm with some of these and try and push the development of new digital craft within a material long associated with craftsmanship: