APT (programming language)

Last updated
APT
Paradigms Numerical control
Designed by Douglas T. Ross
First appeared1956;67 years ago (1956)
Influenced
Computer-aided manufacturing systems

APT (Automatically Programmed Tool) [1] is a high-level computer programming language most commonly used to generate instructions for numerically controlled machine tools. Douglas T. Ross [2] is considered by many to be the father of APT: as head of the newly created Computer Applications Group of the Servomechanisms Laboratory at MIT in 1956, he led its technical effort. APT is a language and system that alleviates the tedious mathematics of writing toolpaths for numerically controlled equipment. This early language was used widely through the 1970s and is still a standard internationally. [3] Derivatives of APT were later developed.

Contents

Programming language

APT is used to program numerically-controlled machine tools to create complex parts using a cutting tool moving in space. It is used to calculate a path that a tool must follow to generate a desired form. APT is a special-purpose language and the predecessor to modern computer aided manufacturing (CAM) systems. It was created and refined during the late 1950s and early 1960s to simplify the task of calculating geometry points that a tool must traverse in space to cut the complex parts required in the aerospace industry. It was a direct result of the new numerical control technology becoming available at that time and the daunting task that a machinist or engineer faced calculating the movements of the machine for the complex parts for which it was capable. Its development was centered at the same MIT labs that hosted the Numerical Control and the Milling Machine Projects. APT also was US Air Force sponsored and is notable for being the world's first major cooperative programming venture, combining government agencies, universities, and a 14-company team organized within the Aircraft Industries Association (now Aerospace Industries Association). [4] APT was created before graphical user interfaces were available, and so it relies on text to specify the geometry and toolpaths needed to machine a part. The original version was created before even FORTRAN was available and was the very first ANSI standard. Later versions were rewritten in FORTRAN.

APT shares many similarities with other computer programming languages such as FORTRAN. A general-purpose computer language takes source text and converts the statements to instructions that can be processed internally by a computer. APT converts source statements into programs for driving numerically-controlled machine tools. The output from an APT processor may be a cutter location (CL) file which is then run through a post-processor specific to the desired control - machine pair. The resulting file is then run by the control of the machine to generate tool motions and other machine actions. Most commonly, this file is in some form of RS-274 format instructions, commonly known as G-code.

Example program

Tool path for APT-1 program APT-1-simplified.png
Tool path for APT-1 program
PARTNO APT-1 CLPRNT UNITS / MM NOPOST  $$ GEOMETRY DEFINITION P1 = POINT / 50, 50, 0 P2 = POINT / -50, -50, 0 L1 = LINE / P1, PARLEL, (LINE / YAXIS) L2 = LINE / P2, PERPTO, L1 L3 = LINE / P2, PARLEL, L1 L4 = LINE / P1, PERPTO, L1 C1 = CIRCLE / XSMALL, L1, YLARGE, L2, RADIUS, 30 C2 = CIRCLE / XLARGE, L3, YSMALL, L4, RADIUS, 20 PLAN1 = PLANE / 0, 0, 1, 0 PLAN2 = PLANE / PARLEL, PLAN1, ZSMALL, 16  $$ MOTION COMMANDS LOAD / TOOL, 1 CUTTER / 20 SPINDL / 3000, CLW FROM / (STRTPT = POINT / 70, 70, 0) RAPID GO / TO, L1, TO, PLAN2, TO, L4 FEDRAT / 900, PERMIN TLLFT, GOLFT / L1, TANTO, C1 GOFWD / C1, TANTO, L2 GOFWD / L2, PAST, L3 GORGT / L3, TANTO, C2 GOFWD / C2, TANTO, L4 GOFWD / L4, PAST, L1 RAPID GOTO / STRTPT FINI 

Derivatives

Further derivatives of APT were developed, initially mainly to allow the programs to run on minicomputers instead of mainframes. These included ADAPT from IBM; EXAPT from Germany; and UNIAPT, initially from United Computing, later used alongside the Unigraphics CADCAM systems. [5] Machine tool manufacturer's systems utilize elements of APT to this day. [6] Standards Developers like STEP-NC took toolpath curves from APT and other sources. [7] APT formed the basis for two early programming languages in robotics: RAPT (Robot APT) was developed at the University of Edinburgh School of Informatics, and ROBEX was a derivative of EXAPT. [8]

