3D Printers: CNC Machines by Any Definition
By thinking of 3D printers like any other CNC machine, users can find it easier to adapt to the technology.
Motion control is at the heart of any computer numerical control (CNC) machine. Precise motion could be required for directing a cutting tool to shear material from a metal workpiece, for guiding a laser to pierce sheet metal, for driving an electrified wire to vaporize hardened steel or for countless other applications that require articulated motion. Precise motion control is also at the heart of 3D printing.
3D printers have been around for a long time. With that said, I am surprised by how many people know just a little about them. Frankly speaking, I counted myself in this category until recently, when I purchased one of the many kitted hobby-grade fused filament fabrication (FFF) machines. It has a 0.4-mm nozzle and prints using 1.75-mm plastic filament. It is chirping away next to my desk as I write.
My observations relate best to CNC people who have limited exposure to 3D printing technologies and want to know more. If you fit this category, look online and you will find hobbyist 3D printers priced within just about anyone’s budget. Some kits, like my delta-type, sell for less than $200 and the related software can be acquired for free. I think any CNC person would truly enjoy building and owning one, if only to learn how they work and what they can do.
3D printers are relative newcomers to manufacturing and not traditionally thought of as CNC machines. But like traditional CNCs, most do run from G-code programs. These programs are created with the help of a single-purpose CAM system, though in 3D-printing terms, it is called a slicing program.
For desktop FFF printers, the slicer divides the model into thin layers of 0.05 to 0.3 mm thick, based on required surface quality. The created G-code program first moves the heated nozzle to its initial height above the bed and extrudes a thin bead of material for any part of the model that appears in the first layer. It then moves the nozzle up and does the same for the next layer. It repeats this process for the entire model. For a 100-mm-tall model using a 0.2-mm layer thickness, the slicer will create G code that drives motion for 500 layers. As with any complex-shape metalcutting CNC program, this can make for a very large G-code text file.
The axes layout for 3D printers is identical to a CNC vertical machining center when viewed from the front: X is left/right, Y is fore/aft and Z is up/down.
Metalcutting CNC machines, like mills and lathes, utilize multiple cutting tools for machining a workpiece. The kinds of machining operations performed are numerous and varied, and include hole machining, milling, turning and threading. This demands a great deal from the CAM system used to create the G-code program, and from the programmer who uses it. This programmer must understand the basic machining practices required to develop a workable machining order and to be able to select acceptable workholding methods, cutting tools and cutting conditions.
By comparison, most 3D printers are single-purpose machines. While they may have the ability to work with multiple filament materials and colors, the slicing software that creates the G code does most of the work.
I am probably oversimplifying, but once a 3D model is created, and if it is oriented in an appropriate manner, the slicing software will create the G-code program based on some relatively simple printing parameters. Machining practice decisions are replaced largely by 3D modeling decisions. If you can design a model/workpiece in a 3D CAD system, you can probably print it on a 3D printer.
Though there are exceptions, program execution times for metalcutting CNC applications tend to be relatively short, often well under an hour, and many CNC cycles are completed in just minutes or seconds. Conversely, nothing happens quickly on a 3D printer. Even small models can take more than an hour to print, and larger models take much longer. It is not uncommon for a 3D print to take the better part of a day.
Accuracies realized by metalcutting CNC machines are often measured in microns or ten-thousandths of an inch. In my experience, it seems the best tolerances that can be consistently held by FFF 3D printers are in the 100-micron (0.004-inch) range, even when compensating for material shrinkage during cool-down.
Just as metalcutting CNC machines can machine a variety of materials, FFF 3D printers can create models from a variety of plastic filaments. Even hobbyist-grade 3D printers can work with PLA, ABS and nylon, among several others. Of course, 3D printing technology is not limited to plastic. Direct metal laser sintering (DMLS) machines, for example, can “print” a variety of metallic materials, such as steel, stainless steel, aluminum, Inconel and titanium.
Program transfer for 3D printers is commonly done with SD cards or flash drives. Unlike most metalcutting CNC machines that require programs to reside in the CNC memory before they can be executed, most 3D printers run the G-code program directly from the external memory device. This eliminates the ability to modify the G-code program at the printer, but this is largely a moot point since G-code programs for 3D printers are so easily created by the slicing program. Required changes will be made with the slicer, and a new G-code program is brought to the 3D printer.
CNC people should find it very easy to adapt because they can apply a great deal of what they already know.
Though applied for different reasons on different machine types, all forms of compensation allow the CNC user to allow for unpredictable conditions related to tooling.
It is common to machine several identical workpiece attributes from within a single program. Consider the four identical circular counter-bored holes that must be milled in the workpiece shown in Figure 1.
For the most part, CNC controls will follow the instructions given in a program to the letter. With the exception of basic syntax (program formatting) mistakes, the CNC control will rarely be able to tell if a mistake has been made.