You are on page 1of 8

Computer Aided Manufacturing and Applications

Fused Deposition Modeling: A Comprehensive Guide

Professor: 林裕傑

Student: Diego Correa

ID: F11003106

Date: 15/05/2023
1. Introduction

Fused Deposition Modeling (FDM), also known as Fused Filament Fabrication (FFF) is a
technology developed in 1989 by Stratasys Inc. That enables the production of three-
dimensional objects by extruding hot melted thermoplastic through a nozzle tip onto a platform
to build parts layer by layer. FDM gained attention in many industries due to its low cost and
versatility, it is prominently used for fabricating prototypes of engineering parts at early stages
of development.

Figure 1. A 3D printer nozzle depositing thermoplastic. Source.

2. Working Principle
FDM is an additive manufacturing process where the objects are built one layer at a time by
extruding a thermoplastic filament following a predetermined path defined by a CAD file and
the slicing software. The FDM process starts by creating a 3D object in a CAD software, for
example SolidWorks.

Figure 2. A 3D model of a Creeper made in SolidWorks.

After creating a model, it needs to be converted into printing instructions, or G-code, for the
FDM machine to read, this is accomplished by using a printing slicing software such as
UltiMaker Cura Engine that can “slice” the model into separated layers and transform these 2D
layers into a set of points for the nozzle to move to while extruding the heated filament.
The slicer requires 2 different inputs, the 3D model itself and a set of printing parameters that
tells the machine how the actual printing must be done. The object to be printed from the CAD
software must first be converted into a standardized file format. The most common is Standard
Triangle Language (STL), thus the object from the CAD software first needs to be exported
to .stl format. This can be done in SolidWorks by clicking on File →Save as and selecting STL
as the file format output.
UltiMaker Cura is an open-source, free 3D
printing software that allows to set up the
printing parameters and convert 3D objects
into G-code. After downloading and installing
the software, the printer to be used for the
manufacturing needs to be selected in the
configurations.
With the model in a format the slicer can
support, the next step is to set up the printing
details such as layer height, wall, top and
bottom thickness and number, infill density
and infill patterns, temperature of the nozzle,
printing speed, build plate adhesion type and
Figure 3. Resulting STL file viewed in Paint 3D support.
The 3D model itself can also be partially modified, the position to print, its scale and orientation
can be changed in the software.

Figure 4. The STL file loaded in UltiMaker Cura, the print settings are displayed on the right.

The optimum settings will change depending on the type of 3D printer, material to be used,
and object to be printed. Once the setup is completed, the Slice button on the bottom right is
pressed to initialize the slicing using the CuraEngine slicing algorithm. The resulting kinematics
of the nozzle can be previewed by clicking on the Preview button.

Figure 5. Previewing the motion of the nozzle during the printing.


The vertical and horizontal slider bars change the layer number to preview and the movement
along that layer respectively. The amount of material to be used and the printing time are also
shown. The Save to Disk button displays a prompt to download the G-code file.
G-code stands for Geometry Code, it is a programming language for Computer Numerically
Controlled (CNC) machines like mills, laser cutters, 3D printers, and others. It possesses a set
of commands that the firmware of the machines translates to control the printer’s operation and
the nozzle motion.
Within G-code there also exists M-code which stands for Miscellaneous Code, which is
responsible for setting the fan speed, turning the motors on, setting nozzle temperature and bed
temperature, among others. In summary, G-code controls printer motion, position and paths.
Whereas M-code controls all other functions.

Figure 6. A fragment of the generated G-code.


A total of 47,000 lines of code were generated for this object. The generated G-code shows the
min and max XYZ dimensions of the object, the height of each layer, the length of filament
used and the “flavor” of the G-code. The first line of code shown in Figure 6 refers to the way
the printer’s firmware expects its G-code to be formatted. Different flavors exist due to different
standards that brands use. UltiMaker knows which flavor to use since it asks you to select the
3D printer to be used.
For Marlin firmware, the following is a brief explanation of the code:
M82 → Puts the extruder in absolute mode, meaning that if it calls for 1 mm of filament, it will
not extrude it cumulatively, it will extrude up to 1 mm only, independent of any previous
commands.
G21 → Sets position units to mm.