Further reading

Related Research Articles

<span class="mw-page-title-main">Fortran</span> General-purpose programming language

Fortran is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.

The A-0 system, written by Grace Murray Hopper in 1951 and 1952 for the UNIVAC I, was an early compiler related tool developed for electronic computers. The A-0 functioned more as a loader or linker than the modern notion of a compiler. A program was specified as a sequence of subroutines and its arguments. The subroutines were identified by a numeric code and the arguments to the subroutines were written directly after each subroutine code. The A-0 system converted the specification into machine code that could be fed into the computer a second time to execute the said program.

<span class="mw-page-title-main">Maple (software)</span> Mathematical computing environment

Maple is a symbolic and numeric computing environment as well as a multi-paradigm programming language. It covers several areas of technical computing, such as symbolic mathematics, numerical analysis, data processing, visualization, and others. A toolbox, MapleSim, adds functionality for multidomain physical modeling and code generation.

<span class="mw-page-title-main">Computer-aided manufacturing</span> Use of software to control industrial processes

Computer-aided manufacturing (CAM) also known as computer-aided modeling or computer-aided machining is the use of software to control machine tools in the manufacturing of work pieces. This is not the only definition for CAM, but it is the most common; CAM may also refer to the use of a computer to assist in all operations of a manufacturing plant, including planning, management, transportation and storage. Its primary purpose is to create a faster production process and components and tooling with more precise dimensions and material consistency, which in some cases, uses only the required amount of raw material, while simultaneously reducing energy consumption. CAM is now a system used in schools and lower educational purposes. CAM is a subsequent computer-aided process after computer-aided design (CAD) and sometimes computer-aided engineering (CAE), as the model generated in CAD and verified in CAE can be input into CAM software, which then controls the machine tool. CAM is used in many schools alongside computer-aided design (CAD) to create objects.

<span class="mw-page-title-main">Machine tool</span> Machine for handling or machining metal or other rigid materials

A machine tool is a machine for handling or machining metal or other rigid materials, usually by cutting, boring, grinding, shearing, or other forms of deformations. Machine tools employ some sort of tool that does the cutting or shaping. All machine tools have some means of constraining the work piece and provide a guided movement of the parts of the machine. Thus, the relative movement between the workpiece and the cutting tool is controlled or constrained by the machine to at least some extent, rather than being entirely "offhand" or "freehand". It is a power-driven metal cutting machine which assists in managing the needed relative motion between cutting tool and the job that changes the size and shape of the job material.

In computer software, a general-purpose programming language (GPL) is a programming language for building software in a wide variety of application domains. Conversely, a domain-specific programming language is used within a specific area. For example, SQL was specifically designed for querying relational databases.

G-code is the most widely-used computer numerical control (CNC) programming language and for 3D printing It is used mainly in computer-aided manufacturing to control automated machine tools, as well as a plug in play from a Slicer though Gcodes and has many variants.

In computer programming, dataflow programming is a programming paradigm that models a program as a directed graph of the data flowing between operations, thus implementing dataflow principles and architecture. Dataflow programming languages share some features of functional languages, and were generally developed in order to bring some functional concepts to a language more suitable for numeric processing. Some authors use the term datastream instead of dataflow to avoid confusion with dataflow computing or dataflow architecture, based on an indeterministic machine paradigm. Dataflow programming was pioneered by Jack Dennis and his graduate students at MIT in the 1960s.

In computer science, the term automatic programming identifies a type of computer programming in which some mechanism generates a computer program to allow human programmers to write the code at a higher abstraction level.

<span class="mw-page-title-main">Turret lathe</span> Metalworking lathe

