First you design in a CAD (Computer Aided Design) package. This is something like Carveco, Carbide Create, VCarve or Fusion 360. It can also be Inkscape, Adobe Illustrator, Affinity Designer or CorelDraw.
Then you create toolpaths - e.g. tell the computer what you want to do with all the lines in your drawing. This is CAM (Computer Aided Manufacturing). The first set of CAD packages noted above can do this. The second require a standalone CAM package like Sheetcam. These two steps are independent of the machine that is going to produce the part.
Then you convert the toolpaths to GCode using a post-processor. This is also part of CAM. But the post-processor is used to create GCode that is specific to a production machine - i.e. you can’t use GCode intended for a Shopbot on a OneFinity or vice versa in most cases (different machines that share the same machine controller can often share GCode). The post-processor is a function in the CAM software that is configured using machine-specific post-processor coding. It’s the bridge between the design and the machine. Effectively it needs to “talk” the languages of both the CAD/CAM software and the machine’s control software. That’s why there’s a post-processor file for Fusion & OneFinity just as there is one for Fusion and a Longmill. The output of this step is a file of GCode that is customized for the machine that is going to make the part.
Finally you take the GCode and run it on your CNC machine. This is accomplished through CNC (Computer Numerical Control) software. Most people just call this the control software or app. This is specific to the machine’s hardware controller. There are some generalized software like Mach3 that are used by many machine controllers and there are others that are unique to the machine like OneFinity’s.
Some software can do one or more of these tasks. Typically the design software is also the toolpathing and GCode generation (CAD & CAM) software. Occasionally the software can also be the CNC control software if the controller allows for direct control (DNC) from the CAD/CAM software. OneFinity’s control software is embedded on the Buildbotics controller that is used (although it is not generic Buildbotics control software).
There are other cases where the software is split by function. Like doing design in Inkscape or Adobe Illustrator and then taking the output (SVG files) and using an application like Sheetcam to define the toolpaths and generate the GCode.
So the workflow boils down to this:
Design (CAD) → Toolpath (CAM) → Generate GCode using specific post-processor (CAM) → Manufacture (CNC)
It’s the same for virtually all CNC machines. You get to pick which software to use for any function except the post-processor has to be made for the CAM software & manufacturing machine combination. The CNC software may be either machine specific or more general depending on the machine’s implementation.
Thanks to @JimHatch who wrote this up!