We continue with 3D printing. After having seen some posts about the Anycubic i3 Mega, it’s time to get into the nitty-gritty and start properly with the tutorials with a basic guide to 3D printing.
In this post we will see the general process of 3D printing. It will also serve to introduce some of the terms that will appear as we get into the world of 3D.
It is important to note that, in reality, our domestic 3D printer is a relatively “dumb” machine that only knows “go to such position” and “deposit such material”. It has no more logic or intelligence.
Therefore, there is a whole process from when we have the idea until we have the piece manufactured, with various stages involved. In broad strokes, the process of like the one we are going to use, follows the following diagram.
Seems like a lot of fuss? Well, in reality it’s a fairly simple process. Once we have done it a few times, we will have completely lost our fear of it, and we will be able to do it with our eyes closed.
In the following posts, we will see in detail each of the parts that make up the process. But for now, let’s get the engines running by taking a global look in this basic guide to the introduction to 3D printing.
It may sound a bit romantic, but in most cases the process starts with your idea. It can be a necessity, a crazy idea, a design for a doll, a replacement for a broken piece.
Of all the things you can do with a 3D printer, the most fun, interesting, and rewarding projects you will print are the ones that come from your own head.
Having a 3D printer gives you enormous freedom to make your own parts. And not only conventional parts, 3D printing opens the door to parts that are almost impossible to manufacture by other methods, and at a very reduced price.
So you know. Take advantage of it, and enjoy it!
3D drawing program
Ideas are very nice, but printers don’t print ideas. You will need to draw it in 3D and for that you will need a 3D drawing program.
There are a large number of 3D drawing programs available. We will frequently use a CAD program (so to speak, the most “technical” branch of 3D drawing), but there are other alternatives such as mesh modeling or sculpting tools.
In CAD programs, as we say, the most used type of program for drawing your idea, we have many commercial alternatives (SolidWorks, SolidEdge, Inventor), some free for educational use (Fusion 360) and even Open Source (FreeCAD).
In general, drawing programs each use their own file type, and our printer is not capable of reading them. Therefore, it is necessary to export to a common format that is understood by the following steps of the process.
Export to STL
The common format that we will most use is STL (Standard Triangle Language), created by the company 3D Systems for the rapid prototyping industry.
As the name suggests, the STL format saves triangular meshes. But CAD programs normally work with curves and surfaces represented mathematically, with an (almost) infinite precision.
Therefore, during the export, the CAD software must convert these perfect curves and surfaces into polygons and triangles.
Here we have a compromise between file size and precision. If we want the approximation to be very precise, we will need millions of triangles and the file will weigh a lot, making its subsequent processing difficult. If, on the other hand, we use a very low number of triangles, there will be a big difference between the polygonal approximation and the curves.
Alternative: Download STL from the Internet
A very common alternative to drawing our own 3D file is to download a design directly from the Internet, created by the community of users and freely available, of course.
With the rise of 3D printing, there are many web platforms where users share their designs, already in STL format, with the rest of the users. Surely the most well-known is Thingiverse, although there are others like Github, TinkerCAd, Pinshape, Yeggi, 3dmag.
Downloading STL files is a great way to get ready-to-print models. Because, and I’ll get romantic again, if having an idea is very good, a community of users sharing ideas is unstoppable.
We already have our triangulated 3D model in STL format, either because we have drawn our file and exported to STL, or because we have downloaded one directly from the internet.
But our 3D printer still doesn’t understand this 3D model. As we have said, it only understands paths and positions. How do we convert our STL into something that our printer can understand?
This is where the Slicer program comes in, which in Spanish would be translated as a “slicing” program, and is one of the most important parts of the 3D printing process.
The function of the Slicer is to divide our 3D object into layers at different heights, which is what we will actually have when printing the piece. For each layer, it calculates the paths that the print head must follow to perform the print.
The Slicer performs all the “heavy” printing calculations. It takes into account the parameters of our printer and the filament, which we must adjust carefully. These parameters will largely determine the quality of our piece.
In addition, the Slicer has other additional functions, such as defining the size and orientation of the piece, dividing or grouping objects, or printing multiple objects in a single process.
There are many Slicer programs. Perhaps the most well-known is Ultimaker’s Cura, which is Open Source. Other Open Source Slicer software includes Slic3r or IdeaMaker, (among many others), and there are also proprietary (paid) software such as Simplify 3D, Netfabb.
Generate the GCode
The result of the Slicer’s calculation is a GCode file. The GCode file is a text file format widely used in CNC machines.
If we edit the GCode file, we will see thousands and thousands of lines that look like this: G1 X95.622 Y93.385 E0.06435 G1 X96.148 Y93.098 E0.09425 G1 X97.089 Y92.652 E0.1462 G1 X97.687 Y92.413 E0.17833 G1 X98.608 Y92.199 E0.2255 These are the movement instructions and coordinates to which the 3D printer head must move to print our piece. The GCode has commands to move the head in X, Y, Z, extrude a certain amount of filament, change the temperature… the whole program to print the piece.
The GCode can be interpreted by our 3D printer. But we still have to take it from the computer to the 3D printer. We have several options.
Use an SD card, or USB
The first and simplest option for moving the GCode to our printer is to use an SD card or a USB memory. Most printers have one or both options, and can autonomously print the GCode file we input.
It may seem very cumbersome to have to go back and forth with a card, but in reality, it is a very employed, simple, and convenient option.
Use 3D printing Host
Another slightly more advanced option is to use a 3D printing Host, that is, a computer connected to the 3D printer via a USB port that controls the printing process at all times.
There are specific programs for 3D printing Hosts, with the most famous being Octoprint, Astroprint, or Repetier Server, which can be run on a mini PC like a Raspberry Pi.
In addition to being able to send GCodes by Wifi to our 3D printer, having a 3D printing Host has additional advantages, such as integrating the Slicer software, real-time 3D print monitoring, or visualizing the process with a webcam.
Whether by a mini SD card, a USB memory, or by a Host, we already have the GCode file in our printer! But how does our printer convert that pile of lines with coordinates into a printed piece?
It’s time to briefly see how the printer works, although we will see each part in more detail in the next posts.
Parts of the printer
Very briefly, our printer has a structure (base, bridge, bed), mechanical parts (motors, pulleys, etc.), and an electronic part. The electronic part is the brain of our printer.
The electronic part is usually based on a board similar to or derived from an Arduino. This board controls the movement of the motors and makes them follow the instructions of the GCode.
Of course, to do its job, the electronic board has to execute a program (and not a small one, precisely). This is where the firmware comes in.
The firmware is the software that runs the electronics of your 3D printer, the “intelligence” of your printer. The firmware takes the GCode and is responsible for executing the actions that appear in it.
The firmware controls all the components of the 3D printer. But, it can also make modifications such as limiting the speed or acceleration of the print head.
It should not surprise us that there are also several firmware for printers. The best known is Marlin and many others are derived from or based on it. Marlin, in turn, is based on Sprinter and Grbl.
Other examples are MK4duo, Sailfish, Repetier-Firmware, or RepRap-Firmware. Most are Open Source, so we can even make modifications ourselves.
We can overwrite or update the firmware of the printer, but not all firmware are compatible with all printers. In general, we should only touch the firmware if we know what we are doing.
And we have finally reached the end! If the whole process has gone correctly, we will have a printed piece (or several). If it has not gone correctly, we will have a plate of plastic spaghetti.
This is, in summary, the general idea of the 3D printing process. In future posts, we will delve into each of the points we have seen, learn to design parts, and common mistakes and how to fix them. See you soon!