The turret lathe is a form of metalworking lathe that is used for repetitive production of duplicate parts, which by the nature of their cutting process are usually interchangeable. It evolved from earlier lathes with the addition of the turret, which is an indexable toolholder that allows multiple cutting operations to be performed, each with a different cutting tool, in easy, rapid succession, with no need for the operator to perform set-up tasks in between or to control the toolpath. The latter is due to the toolpath's being controlled by the machine, either in jig-like fashion, via the mechanical limits placed on it by the turret's slide and stops, or via digitally-directed servomechanisms for computer numerical control lathes.

A cutter location (CLData) refers to the position which a CNC milling machine has been instructed to hold a milling cutter by the instructions in the program.

In computer science, partitioned global address space (PGAS) is a parallel programming model paradigm. PGAS is typified by communication operations involving a global memory address space abstraction that is logically partitioned, where a portion is local to each process, thread, or processing element. The novelty of PGAS is that the portions of the shared memory space may have an affinity for a particular process, thereby exploiting locality of reference in order to improve performance. A PGAS memory model is featured in various parallel programming languages and libraries, including: Coarray Fortran, Unified Parallel C, Split-C, Fortress, Chapel, X10, UPC++, Coarray C++, Global Arrays, DASH and SHMEM. The PGAS paradigm is now an integrated part of the Fortran language, as of Fortran 2008 which standardized coarrays.

Douglas Taylor "Doug" Ross was an American computer scientist pioneer, and chairman of SofTech, Inc. He is most famous for originating the term CAD for computer-aided design, and is considered to be the father of Automatically Programmed Tools (APT), a programming language to drive numerical control in manufacturing. His later work focused on a pseudophilosophy he developed and named Plex.

<span class="mw-page-title-main">EAS3</span>

EAS3 is a software toolkit for reading and writing structured binary data with geometry information and for postprocessing of these data. It is meant to exchange floating-point data according to IEEE standard between different computers, to modify them or to convert them into other file formats. It can be used for all kinds of structured data sets. It is mainly used in the field of direct numerical simulations.

Surfware, Inc. is a Camarillo, CA-based company involved in the development of CAD/CAM software.

<span class="mw-page-title-main">History of compiler construction</span>

In computing, a compiler is a computer program that transforms source code written in a programming language or computer language, into another computer language. The most common reason for transforming source code is to create an executable program.

The history of numerical control (NC) began when the automation of machine tools first incorporated concepts of abstractly programmable logic, and it continues today with the ongoing evolution of computer numerical control (CNC) technology.

A Post Processor is a unique "driver" specific to a CNC machine, robot or mechanism; some machines start at different locations or require extra movement between each operation, the Post-Processor works with the CAM software or off-line programming software to make sure the G-Code output or program is correct for a specific Trademark machine Control Cabinet CAM software uses geometry from a CAD model and converts it to G-code. The CAM software analyzes the CAD model and determines what tooling and toolpaths will be used to mill the desired features. Doing so requires a CAM post processor that generates the exact G-code dialect used by the machine Control Module that is being targeted. An instance of such a translation is often referred to as a "post". There will be a different “post” for each G-code dialect the CAM software supports. Post Processors, rather the “post” uses an intermediate format that captures the G-code commands in a dialect-independent form. Most CAM software accomplishes this with an intermediate format called "CL.Data."

References

  1. Automatically Programmed Tool http://aptos.sourceforge.net/
  2. "1970 Interview by NCWorld". groups.csail.mit.edu.
  3. "ISO 4343:2000". ISO.
  4. 1 2 Ross, Douglas T. (August 1978). "Origins of the APT Language for Automatically Programmed Tools". ACM SIGPLAN Notices. 13 (8): 61–99. doi: 10.1145/960118.808374 . ISSN   0362-1340.
  5. CAD/CAM: Computer-Aided Design and Manufacturing, M.Groover & E.Zimmers
  6. https://en.dmgmori.com/resource/blob/45072/748caf47d090d9990fd5abd58aa7663c/ps0uk16-software-solutions-pdf-data.pdf [ bare URL PDF ]
  7. "AptStepMaker Programming Class". www.steptools.com.
  8. Gini, Giuseppina; Gini, Maria (1 January 1985). Robot Languages in the Eighties. Robot Technology and Applications. pp. 126–138. doi:10.1007/978-3-662-02440-9_14. ISBN   978-3-662-02442-3.