How to 3D Print in FDM: A Step by Step Guide

Curtis Satterfield, Ph.D.
In this article I am going to walk you through printing a 3D model step by step. I will show you and discuss all the important steps in detail.
In order to 3D print a model on an FDM printer follow the steps below:
- Create or download a model to print
- Use a slicer to prepare your model
- Copy your G-Code file to the printer
- Prepare the printer
- Print your model
- Remove the model from the build plate
- Perform any necessary post-processing
In this guide I will walk you through the step by step process of obtaining, preparing, and printing a 3D object. For the article I will be using a tabletop miniature model to demonstrate prints that require supports and I will use a simple XYZ calibration cube to print an object with no supports.
For this guide I am assuming that you have access to a 3D printer and a computer in order to complete the steps. If you are reading this guide and haven’t yet decided on a 3D printer, I will link to recommendations for FDM printers in the article. So, let’s get started!
Create or Download a Model to Print
The first step to 3D printing is having something to print. The first model we will be printing today is a simple XYZ calibration cube that can be used to tune your printer. Using the XYZ cube will allow us to print a simple geometric shape and examine the use of infill in FDM printing.
I will be using this XYZ cube from iDig3Dprinting on Thingiverse. The model is a simple 20 x 20 x 20 mm cube with the sides labelled to make measurements for calibration easier.

Source – iDig3DPrinting on Thingiverse
For the second model I will use a tabletop gaming miniature to demonstrate the use of supports in models. I will be using a Female dwarf warrior model by PollyGrimm on Thingiverse. This model looks great with a ton of detail and will require us to use supports on both the resin and FDM prints.

Source – PolyGrimm on Thingiverse
Ok. First step is to download the models. Find a model you want to print and download the corresponding files. On Thingiverse simply click the “Download All Files” button and you will download a zip file that contains the SLT files, images of the model, license and readme files. Below you can see the files I’ve extracted from the downloaded zip.

The files we need to print are in the “files” folder. Be sure that you extract your files to an easy to remember location on your computer. Now open the files folder to see the stl files. In the image below you can see one of my favorite 3D applications in action. Papa’s Best STL Thumbnail viewer. This windows extension generates a view of all STL files on windows to make looking through your STL files easier. I highly recommend downloading and installing it! You can download it here.

Use a Slicer to Prepare Your Model
First, let’s talk about slicing programs and why you need to use one for 3D printing. When you download or create a 3D model for printing it is stored in a common 3D file format such as an STL or OBJ file. These files allow your computer to read and interpret the information in the file to display the object on your computer screen. However, your 3D printer doesn’t understand how to turn the data from an STL file into a 3D printed object. For that you need to use a slicer to convert the information in your STL file into machine readable G-Code.
G-Code is a language that instructs a machine tool how to carry out tasks. The G-Code tells a motor or motors on a machine where to move, how fast to move, and what path to take. Let’s look at an example. I will slice the 10x10x3mm cube pictured below in Simplify3D.

In the image below I have sliced. I have changed the view to show only the first layer of the printing process.

The first layer of this print was 187 lines of code long. I have chopped out most of the movement G-Code to shrink it down for an image. In the image below … represents a section of code I removed to reduce the code line count.

Once the G-Code file has been generated by your slicer you can transfer it to your 3D printer and begin printing. That is the most basic assessment of what a slicer does and why you need it for 3D printing.
First, we need to import our STL file into our slicer and prepare it to print. I will be using Ultimaker Cura for this guide as it is freely available. If this is your first time running Cura you will need to follow a quick guide and then add your 3D printer to Cura. The standard settings for a printer in Cura are decent, but you will want to tune them at some point to get the best possible prints.
I will be printing on my PrintrBot Play and need to add it to Cura. If this is your first time running Cura and need to add your own printer you can follow these steps.
Click on the printer name in the upper left corner of Cura and on the drop down click Add printer.

Most likely, you aren’t using a networked printer so on the Add Printer dialog box click Add a non-network printer.

Now scroll down the list of printers until you find your printer. If your printer is not listed, you will need to add a custom printer. Luckily for me, my printer is listed so I select it in the list and click Add.

Once you add the printer, Cura will update the slicing settings and the wireframe of the printer bed will change to match the size of your printer.

The wireframe will show you the printable area of your printer. If your model won’t fit into this area, you will not be able to print it. Below is an image of a model that is too large being imported into my PrintrBot profile.

To add your model to Cura click File -> Open File(s)

Browse to the STL file you want to use, select it, and click Open. Cura will then import the STL file and place it on the printer bed.

Now we need to review some settings in Cura before slicing the model. The first setting we want to look at is the layer height. Layer height determines the thickness of each layer (or slice) of the 3D print. The thinner or lower the layer height, the more detailed the model will be. However, the lower the layer height the longer the print will take. We need to find a good balance between printing time and quality.
A .2mm layer height is a commonly used layer height that provides decent quality and speed. We will use .2mm layer height for our cube as I’m more worried about the print speed and not quality on the cube. You can make print settings changes in Cura by clicking on the print settings bar in the upper right.

This will open the print settings menu and allow you to make the changes you need.

I’m quite happy with a .2mm layer height for the test cube so I will leave it at .2mm. Unless you need extremely fine detail .2mm is a great layer height for most prints.
Clicking the arrow next to Shell reveals settings about the wall thickness.

Next up we have infill, which could be an entire article. The simple version is that to save time and filament, the slicer will hollow the model and then infill the interior with a pattern and amount that you determine. The less infill, the faster the print and the less strength it has. The more infill, the stronger the print, but the more time and material it uses. Different infill patterns can serve different purposes and for our case we are sticking with a Grid infill pattern.



The next important setting we have is the Material setting.

The material contains the printing temperature setting. In order to get this setting dialed in you need to print a temperature tower with the filament you are using. Using a temperature tower will show you how your filament prints at multiple different temperatures so you can decide which temperature produces the best finish. Here is an example of a temperature tower I printed for the PLA filament I will be using for the cube print:

Speed is one of the most important settings for getting good prints. Generally, the slower you print the better the overall print quality. However, the slower you print the longer the print takes. We need to find a good balance between quality and speed. Check out my guide to 3D printer calibration to learn more about tuning your printer’s speed.
My speed for the PrintrBot is 50mm/second so I will leave the speed setting alone. I recommend leaving the default setting for your printer if you haven’t calibrated the speed yet.

The Cooling settings allow us to enable the cooling fan for our prints. A cooling fan helps the filament harden quicker as it comes out of the extruder. I have added the setting for setting what layer the fan turns on. You can access this by hovering over the cooling menu and clicking the gear icon that shows up. Cura will then show you more options to add to the menu.

We are going to skip support for this model as we don’t have any need for it. There are no overhands or islands in the print. We will use the support settings with our miniature model.
For Build Plate Adhesion I will use a skirt. I like to use a skirt to help prime the extruder and to remove any oozed filament from the nozzle before the actual model stars printing. I added line count and skirt distance to the menu. I want to make sure the skirt is long enough to properly prime the nozzle, and that it is set off enough from the model that it doesn’t get attached. I prefer doing 2 lines at 4mm distance on my prints.

Finally, I don’t have a dual extruder on my PrintrBot so we can skip that setting.
Now that all the settings are in, we can slice the model! Click Slice on the bottom right of the screen in Cura.


The only settings I am going to change for the miniature are the layer height and support. I want to get more detail out of the miniature model so I will print at .1mm layer height. I will also add support to the model because there are some islands that need to be taken care of. First up, we need to open our model in Cura.

Next, we need to turn on support for the model.

Having made our two changes, we can go ahead and slice our model.

Copy Your G-Code File to the Printer
Another option that I highly recommend is using OctoPrint on a Raspberry Pi. OctoPrint will allow you to connect your 3D printer to the network and remotely control and monitor your printer. OctoPrint also allows you to drag and drop your G-Code files in a web interface. That means you don’t have to retrieve the USB drive or SD card from the printer to copy your print files from the computer. Simply drag and drop your G-Code files into the web Interface. Below is an image showing the OctoPrint web interface:

If you are interested in getting OctoPrint set up for your printer go check out my guide on installing and configuring OctoPrint.
Prepare the Printer
Visually inspect your printer for any problems. Be sure that all the belts are tight, no components are loose or damaged, and any visible wires are not worn or frayed.
Next, inspect the bed for any damage or problems. Clean off the bed of any debris by blowing it off with a can of compressed air or using a small cloth. I like to use Isopropyl alcohol to wipe down the build surface as it helps remove dirt and oils from the build plate.
Inspect your filament to make sure there are no tangles or breaks. If you want to change filaments now is the time.
Once you are satisfied with the state of your printer move on to the next step.
Print your model
Press Print. Now wait for your print to finish. Technically, this is the easiest step, mentally it can be taxing as you (im)patiently wait for your model to finish. Be sure to keep an eye on your printer especially on the first few layers. If something goes wrong you have a chance to stop it before you end up with a bunch of waster filament.
I used OctoPrint for my models so I’ve included a screen shot of the interface during the print.

Remove the model from the build plate
After the print has finished, successfully I hope, you need to remove it from the build plate. The method depends on what material you have printed on. If you printed on a PEI sheet you can remove the sheet and lightly twist it to help break the print free. If you printed directly onto your metal bed you may want to use a tool such as a metal putty knife or similar. There are also specific tools that you can purchase to remove prints from the bed. I use a set of 3D printer removal tools and they have worked well for me, click here to see them on Amazon.
If you have a heated bed be sure to wait until it completely cools down. Once the bed is cool your print should be easy to remove from the plate without much force.
For my PrintrBot play I have a flexible build plate that I can remove and twist to break the print loose. For the calibration cube I was able to pull it off the plate with a little force. For the miniature I removed my removable build plate and twisted it gently. Then I used my build removal tool to gently pry it off. I was much gentler with the miniature as it is more fragile than the calibration cube.
Calibration cube on the build plate:

Sadly, I forgot to take a picture of the miniature on the build plate after printing. However, I do have a picture of the miniature before I removed the supports:

Perform Any Necessary Post-Processing
Alright! The print is done, you’ve removed it from the bed and it’s ready to go! Except there might be a few strands of filament caused by stringing, or maybe the supports didn’t come off so clean. In these cases, you may want to post process your print. Using sandpaper, sanding sticks, and other methods to clean up your print. The step depends on what you intend to use the print for and how well calibrated your printer is. Your print might be ready to go right off the build plate!
There was no post processing needed for the calibration cube it was fine right off the printer. I haven’t included another picture here because the only difference would be the background.
The miniature did require some work. I had to remove the supports which were not as easy to remove as I was expecting. I didn’t get the retraction settings right so there was also some stringing.
Front side of the print:

Back side of the print:

For fun here is a comparison shot of the miniature printed on my PrintrBot compared to the miniature printed on my Elegoo Mars.

So, there we have it. The full step by step guide to printing with your FDM printer! I hope this guide was helpful and I hope you enjoy your new hobby! If you are interested in purchasing a 3D printer, check out my recommended FDM printers here.