A listing of terms and what they mean. Some terms have a general meaning and several additional meanings for users, installers, and developers.

[{Acme Screw{acme screw}[[AcmeScrew]]}] A type of lead-screw that
uses an acme thread form. Acme threads have somewhat lower friction
and wear than simple triangular threads, but ball-screws are lower
yet. Most manual machine tools use acme lead-screws.
[{Axis{axis}[[Axis]]}] One of the computer control movable parts of
the machine. For a typical vertical mill, the table is the X axis,
the saddle is the Y axis, and the quill or knee is the Z axis.
Additional linear axes parallel to X, Y, and Z are called U, V, and
W respectively. Angular axes like rotary tables are referred to as
A, B, and C.
[{Axis{GUI}}] One of the Graphical User Interfaces available to
users of EMC2. Features the modern use of menus and mouse buttons
while automating and hiding some of the more traditional EMC2
controls. It is the only open-source interface that displays the
entire tool path as soon as a file is opened.
[{Backlash{backlash}[[Backlash]]}] The amount of playor lost
motion that occurs when direction is reversed in a lead screw. or
other mechanical motion driving system. It can result from nuts
that are loose on leadscrews, slippage in belts, cable slack,
wind-upin rotary couplings, and other places where the
mechanical system is not tight. Backlash will result in
inaccurate motion, or in the case of motion caused by external
forces (think cutting tool pulling on the work piece) the result
can be broken cutting tools. This can happen because of the sudden
increase in chip load on the cutter as the work piece is pulled
across the backlash distance by the cutting tool.
[{Backlash Compensation{backlash compensation}}] - Any technique
that attempts to reduce the effect of backlash without actually
removing it from the mechanical system. This is typically done in
software in the controller. This can correct the final resting
place of the part in motion but fails to solve problems related to
direction changes while in motion (think circular interpolation)
and motion that is caused when external forces (think cutting tool
pulling on the work piece) are the source of the motion.
[{Ball Screw{ball screw}[[Ballscrew]]}] A type of lead-screw that
uses small hardened steel balls between the nut and screw to reduce
friction. Ball-screws have very low friction and backlash, but are
usually quite expensive.
[{Ball Nut{ball nut}[[Ballnut]]}] A special nut designed for use
with a ball-screw. It contains an internal passage to re-circulate
the balls from one end of the screw to the other.
[{CNC{CNC}[[CNC]]}] Computer Numerical Control. The general term
used to refer to computer control of machinery. Instead of a human
operator turning cranks to move a cutting tool, CNC uses a computer
and motors to move the tool, based on a part program .
[{Comp{comp}[[comp]]}] A tool used to build, compile and install
EMC2 HAL components.
[{Configuration(n)}] A directory containing a set of configuration
files. Custom configurations are normally saved in the users
home/emc2/configs directory. These files include EMC's traditional
INI file and HAL files. A configuration may also contain several
general files that describe tools, parameters, and NML
connections.
[{Configuration(v)}] The task of setting up EMC2 so that it matches
the hardware on a machine tool.
[{Coordinate Measuring Machine{coordinate measuring machine}}] A
Coordinate Measuring Machine is used to make many accurate
measurements on parts. These machines can be used to create CAD
data for parts where no drawings can be found, when a hand-made
prototype needs to be digitized for moldmaking, or to check the
accuracy of machined or molded parts.
[{Display units{display units}}] The linear and angular units used
for onscreen display.
[{DRO{DRO}}] A Digital Read Out is a device attached to the slides
of a machine tool or other device which has parts that move in a
precise manner to indicate the current location of the tool with
respect to some reference position. Nearly all DRO's use linear
quadrature encoders to pick up position information from the
machine.
[{EDM{EDM}}] EDM is a method of removing metal in hard or difficult
to machine or tough metals, or where rotating tools would not be
able to produce the desired shape in a cost-effective manner. An
excellent example is rectangular punch dies, where sharp internal
corners are desired. Milling operations can not give sharp internal
corners with finite diameter tools. A wire EDM machine can make
internal corners with a radius only slightly larger than the wire's
radius. A 'sinker' EDM cam make corners with a radius only slightly
larger than the radius on the corner of the convex EDM electrode.
[{EMC{EMC}[[EMC]]}] The Enhanced Machine Controller. Initially a
NIST project. EMC is able to run a wide range of motion devices.
[{EMCIO{EMCIO}[[EMCIO]]}] The module within EMC that handles
general purpose I/O, unrelated to the actual motion of the axes.
[{EMCMOT{EMCMOT}[[EMCMOT]]}] The module within EMC that handles the
actual motion of the cutting tool. It runs as a real-time program
and directly controls the motors.
[{Encoder{encoder}[[Encoder]]}] A device to measure position.
Usually a mechanical-optical device, which outputs a quadrature
signal. The signal can be counted by special hardware, or directly
by the parport with emc2.
[{Feed{feed}[[Feed]]}] Relatively slow, controlled motion of the
tool used when making a cut.
[{Feed rate{feed rate}}] The speed at which a motion occurs. In
manual mode, jog speed can be set from the graphical interface. In
auto or mdi mode feed rate is commanded using a (f) word. F10 would
mean ten units per minute.
[{Feedback{feedback}[[Feedback]]}] A method (e.g., quadrature
encoder signals) by which emc receives information about the
position of motors
[{Feed rate Override{feed override}[[FeedrateOveride]]}] A manual,
operator controlled change in the rate at which the tool moves
while cutting. Often used to allow the operator to adjust for tools
that are a little dull, or anything else that requires the feed
rate to be "tweaked".
[{Floating Point Number}] A number that has a decimal point.
(12.300) In HAL it is known as float.
[{G-Code{G-Code}[[G-Code]]}] The generic term used to refer to the
most common part programming language. There are several dialects
of G-code, EMC uses RS274/NGC.
[{GUI[[GUI]]{GUI}}] Graphical User Interface.
[{General}] A type of interface that allows communications between
a computer and human (in most cases) via the manipulation of icons
and other elements (widgets) on a computer screen.
[{EMC}] An application that presents a graphical screen to the
machine operator allowing manipulation of machine and the
corresponding controlling program.
[{HAL{HAL}[[HAL]]}] **H**ardware **A**bstraction **L**ayer. At the
highest level, it is simply a way to allow a number of building
blocks to be loaded and interconnected to assemble a complex
system. Many of the building blocks are drivers for hardware
devices. However, HAL can do more than just configure hardware
drivers.
[{Home{home}[[Home]]}] A specific location in the machine's work
envelope that is used to make sure the computer and the actual
machine both agree on the tool position.
[{ini file{INI}[[inifile]]}] A text file that contains most of the
information that configures EMC for a particular machine
[{Instance{Instance}[[Instance]]}] One can have an instance of a
class or a particular object. The instance is the actual object
created at runtime. In programmer jargon, the Lassie object is an
instance of the Dog class.
[{Joint Coordinates{joint coordinates}[[Joint_Coordinates]]}] These
specify the angles between the individual joints of the machine.
See also Kinematics
[{Jog{jog}}] Manually moving an axis of a machine. Jogging either
moves the axis a fixed amount for each key-press, or moves the axis
at a constant speed as long as you hold down the key.
[{kernel-space[[kernel-space]]}] See real-time.
[{Kinematics{kinematics}[[Kinematics]]}] The position relationship
between world coordinates and joint coordinates of a machine. There
are two types of kinematics. Forward kinematics is used to
calculate world coordinates from joint coordinates. Inverse
kinematics is used for exactly opposite purpose.Note that
kinematics does not take into account, the forces, moments etc. on
the machine. It is for positioning only.
[{Lead-screw{lead screw}[[Leadscrew]]}] An screw that is rotated by
a motor to move a table or other part of a machine. Lead-screws are
usually either ball-screws or acme screws, although conventional
triangular threaded screws may be used where accuracy and long life
are not as important as low cost.
[{Machine units{machine units}}] The linear and angular units used
for machine configuration. These units are used in the inifile. HAL
pins and parameters are also generally in machine units.
[{MDI{MDI}[[MDI]]}] Manual Data Input. This is a mode of operation
where the controller executes single lines of G-code as they are
typed by the operator.
[{NIST{NIST}[[NIST]]}] National Institute of Standards and
Technology. An agency of the Department of Commerce in the United
States.
[{Offsets{offsets}[[Offsets]]}] 
[{Part Program{part Program}[[PartProgram]]}] A description of a
part, in a language that the controller can understand. For EMC,
that language is RS-274/NGC, commonly known as G-code.
[{Program Units{program units}}] The linear and angular units used
for part programs.
[{Python}] General-purpose, very high-level programming language.
Used in EMC2 for the Axis GUI, the Stepconf configuration tool, and
several G-code programming scripts.
[{Rapid{rapid}[[Rapid]]}] Fast, possibly less precise motion of the
tool, commonly used to move between cuts. If the tool meets the
material during a rapid, it is probably a bad thing!
[{Real-time{real-time}}] [[real-time]] Software that is intended to
meet very strict timing deadlines. Under Linux, in order to meet
these requirements it is necessary to install RTAI or RTLINUX and
build the software to run in those special environments. For this
reason real-time software runs in kernel-space.
[{RTAI{RTAI}[[RTAI]]}] Real Time Application Interface, see
https://www.rtai.org/, one of two real-time extensions for Linux
that EMC can use to achieve real-time performance.
[{RTLINUX{RTLINUX}[[RTLINUX]]}] See http://www.rtlinux.org, one of
two real-time extensions for Linux that EMC can use to achieve
real-time performance.
[{RTAPI}] {RTAPI}A portable interface to real-time operating
systems including RTAI and RTLINUX
[{RS-274/NGC{RS274NGC}[[RS274NGC]]}] The formal name for the
language used by EMC part programs.
[{Servo Motor{servo motor}[[ServoMotor]]}] A special kind of motor
that uses error-sensing feedback to correct the position of an
actuator.
[{Servo Loop{loop}[[ServoLoop]]}] A control loop used to control
position or velocity of an motor equipped with a feedback device.
[{Signed Integer{Signed Integer}}] A whole number that can have a
positive or negitive sign. (-12) In HAL it is known as s32.
[{Spindle{spindle}[[Spindle]]}] On a mill or drill, the spindle
holds the cutting tool. On a lathe, the spindle holds the
workpiece.
[{Spindle Speed Override}] A manual, operator controlled change in
the rate at which the tool rotates while cutting. Often used to
allow the operator to adjust for chatter caused by the cutter's
teeth. Spindle Speed Override assume that the EMC2 software has
been configured to control spindle speed.
[{Stepconf}] An EMC2 configuration wizard. It is able to handle
many step-and-direction motion command based machines. Writes a
full configuration after the user answers a few questions about the
computer and machine to be run with.
[{Stepper Motor{stepper motor}[[StepperMotor]]}] A type of motor
that turns in fixed steps. By counting steps, it is possible to
determine how far the motor has turned. If the load exceeds the
torque capability of the motor, it will skip one or more steps,
causing position errors.
[{TASK{TASK}[[TASK]]}] The module within EMC that coordinates the
overall execution and interprets the part program.
[{Tcl/Tk{Tk}[[Tcl/Tk]]}] A scripting language and graphical widget
toolkit with which several of the EMC's GUI's and selection wizards
were written.
[{Traverse Move{Traverse Move}}] A move in a straight line from the
start point to the end point.
[{Units{units}}] See Machine Units, Display Units, or
Program Units.
[{Unsigned Integer{Unsigned Integer}}] A whole number that has no
sign. (123) In HAL it is known as u32.
[{World Coordinates{world coordinates}[[World_Coordinates]]}] This
is the absolute frame of reference. It gives coordinates in terms
of a fixed reference frame that is attached to some point
(generally the base) of the machine tool.