Web Design
CNC Process

CNC Process

How do we get from an idea to a finished part?

Design Phase

It should be clear that we first need a drawing of some sort that describes the shape and its dimensions. The software that is generally used for that purpose is called CAD (Computer Aided Design). The best known program is AutoCAD. There are many other programs.

However, I use Corel Draw which may cause some readers to shake their heads. Corel Draw is not really a CAD program. Then, why do I use it? I have used Corel Draw for more than ten years and have generated thousands of drawings. The drawings ranged from furniture design to templates for etching circuit boards. I know the program in and out and I can whip together a drawing in no time flat because of many years of experience.

I often use many layers in a design, some used just for studying a layout, others for dimensioning, tracing a picture, overlay comments and the like. Now, in view of CNC machining, I can also add a layer with just the shapes to be cut.

Corel Draw strictly uses vectors to describe shapes. That means a drawing can be scaled over wide ranges without distortion or losing details.

Let’s follow the steps that will result in the tray shown below.











TrayDesign3LayerA Layer in Corel Draw was made that contains only the bare curves of the tray.

There is a potentially disastrous problem with shapes that were assembled from various primitive elements. Yes, Corel Draw can join the elements into a single entity. However, that doesn’t mean that the curves are closed which is a prerequisite for the next phase.

Closing a curve in Corel Draw is possible but it can be a tedious undertaking. Basically, one can test for a curve to be closed by selecting AutoClose in the curve editor. A curve will always ”autoclose” but the result may look quit different from what you expect. If that is the case, one has to inspect all nodes of the curve and properly join adjacent nodes.

Three cups of coffee later, you will eventually succeed.

Do not attempt to proceed until all curves are closed

The final step in Corel Draw is scaling the shapes shown on the left to the actual dimension (16 inches in diameter in our example) and turn on the visibility and print flag for that layer only. Don’t worry when the final drawing size exceeds the normal paper size. Then, export the result as a DFX file (AutoCAD file type).

If you use and have the experience with a real CAD program, you will not have to deal with the steps mentioned above.


Tool Path Phase

We now gave a file that contains the drawing as vectors in the DFX format. Again, there are several programs that can translate a drawing into tool paths and generate a file that contains the milling commands. I happen to use CamBam Version 0.9.8. This is software under development and is somewhat experimental. However, it is quite stable and heavily supported by a user forum.

It is beyond the scope of this web page to describe all details by which CamBam generates the CNC code file. We are just going to show some excerpts of the process.

The DFX file has been imported into CamBam and we have selected the quadrants and the center and generated a machining operation to mill out pockets. Numerous parameters such as cutting speed, depth increment and many more are defined.


We then request to generate the tool paths for these shapes.






The last step in CamBam is the generation of the output file, the G-Code text file.

What are G-Codes? They are test strings with simple content. Such a command may as short as G0 X4.3943 Y11.2894 (see example on the left) which means “Go to the X position 4.3942” from the origin and Y position 11.2894” from the origin.

Other commands are a little more complex, containing a command to tell the machine to travel along an arc or drill a hole by spiraling down.

G-Codes are somewhat standardized within the CNC industry.

There is noteworthy detail. CamBam was told that the target machine control software is Mach3. Therefore the G-Codes match the latter software.



Machine Control

The three motor of the CNC router are connected to electronic controllers. The computer is attached to an interface board via a printer cable on its parallel port. The Program Mach3 reads the G-Code file and translates the codes into the series of steps that cause the motors to turn.



Again, there are lots of details that are to be set up before the actual cutting can begin. The three axis have to be zeroed, the motors have to be tuned to the geometry of the drive mechanism.

Apart from the driving of the motors, Mach3 can also monitor the limit switches.

The screens in Mach3 can be customized. Screen elements can be deleted, added and modified. For example, a button can be added and a Visual Basic script can be attached to that button to perform a certain action such as setting the origins with the help of a probe.

I am still exploring this piece of software and I am still looking for the ”Brew a Cup of Coffee” function.

Computer Setup

I have a network of computers that are used for my main activity as a computer consultant. Three of those are involved with the CNC machine. A powerful PC with two large monitors is used for the design (Corel Draw) and the tool path generation (CamBam). The resulting files are stored on a file server PC.

Mach3 is installed on the computer that drives the CNC drives. It retrieves the G-Code files from the file server.

This layout lets me work on the design of parts while the router does its (sometimes very noisy) job in a separate part of my basement. You don’t need three computers but I have the pre-existing luxury of having them.


Building, modifying and testing this machine took about two months and refinements are yet to come. The cost of the project far exceeds that of any other of my shop machines (about $3000). However, my shop’s capability has been greatly enhanced.


[Home] [Initial Observations] [Linear Bearings] [New Construction] [Other Details] [CNC Process] [Project Anatomy] [Sample CNC Cut] [Aztec Calendar] [References]