G90 → Sets an absolute coordinate system.

M107 → Shuts down the fan of the index selected.

M140 → Sets a target temperature for the bed of the 3D printer and starts to heat it.

M104 → Sets a target temperature for the printer’s hot end and heats it.

M190 → Waits for the bed to get to the desired temperature before executing other lines.

M109 → Waits for the printer’s hot end to reach the desired temperature.

G28 → Printer finds its origin (0, 0, 0) coordinates.

G1 → Linear movement from one point to another. F is the linear speed, XYZ are the
coordinates. The E parameter is the amount of filament to extrude, in this case, the extruder is
in absolute mode.
G92 → Sets offset from home position.

M204 → Sets starting acceleration

M205 X Y → Sets maximum jerk in the X and Y axes.

G0 → Rapid movement command, it does not lay down any filament while moving.

There are many more commands in the G-code library but these are the essentials and the ones
shown in the fragment code in Figure 6.
Now that the instructions for the printer are ready, we need to use an external memory to transfer
the G-code from the computer to the printer’s disk. In the FLSUN V400 it is possible to transfer
the code directly from the computer via Wi-Fi.
All 3D printers need to connect the software (The code) with the hardware (motors, sensors,
among others). This is done by using what is called Firmware. For 3D printers, the firmware is
stored on the machine’s mainboard, it is in charge of parsing G-code files, regulating
temperature and controlling the motion of the printer. Marlin is considered today’s most popular
firmware package, but there are other alternatives such as Klipper firmware. The main
difference with Klipper firmware is that it utilizes an additional computer board to make a pre-
calculated plan for the G-code commands, so your printer only needs to carry out the commands,
not calculate them. This lowered the effect of processing time and improved printing
performance, specially for printers that used an 8-bit mainboard.

Figure 7. Klipper makes use of an extra computer board to perform the calculations, the 8-bit computer only
carries out the commands. Source.

Essentially, when you pass the G-code to the 3D printer, the firmware will parse it and will
control the sensors, the heater temperature, and the motion of the motors to carry out the
commands given.
If the printer is new and has not been used before, it first needs to be calibrated.
In the FLSUN V400 this is done by clicking:
Configuration → Bed Level → Calibrate.

The printer will probe 7 points on the


bed to check for any misalignment of
the bed. It will store the misalignment
in its memory and perform an offset
when moving the 3D printer head for
better accuracy. After that, a bed mesh
calibration can be performed to probe
29 points on the bed, to increase the
amount of data points.
Figure 8. An FLSUN V800 probing points on the bed.
Source.
After that, an auto-bed leveling sensor can be used to get another offset the Z-axis needs by
using the Z Calibrate.
Having performed the calibration
correctly, the material now needs to
be inserted in the spool holder and the
filament is to be ran through the
filament sensor, and pushed against
the gears in the nozzle until they grip
the filament.
Everything is now ready to print our
object, we just need to find it in the
storage device used and then click on
Print.
Figure 9. Bed level screen. Source.

Figure 10. The device is ready to print. Source.


3. Results and Conclusion
After the object is printed, the magnetic plate on top of the bed is to be removed and
wiggled around to allow for the object to easily come off.
The resulting 3D print has a high accuracy and the surfaces are smooth enough, the
supports created for the object need to be removed, which is easily done with a small
cutter.
In conclusion, FDM 3D printing is a precise
and versatile way to manufacture prototypes
and various artistic designs with a wide range
of materials.
It is an essential tool for manufacturers,
designers, and engineers. Whether using a
traditional cartesian FDM printer or a more
advanced Delta 3D printer, FDM technology
continues to push the boundaries of
accessibility and flexibility.

Figure 11. Final result on the bottom.

You might also like