Glossary
Table of Contents
- Acme Screw
- Axis
- Axis(GUI)
- Backlash
- Backlash Compensation
- Ball Screw
- Ball Nut
- CNC
- Comp
- Configuration(n)
- Configuration(v)
- Coordinate Measuring Machine
- Display units
- DRO
- EDM
- EMC
- EMCIO
- EMCMOT
- Encoder
- Feed
- Feed rate
- Feedback
- Feedrate Override
- Floating Point Number
- G-Code
- GUI
- HAL
- Home
- ini file
- Instance
- Joint Coordinates
- Jog
- kernel-space
- Kinematics
- Lead-screw
- Machine units
- MDI
- NIST
- NML
- Part Program
- Program Units
- Python
- Rapid
- Rapid rate
- Real-time
- RTAI
- RTLINUX
- RTAPI
- RS-274/NGC
- Servo Motor
- Servo Loop
- Signed Integer
- Spindle
- Spindle Speed Override
- Stepconf
- Stepper Motor
- TASK
- Tcl/Tk
- Traverse Move
- Units
- Unsigned Integer
- World Coordinates
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)))[[glo: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)))[[glo:Axis]] One of the computer controlled 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. Angular axes like rotary tables are referred to as A, B, and C. Additional linear axes relative to the tool are called U, V, and W respectively.
Axis(GUI)
(((GUI))) One of the Graphical User Interfaces available to users of Machinekit. It features the modern use of menus and mouse buttons while automating and hiding some of the more traditional Machinekit controls. It is the only open-source interface that displays the entire tool path as soon as a file is opened.
Backlash
(((backlash)))[[glo:Backlash]] The amount of "play" or 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-up" in 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)))[[glo: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)))[[glo: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)))[[glo: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)))[[glo:comp]] A tool used to build, compile and install Machinekit HAL components.
Configuration(n)
A directory containing a set of configuration files. Custom configurations are normally saved in the users home/machinekit/configs directory. These files include Machinekit'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 Machinekit 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 system of position-measuring devices attached to the slides of a machine tool, which are connected to a numeric display showing the current location of the tool with respect to some reference position. DROs are very popular on hand-operated machine tools because they measure the true tool position without backlash, even if the machine has very loose Acme screws. Some DROs use linear quadrature encoders to pick up position information from the machine, and some use methods similar to a resolver which keeps rolling over.
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 can make internal corners with a radius only slightly larger than the radius on the corner of the sinking electrode.
EMC
(((EMC)))[[glo:EMC]] The Enhanced Machine Controller. Initially a NIST project. Renamed to Machinekit in 2012.
EMCIO
(((EMCIO)))[[glo:EMCIO]] The module within Machinekit that handles general purpose I/O, unrelated to the actual motion of the axes.
EMCMOT
(((EMCMOT)))[[glo:EMCMOT]] The module within Machinekit that handles the actual motion of the cutting tool. It runs as a real-time program and directly controls the motors.
Encoder
(((encoder)))[[glo: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 Machinekit.
Feed
(((feed)))[[glo:Feed]] Relatively slow, controlled motion of the tool used when making a cut.
Feed rate
(((feed rate))) The speed at which a cutting motion occurs. In auto or mdi mode, feed rate is commanded using an F word. F10 would mean ten machine units per minute.
Feedback
(((feedback)))[[glo:Feedback]] A method (e.g., quadrature encoder signals) by which Machinekit receives information about the position of motors
Feedrate Override
(((feedrate override)))[[glo: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)))[[glo:G-Code]] The generic term used to refer to the most common part programming language. There are several dialects of G-code, Machinekit uses RS274/NGC.
GUI
[[glo:GUI]](((GUI))) Graphical User Interface. General;; A type of interface that allows communications between a computer and a human (in most cases) via the manipulation of icons and other elements (widgets) on a computer screen.
- Machinekit
-
An application that presents a graphical screen to the machine operator allowing manipulation of the machine and the corresponding controlling program.
HAL
(((HAL)))[[glo:HAL]] Hardware Abstraction Layer. 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)))[[glo: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)))[[glo:inifile]] A text file that contains most of the information that configures Machinekit for a particular machine.
Instance
(((Instance)))[[glo: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)))[[glo: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. In manual mode, jog speed can be set from the graphical interface.
kernel-space
[[glo:kernel-space]] See real-time.
Kinematics
(((kinematics)))[[glo: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 the 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)))[[glo: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 specified and used in the ini file. HAL pins and parameters are also generally in machine units.
MDI
(((MDI)))[[glo: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)))[[glo:NIST]] National Institute of Standards and Technology. An agency of the Department of Commerce in the United States.
NML
(((NML)))[[glo:NML]] Neutral Message Language provides a mechanism for handling multiple types of messages in the same buffer as well as simplifying the interface for encoding and decoding buffers in neutral format and the configuration mechanism. == Offsets (((offsets)))[[glo:Offsets]] An arbitrary amount, added to the value of something to make it equal to some desired value. For example, gcode programs are often written around some convenient point, such as X0, Y0. Fixture offsets can be used to shift the actual execution point of that gcode program to properly fit the true location of the vise and jaws. Tool offsets can be used to shift the "uncorrected" length of a tool to equal that tool's actual length.
Part Program
(((part Program)))[[glo:PartProgram]] A description of a part, in a language that the controller can understand. For Machinekit, that language is RS-274/NGC, commonly known as G-code.
Program Units
(((program units))) The linear and angular units used in a part program. The linear program units do not have to be the same as the linear machine units. See G20 and G21 for more information. The angular program units are always measured in degrees.
Python
General-purpose, very high-level programming language. Used in Machinekit for the Axis GUI, the Stepconf configuration tool, and several G-code programming scripts.
Rapid
(((rapid)))[[glo:Rapid]] Fast, possibly less precise motion of the tool, commonly used to move between cuts. If the tool meets the workpiece or the fixturing during a rapid, it is probably a bad thing!
Rapid rate
(((rapid rate)))[[glo:RapidRate]]The speed at which a rapid motion occurs. In auto or mdi mode, rapid rate is usually the maximum speed of the machine. It is often desirable to limit the rapid rate when testing a g-code program for the first time.
Real-time
(((real-time)))[[glo: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 a realtime kernel such as RTAI and build the software to run in the special real-time environment. For this reason real-time software runs in kernel-space.
RTAI
(((RTAI)))[[glo:RTAI]] Real Time Application Interface, see https://www.rtai.org/[https://www.rtai.org/], the real-time extensions for Linux that Machinekit can use to achieve real-time performance.
RTLINUX
(((RTLINUX)))[[glo:RTLINUX]] See https://en.wikipedia.org/wiki/RTLinux[https://en.wikipedia.org/wiki/RTLinux], an older real-time extension for Linux that Machinekit used to use to achieve real-time performance. Obsolete, replaced by RTAI.
RTAPI
(((RTAPI)))A portable interface to real-time operating systems including RTAI and RTLINUX
RS-274/NGC
(((RS274NGC)))[[glo:RS274NGC]] The formal name for the language used by Machinekit part programs.
Servo Motor
(((servo motor)))[[glo:ServoMotor]] Generally, any motor that is used with error-sensing feedback to correct the position of an actuator. Also, a motor which is specially-designed to provide improved performance in such applications.
Servo Loop
(((loop)))[[glo: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 negative sign. In HAL it is known as s32. (A signed 32-bit integer has a usable range of -2,147,483,647 to +2,147,483,647.)
Spindle
(((spindle)))[[glo:Spindle]] The part of a machine tool that spins to do the cutting. 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 assumes that the Machinekit software has been configured to control spindle speed.
Stepconf
An Machinekit configuration wizard. It is able to handle many step-and-direction motion command based machines. It writes a full configuration after the user answers a few questions about the computer and machine that Machinekit is to run on.
Stepper Motor
(((stepper motor)))[[glo: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)))[[glo:TASK]] The module within Machinekit that coordinates the overall execution and interprets the part program.
Tcl/Tk
(((Tk)))[[glo:Tcl/Tk]] A scripting language and graphical widget toolkit with which several of Machinekits GUIs 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. In HAL it is known as u32. (An unsigned 32-bit integer has a usable range of zero to 4,294,967,296.)
World Coordinates
(((world coordinates)))[[glo: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.