CNC applications provide a user interface for the control of a Mill, Lathe or other machine. They typically do motion planning and send control signals directly to a stepper or other motor driver. Because standard operating systems are NOT design for real time control, it can be best to use a seperate embedded motion controller and simply relay G-CODE or other commands from the main system.
http://www.machsupport.com/ Home of Mach3, popular CNC app for Windows platforms. Windows is not generally designed for real time control, but a clean / special install can work with the PC parallel port to send Step and Direction signals to motor drivers via a break out board like the BOB.
http://www.linuxcnc.org/ Home of EMC2, popular CNC app for Linux (Ubuntu) platforms. Open Source. Uses the PC parallel port to send Step and Direction signals to motor drivers via a break out board like the BOB.
http://www.dakeng.com/turbo.html Turbo CNC. One of the better CNC apps runs from win/dos command line. Performs well on old/used PC's which keeps your nice laptop safe from electrical problems! Uses the PC parallel port to send Step and Direction signals to motor drivers via a break out board like the BOB.
http://www.kellyware.com Home of KCAM. Simple Windows based app.
See embedded motion controllers for non-PC based systems.
Also:
Code:
EMC, Enhanced Machine Controller. Free, open source CNC control which runs on linux (with a real-time extension) - due to the real-time requirement, EMC has its own 'distro'. EMC is feature rich, under active development, and looking for more developers.
James Newton of MassMind replies: Source code at http://git.linuxcnc.org/gitweb?p=emc2.git;a=tree;f=src/emc/kinematics;hb=master, the actual calculations of movement appear to be in the file tp.c (Trajectory planner)
See also: