I get this question a lot: What is a CNC machine?

CNC stands for Computer Numerical Control which at a basic level means you send programming/directions to a computer which in turn tells the CNC which way to move while a router or spindle is turned on to create a physical item. Similar to yelling commands at your kids to clean their room, except the machine actually listens. Using super precise stepper motors, the CNC is able to carve and cut shapes out of a variety of material including wood, plastics, and even metals with extreme accuracy. With the CNC being able to move in three axes, we are able to carve 2.5d images which includes the majority of our projects and designs that we make and sell.

The typical components of a CNC
Computer: Sends programming to the controller
Wasteboard: Material sits on this
Controller: Interprets the commands sent into motion on the CNC
Motors: Moves the router
Rails/Belts/Wheels: Allows the router to move on all axes accurately
Spindle or Router: Carves the material

The first step in any CNC project is the design. The design can be a simple rectangle or a complex 3d object. I personally use a software product called Vectric Vcarve Pro for my design work. I can import 3d object files that I have made or purchased from other designers into the software and make any changes to the size and add text or any other custom changes that need to be made. Once I am satisfied with the design I can create toolpaths based on the task. Some tasks will require different sizes and types of router bits so each job will need a different toolpath programmed. For example, I will use a larger bit to clear away a lot of material fast then switch to a smaller bit to get more details carved. After that I may use a very fine bit to engrave personalized text onto the material. Each of these tasks will require a completely separate toolpath be generated, saved, and ran. Once my toolpaths are created I can generate and save the g-code for that toolpath.

What is G-Code?
The programming that gets sent to a CNC is in the form of a g-code file that is fairly basic and just tells the machine to move in a direction and for what distance. A single project can have many thousands of individual lines of code or only a few lines depending on the design complexity. In my case I have a computer that I use to send the g-code to the controller. I use software (PicSender) to load the g-code file then send the commands to the controller, then watch the CNC do whatever the programming tells it to do. The machine will do exactly what you tell it to do, so if you tell it to drill down 17 miles it will try to do that so it is always important to be prepared to stop a project if the carve gets off track.

Below is a basic example of g-code that is cutting out a simple rectangle. Each line gets sent to the controller one by one and then gets interpreted by the controller which then moves the motors based on the code.

T1
G17
G21
G90
G0Z20.320
G0X0.000Y0.000
S12000M3
G0X55.585Y79.711Z5.080
G1Z-0.423F254.0
G1X209.058F812.8
G1Y177.304
G1X55.585
G1Y79.711
G1Z-0.847F254.0
G1X209.058F812.8
G1Y177.304
G1X55.585
G1Y79.711
G1Z-1.270F254.0
G1X209.058F812.8
G1Y177.304
G1X55.585
G1Y79.711
G0Z5.080
M5
G0Z20.320
G0X0.000Y0.000
M2

If you are interested in how to interpret each line or learn more about g-codes please visit this page: https://makezine.com/2016/10/24/get-to-know-your-cnc-how-to-read-g-code/

Each project could consist of multiple individual jobs that at the end will create a finished carving. Some of my jobs include eight different jobs that I have to run separately in order to create one object. Once the carving is finished there is still a lot of finishing work to be done including sanding and applying a durable finish, but the CNC machine definitely adds detail that wouldn’t be possible by human hands, at least not these hands.