What is Apt?

Apt is used to program cnc machine tools to create complex parts using a cutting tool moving in space. It is used to calculate a point-to-point path a tool must follow to generate a desired form. Apt is a CAM system based on a special-purpose language. It was created and refined during the late 1950's and early 1960's to simplify the task of calculating geometry points that a tool must traverse in space to cut the increasingly complex parts required in the aerospace industry. It was a direct result of the new cnc technology becoming available at that time, and the daunting task that a machinist or engineer faced calculating the movements of the cnc for the complex parts for which it was capable. Apt was created before graphical interfaces were available, and so it relies on text to specify the geometry and toolpaths needed to machine a part.

Text Based

A typical Apt program looks something like this:

	PARTNO example
	C1=CIRCLE/0,0,0,1 	$$ create a circle centered at 0,0,0 with radius 1
	L1=LINE/XAXIS  		$$ create a line on the xaxis
	$$$More geometry statements....
	CUTTER/0.25 		$$ define a tool
	FROM/0,0,0  		$$ start point of the tool
	INDIRV/0,1,0 		$$ direction the tool initially moves
	GO/TO,C1    		$$ direct the  motion of the tool to c1
	$$More motion and geometry statements....
	FINI 			$$end of program

Apt shares many similarities to computer programming languages like Fortran. A general-purpose computer language takes source text and converts the statements to instructions that can operate the internals of a computer. Apt converts source statements into programs for numerically or computer controlled machine tools. Typically, this is a text file that contains cnc-vendor dependent commands to generate tool motions and machine states. Most commonly, this is some form of g-code.

Powerful Features

5 axis capable

Apt is capable of calculating complex machine tool instructions for 2.5d contouring, 3d surfacing, and continuous 5-axis control. Five-axis control permits the tool path to be continuously oriented anywhere in 3d space and at any angle within the constraints of the particular machine tool. The tool itself can be defined with up to 7 variables denoting various tool shapes like ball end, bullnose, dovetail, and chamfer.

High Level Language Constructs

Like most programming languages, Apt comes with a rich set of language constructs. Looping, conditionals, variable definitions, and math expressions are a few of the features included.

An Open Standard

Apt is non-proprietary. It was developed at MIT with cooperation of industry and funded in part by the US Air Force. It is defined by the ANSI standard NCITS 37-1999. Most Apt compilers , however, are proprietary.


Most modern cam systems output an intermediate representation of the tool path in the form of a CL, or Cutter Location file, in the syntax of Apt. This file was generally processed in a final step called post-processing, which would convert non-specific, general movements into the form required by the many different types of cnc controls. This feature was retained to leverage many company's postprocessors that were designed for Apt output. The format has stuck, and ties together many cam and post-processor solutions.