S.

GORN, Editor;

R . W . BEMER, Asst. Editor, Glossary & Terminology J. GREEN, Asst. ~ditor, Programming Languages E. LOHSE, Asst. Editor, Information Interchange

A Description of the APT Language*
S. A. BROWN, C. E. D~AYTO~, B. 1V[ITTMAN I I T Research Institute,t Chicago, Illinois
The APT (Automatically Programmed Tools) language for numerical control programming is described using the metalinguistic notation introduced in the ALGOL 60 report. Examples of APT usage are included. Presented also are an historical summary of the development of APT and a statement concerning its present status.

INTRODUCTION The application of numerical control (N/C) to manufacturing has increased steadily in importance since its feasibility was demonstrated by MIT's Servo-mechanisms Laboratory in 1952. The introduction of the computer to assist in the preparation of the numerical control information has been a key to practical utilization of N/C for a variety of manufacturing processes. In contour milling, for example, it is often necessary to approximate a space curve by straight line segments (cuts) within a few thousandths of an inch. tolerance. To accomplish this one may require the generation of thousands of coordinate points lying on the curve (or within tolerance of the curve) and for each of these points a cutter-radial offset must be calculated to determine the cutter center path. A great number of computer systems have been developed for numerical control programming. Among these are APT, WALDO, AUTOPROMT, SPLIT, AUTOSPOT, AUTOMAP, etc. APT (Automatically Programmed Tools) is the most general and most widely used of these systems. The current APT system is presently available on one large scale computer and is being implemented on others. The APT system is in daily use in a number of manufacturing organizations. In this paper the development of APT is summarized, its present status is discussed, and its language characteristics are described.

Historical Summary
In 1955, a prototype APT system was coded for the Whirlwind computer at MIT to demonstrate feasibility.
* Received August 15, 1963. t F o r m e r l y Armour Research F o u n d a t i o n of Illinois I n s t i t u t e of Technology. V o l u m e 6 / N u m b e r l l / N o v e m b e r , 1963

This rudimentary version required the programmer to specify the endpoints of each straight line cut to be performed by the machine tool. In 1957, member organizations of the Aerospace Industries Association (AIA), in cooperation with MIT, undertook further development of the APT system. As a result of this development, a more advanced system was prepared for the IBM 704 in 1958. This system, called APT II, relieved the programmer of the responsibility of computing successive cutter locations and enabled him to describe the curve in an artificial language resembling English [1]. The APT system provided a language translator. This was the beginning of the APT language as we know it today, a language which permits the so-called part programmer to describe the part to be machined and the functions to be performed on that part. Several versions of APT II have been used successfully in production by many aerospace companies. A still more effective system, known as APT III, was produced for the IBM 7090 as a cooperative AIA project and was released in December of 1961 [2]. During 1961, realizing that the APT concept was practical, but that its capabilities and potential had been just barely tapped, the AIA established the APT Long Range Program. Armour Research Foundation (now the IIT Research Institute) was selected to assume maintenance and validation responsibility for the existing APT system, and to direct the future course of a longrange developmental program. At the same time, the APT system, which previously had been available only to AIA members, was made available to any American company or government facility which desired to participate in the program. Companies joining the APT Long Range Program receive the complete APT system, documentation, training, etc., and by participating, help to underwrite the cost of further development.
C o m m u n i c a t i o n s o f t h e ACM

649

THE APT LANGUAGE syntactic description which was employed in previous ALGOL [4] and NELIAC [5] reports.2 Syntax (identifier) :: = (letter) I (digit} (identifier) ] (identifier) (digit) I (identifier) (letter) 1 See Appendix A.4 IDENTIFIERS 1. 1.0.2 1. a group.3.2 Syntax (delimiter) :: = (operator) 1(separator) }(vocabulary word) (separator) ::= . This study is to be conducted by a group of A P T and A D A P T implementors and users under the auspices of the ASA subcommittee X3. The basic symbols of the metalanguage are: :: = connective meaning "is defined to be" I connective meaning " o r " (} delimiting brackets enclosing metalinguistic variables It should be pointed out that for brevity.I * [/ I** (vocabulary word) :: = (entry in APT vocabulary list)I T u r n on coolant at the flood setting Move tool to a point symbolically designated as " S E T P T " L1 is the symbolic designation of a line passing through points PT1 and PT2 1. and auxiliary commands. has begun to consider the desirability and feasibility of an organized standardization activity for APT. numbers. I B M demonstrated the feasibility of implementing a substantial subset of A P T on a small computer [3]. 1. Identifiers are strings of from one to six letters and digits.3. a valid identifier must include at least one letter. The notation used is identical to the metalanguage for 650 Communications o f t h e ACM COOLNT CUTTER 1. The following sections contain a general description of the A P T language as implemented for the I B M 7090. geometric definitions. Examples of A P T statements are: COOLNT/FLOOD GO T O / S E T P T L1 = L I N E / P T 1 . ] (I) (operator) ::= + I -. The upper-case.1. known as ADAPT. if required. The "major" word appears to the left of the slash.Status of the APT System Besides the A P T system on the IBM 7090.3 + ( ) Examples GOLFT Most A P T statements are divided into two sections separated by a slash.1 Semantics. tool position relative to controlling surface.2. In addition.Semantics.0 Basic Symbols. With A P T the part programmer can define tool shapes. This subset. macros. PT2 LETTERS 1. 1963 . In addition. however. Now that A P T and its subsets will be gaining broadening utility. under an Air Force contract early in 1963. to present the syntax in sufficient detail to illustrate the scope of A P T expression in numerical control programming.3. Strings 1.0. secondary sections may themselves be sectionalized.2. and strings.2. The present APT language has a vocabulary of approximately 275 words. Nesting is allowable.1 . direction of motion of the tool.1 Semantics.1 Semantics. The A P T language is composed of a number of basic symbols.2 Syntax (letter) ::= A I B I C I D IE IF [ G I H I I [ J I K ] LIMIN[OIPIQIR]SIT[U!VIWIXIYIZ 1. Roman alphabet is used to form identifiers and strings. For example: GO TO/(POINT/LIN 1. An effort has been made. appears to the right of the slash and contains necessary modifiers to the major word. Delimiters are combinations of one or more basic symbols which have fixed meanings within the language and therefore themselves form basic symbols.2 DIGITS 1.4. each of which contains at least one unit of information adequate in itself to activate one complete function of the A P T system or to describe fully one pertinent condition or fact. or comparable subsets are expected to be made available soon by a number of manufacturers of small computers.4. Except for a label which may consist entirely of digits. Decimal digits are used to form identifiers.3 Syntax (digit) : : = 011 [ 2 ] 3 [ 4 1 5 [6 I 7 1 8 [9 DELIMITERS 1. 1. i.1. V o l u m e 6 / N u m b e r 11 / N o v e m b e r . LIN 1 and LIN 2. the part programmer cart write computational statements.e. Numbers. the entire A P T language has not been included in this report.1 Semantics. tolerances. Identifiers.1 General Description The A P T language provides the same flexibility of expression to part programmers that standard programming languages provide to computer programmers. initiated by the X3. The secondary section. An A P T part program consists of a sequence of slatements. APT Vocabulary List.4. 1. 1. LIN 2) Move the tool to a point which is the intersection of two previously defined lines. 1.2 Syntax (basic symbol) :: = (letter) I (digit) [ (delimiter) 1.4 Committee on Common Programming Languages of the American Standards Association. k~n!vac is developing A P T for the UNIVAC 1107 and other con> • puter implementations are being studied. and looping statements.

7 REMARKS 1.1324 +7362 --7361 7360.3. A v a r i a b l e is a n identifier t h a t has been assigned as t h e n a m e of t h e g e o m e t r i c e n t i t y or n m n e r i c a l v a l u e defined b y a n expression. 0. 2.2 Syntax (number} :: = (unsigned number} I + (unsigned number} ] .7.5. T h e specific e n t i t y is specified b y a g e o m e t r i c f o r m word. R e m a r k s a r e t e x t i n s e r t e d w i t h i n t h e b o d y of a n A P T p r o g r a m to e n h a n c e r e a d a b i l i t y .1 Semantics. 2.5. F u n c t i o n d e s i g n a t o r s define single a r i t h m e t i c values a c c o r d i n g to special a l g o r i t h m s b u i l t into t h e A P T s y s t e m .1.7.3 Examples A h(3) A(A(6)) 2. A n a r i t h m e t i c expression is a rule for c o m p u t i n g a n m n e r i c a l value.4. sphere.3 Examples 29666XQLF**) 0 ( THIS IS A STRING 1.2. C o m m u n i c a t i o n s of t h e ACM 651 2.3 1. F l o a t i n g p o i n t is t h e o n l y t y p e of n u m b e r used for A P T c o m p u t a t i o n s .1 Semantics.3 Examples SINF (A + B) LNTHF (VECTOR/P1.3. etc.1 Semantics. 1.3 ARITHMETIC EXPRESSIONS 2.02/4)/JKL A(7) + COSF(Q(6+I+X)) GEOMETRIC EXPRESSIONS 2. A n u m b e r consists of f r o m 1 to 12 c h a r a c t e r s .6.0.1 Semantics.1 Semantics.0. v a r i a b l e s . 1. F o r each g e o m e t r i c f o r m t h e r e are f r o m 1 to 14 different m e t h o d s of definition.1 Semantics.738.3.1.2.5 NUMBERS 1.1 Semantics.3 Examples ABLE 123A6 74X X74 1. T h e y h a v e no o t h e r significance.2 Syntax (remark) :: = REMARK (string} 1. C o n s i d e r e d as a n integer.2 Syntax (variable} : : = (simple variable} I (subscripted variable} (subscripted variable} : : = (array identifier} ((subscript expression}} (array identifier} :: = (identifier} (subscript expression) :: = (arithmetic expression} (simple variable} :: = (identifier} (arithmetic variable} :: = (variable assigned to an arithmetic expression} (geometric variable} : : = (variable assigned to a geometric expression} 2.1. S e v e r a l e x a m p l e g e o m e t r i c definitions are p r e s e n t e d below.2 Syntax (function designator} : : = (function identifier} ((function parameter list}} (function parameter list} : : = (expression} I (variable} [ (function parameter list}. 7360 1.3 Examples 0 o.7.4 Examples A + COSF(A+B+6.6. such as circle.359. 1963 . (function parameter list} (function identifier} : : = DOTF I SQRTF I SINF [ COSF I E X P F I LOGF ] ATANF [ABSF ! LNTHF 1. I t m a y be used in place of t h e expression a t succeeding occurrences of t h a t expression. a n d modifiers (a subclass of v o c a b u l a r y w o r d s used as descriptors) in a p a r a m e t e r list d e t e r m i n e s which specific definit i o n scheme is to be used.5. line.2 FUNCTION DESIGNATORS 2.2 Syntax (arithmetic expression} :: = (term} I (adding operator} (term} ] (arithmetic expression} (adding operator} (term} (term) : : = (factor) I (term} (multiplying operator} (factor} (factor} :: = (primary} [ (factor} ** (primary} (primary} :: = (unsigned number} ] (arithmetic variable} I(function designator) J ((arithmetic expression}) (multiplying operator} :: = * [ / (adding operator} :: = + 1 2.1. w i t h o u t a d e c i m a l p o i n t .1.367 = 235 -. S t r i n g s are sequences of basic s y m b o l s n o t exceeding 66 c h a r a c t e r s in length. P2) 2.0 Expressions 2. T h e specific o r g a n i z a t i o n of expressions. a n u m b e r m a y n o t be g r e a t e r t h a n 34. 2. A n expression is a rule for defining a g e o m e t r i c e n t i t y or c o m p u t i n g a num e r i c a l value.4.1 Semantics.(unsigned number} (unsigned number} :: = (unsigned integer} [ (decimal fraction} I (unsigned integer) (decimal fraction} (decimal fraction} : : = .(unsigned integer) (unsigned integer} : : = (digit} [ (unsigned integer) (digit} 2. A g e o m e t r i c expression is a rule for defining a g e o m e t r i c e n t i t y .6. 2.2 Syntax (string} :: = (any sequence of basic symbols} I (null) (null} :: = 1. 2.1 Volume 6 / N u m b e r 11 / November.6 STRINGS 1. i n c l u d i n g t h e d e c i m a l point.3 Example REMARK THIS IS A REMARK 2.2.2 Syntax (expression} :: = (arithmetic expression) I (geometric expression} VAmASLES 2.

1 Semantics. specifies a new position in t e r m s of actual coordinates or increments f r o m the present position.5. PTA. 7.4. T h e y m a y be reassigned a t will. 3.4. (modifier word) I <modifier word>. 7. 3. C o m m u n i c a t i o n s of t h e ACM 652 Volume 6 / N u m b e r 11 / November.2. PT4 defines a circle passing through coordinates of PT1. 3. W h e n this required t e r m i n a l t a n g e n c y condition is m e t . 7. a useful construct.2 CUTTER i~OSITIONING STATEMENTS 3. (parameter list) (modifier word) :: = (vocabulary word) 2. (parameter list> I<parameter list).1.2. CIRCLE/PT1.3. CIRCLE/CENTER.1 3.2 Syntax (cutter positioning statement) : : = (explicit positioning statement) ! <initial continuous motion statement> I (intermediate continuous motion statement) I (terminal continuous motion statement) 3.5. Such a continuous m o t i o n is t e r m i n a t e d b y also specifying a t a n g e n c y condition to a third surface called a check surface. (POINT/3. 9 defines a point at (3.5. 9). As the cutter. 7 defines a circle with center at coordinates associated with variable PT and radius of 7. 7. T h e next class provides for continuous cutter m o t i o n along a space curve. S t a t e m e n t s are the basic operational and control units of the A P T language. PTB 3. (arithmetic parameter}. (arithmetic parameter>. F o r those occasions w h e n t h e desired location of the control point is known. This is not true. T h e position of t h e c u t t e r relative to the two controlling surfaces is specified b y continuous m o t i o n s t a t e m e n t s . for variables assigned to a r i t h m e t i c expressions.2.2 Syntax (statement) : : = (label)) (unlabeled statement) I (unlabeled statement) <unlabelcd statement) : : = <assignment statement) ] (cutter positioning statement) [ (sequence control statement> I (post processor control statement) ! (procedure statement) I (input-output control statement) (loop) : : = LOOPST (statement list) I LOOPND (statement list) : : = (statement) I (statement list) (statement) ASSIGNMENTST TEMENTS 3. (arithmetic parameter} [ FROM/((geometric expression)) I FROM/ (geometric variable) [ FROM/(arithmetic parameter). (POINT/3.3. 7.1. 3. GO D L T A positions the control point in a specified i n c r e m e n t f r o m its current location. 9).0 Statements 3. (POINT/3. RADIUS.1.3 Examples POINT/3.3 Examples A=2+3+1 A=A+I B = CIRCLE/(POINT/0.2 Syntax (assignment statement) : : = (variable) = (arithmetic expression} [(variable) = (geometric expression) 3. 7 defines a circle at (3. GO TO positions the control point at the specified coordinates. 0). 9) CIRCLE/CENTER. the so-called p a r t surface and drive surface. POINT/CENTER.3 EXPLICIT POSITIONING STATEMENTS 3. 7.0. N u m e r i c a l l y controlled m a c h i n e tools are controlled b y reference to a control point on the cutter.2 Syntax (geometric expression} : : = (geometric form)/(parameter list) (geometric form) :: = POINT I PLANE I CIRCLE I LINE { CYLNDR I ELLIPS I HYPERB I CONE I GCONIC I LCONIC I SPHERE I QADRIC I POLCON I TABCYL t MATRIX I VECTOR (parameter list) : : = ((expression)) I (number) ] <variable) t(parameter list). is to consider the cutter constrained b y a t a n g e n c y condition to each of two surfaces. 9) with a radius of 7.2 Syntax (explicit positioning statement) : : = GO TO/ ((geometric expression)) t GO TO/(geometric variable) I GO TO/ (arithmetic parameter). 0.1 Semantics. 1963 . PT4)) defines a point with coordinates at the center of the circle in the previous example. the cutter can be directly positioned w i t h o u t the use of controlling surfaces b y use of the explicit positioning s t a t e m e n t s .5. Assignment s t a t e m e n t s assign variables to the values of arithmetic expressions and to the definitions of geometric expressions. I ! otrolPoi T h e first.1 Semantics. T h e s e necessarily involve a direction of m o t i o n based on previous s t a t e m e n t s or declarations. the m o t i o n is complete.5. 9) and PT4. however. (CIRCLE/PT1. explicit positioning control. errodes m a t e r i a l a t its periphery. PT. (arithmetic parameter) (arithmetic parameter) :: = ((arithmetic expression}) [ (number) [ (arithmetic variable) 3.5. 7. RADIUS.5. <arithmetic parameter) I GO DLTA/(arithmetie parameter). <arithmetic parameter). (3.0. a surface of revolution.1 Semantics. FROM indicates the initial position of the control point. Once a variable is assigned to a geometric expression it m a y n e v e r be reassigned. T w o general classes of c o m m a n d s are available to control positioning of this control point. 9).

2 Syntax (initial continuous motion statement} : : = GO/(qualified geometric expression} ] G0/(qualified geometric expression}.6. 3.4. CIRX GO BACK/LX4361.6 TERMINAL CONTINUOUS MOTION STATEMENTS 3. Each statement is dependent upon the preceding statement for establishing the direction of motion and upon the drive surface of the next statement for information concerning when the motion is complete. O) GO DLTA/0.1 Semantics. (check surface) l(intermediate continuous motion statement}. (check surface}l (intermediate continuous motion statement}. (qualified geometric expression} I OFFSET/(qualified geometric expression) (qualified geometric expression} : : = (cutter tangency specifier}.5.5 INTERMEDIATE CONTINUOUS MOTION STATEMENTS 3.2 Syntax (sequence control statement} : : = (arithmetic transfer statement} [ (geometric transfer statement} [ (termination statement} Communications o f t h e ACM GO~A.2 Syntax (terminal continuous motion statement} : : = (intermediate continuous motion statement}. TO. LN7 specified direction. ((geometric expression}) I (cutter tangeney specifier}. 3. POL6 SEQUENCE CONTROL ST TEMENTS 3. The direction a n d position conventions are specified in Figure 1. P6).. .3 Examples GO LFT/LN2. C GO/ON.3 Examples GO/C3 GO/TO.3 Examples GO TO/3.6.3. A command format is available to allow terminating the motion at the n-th satisfaction of the tangency condition. I t must. 3. ON. C2. therefore. C3 GO/PAST. P2) 3. PAST. 3 FROM/PT4 3. The drive surface of this following statement is then also the check surface for the current motion.5.1 Semantics. 3. 4. The terminal continuous motion statement requires no successor statement from which to derive a check surface. (qualified geometric expression} ] GO/(qualified geometric expression}. 4.1. I t m a y occur from time to time t h a t the geometric configuration is such t h a t the cutter m a y satisfy the required check surface tangency criterion at more than one point.1 Semantics.5.0037 GO TO/(POINT/2. A sequence control statement interrupts the normal sequential execution of statements. yet. Direction and position conventions Volume 6 / N u m b e r 11 / November. (check surface} (check surface} :: = ((geometric expression}) I (geometric variable} (intersection count} :: = (unsigned integer} 3.2 Syntax (intermediate continuous motion statement} : : = (continuous motion word)/(drive surface} (continuous motion word} : : ~ GO LFT I GO RGT ! GO F W D I G O BACK[ GO U P I G O DOWN (drive surface} : : = ((geometric expression}) I (geometric variable) 3. INTOF. f I \ FWD (previous direction of motion) 3. 1.7.1 Semantics.4.333. 1963 653 . A special statement of this type is needed before each group of intermediate continuous motion statements in order to position the cutter within a specified tolerance from.6. (cutter tangency specifier}. 1.3 Examples GO LFT/LN2 GO FWD/CIRL GO RGT/(LINE/P1. . INTOF. CYL9 3.5. maintain a specified tangency position relative t o two geometric surfaces.4 INITIAL CONTINUOUS MOTION STATEMENTS 3.3. include reference to an explicit check surface and end tangency condition. and on the correct side of the part and drive surfaces.7. TO. ON.7. PLN5.6 FROM/I.4.7 RGT / / DOW N Fro. The major use Of the A P T language is to direct a defined cutter to move in a (cutter UP cutter axis ) " \ LFT BACK ~ ~J. . B. LIN2. (cutter tangency specifier}. This statement also allows the cutter to be directed to a particular area of the controlling surfaces. 2. (intersection count}. (qualified geometric expression}.2. CIR0 GO RGT/(LINE/P3. (geometric variable} I ((geometric expression}) {(geometric variable} (cutter tangency specifier} : : = TO [ ON I PAST [ TANTO 3. In this case the motion is considered complete at the first satisfaction of this constraint.

(check surface}.10 TERMINATION STATEMENTS 3.9. GO LFT/L3. (label>. 3. These s t a t e m e n t s allow for the input and o u t p u t of procedures.1 Semantics. 3. 3. A post processor in the A P T system is a p r o g r a m which transforms general coordinate information and control functions into codes for a specific controller-machine tool configuration. (label}. .12.13 INPUT-OUTPUT CONTROL STATEMENTS 3. PAST.10. etc.2 Syntax (arithmetic transfer statement} :: = JUMPTO/(label) [ IF ((arithmetic expression)) (label}.3. A n arithmetic transfer s t a t e m e n t and the statements associated with labels appearing in these transfer statements m u s t occur within a loop or procedure. ALL PUNCH/l. This s t a t e m e n t defines no successor and has the effect of t e r m i n a t i n g the program.12 PROCEDURE STATEMENTS 3. If a geometric transfer statem e n t does appear in a loop or procedure it m a y only reference statements occurring later within the program.8 ARITHMETICTRANSFER STATEMENT 3.3 Examples JUMPTO/123XQ IF (A-X) ST1.3 Examples CALL/MACR. ST2.1 Semantics. X.2 Syntax (termination statement> :: = F I N I D = 7. (procedure parameter list) (procedure parameter list} : : = (formal parameter) = (actual parameter} [ (procedure parameter list}. X TITLES SIN COS TAN Volume 6 / Number 11 / November. A = GORGT. (variable} (format specifier} : : = 0 [ 1 I 2 I 3 3.8. A n A P T procedure s t a t e m e n t calls b y name. T h e formal parameters within the b o d y are replaced b y the normal parameters specified in the procedure declaration except where superceded b y actual parameters f r o m the procedure statement. it can only be re-established b y another arithmetic transfer.13. . 3.632 CALL/MXR 3. .9. TO.12. coolant values. (cutter tangency specifier}. L3.10. TO. A multiple choice surface motion statement selects one of two possible successor statements depending u p o n which t a n g e n c y condition is first achieved. GO LFT/L2.2 Syntax (procedure statement> : : = CALL/(procedure identifier> I CALL/(proeedure identifier}. (2-0 list) [TITLES (string> (input-output control word} : : = READ ] PUNCH [ PRINT (LO list} : : = ALL I (variable list} (variable list> :: = (variable} [ (variable list).3 Examples PRINT/3. geometric entities. 1963 3. it need not appear within a loop or procedure. . .3 Examples COOLNT/ON SPINDL/ON PPRINT ARBITRARY TEXT END 3.1 Semantics. TO. These are to be differentiated f r o m the strings of coordinates p r o d u c e d b y c u t t e r positioning statements.9 GEOMETRIC TRANSFER STATEMENTS 3.2 Syntax (geometric transfer statement} :: = TRANTO/(label) [ (multiple check surface motion statement> (multiple check surface motion statement> : : = (terminal continuous motion statement).11 POST PROCESSOR CONTROL STATEMENTS 3. ID1. and numerical quantities. (label>. L2.2 Syntax (postprocessor control statement> :: = (postprocessor control word>[(postprocessor control word)/ (parameter list} ](postprocessor control word) (string) [ (cutter positioning statement>. (label} I (terminal continuous motion statement). . (check surface}. ID2 ID1) TLLFT.8. 3. P o s t processor control c o m m a n d s activate specific internal functions of a post- 654 Communications of t h e ACM . L2. However. L4 TRANTO/ID3 ID2) TLLFT. (feedrate specifier) (postproeessor control word} :: = (vocabulary word) (feedrate specifier) : : = ((arithmetic expression})l (arithmetic variable) ] (number) 3. Example TLRGT GO FWD/CIRC GO FWD/L1. PAST. B. A procedure s t a t e m e n t is replaced b y the procedure body. servo m e c h a n i s m overshoot. T h e same rule applies concerning consistent use of geometric transfers as applies to arithmetic transfers. C = QLX. 3. B = CIRCLE. (label} 3.9. A geometric transfer s t a t e m e n t also interrupts sequential execution of an A P T :program.3 processor. Postprocessor control statem e n t s control such internal functions as spindle speed and direction. .1 Semantics.12.1 Semantics.13. 3. (label} 3. A. (formal parameter> = (actual parameter) (actual parameter> :: ~.11.(variable> [ (number> [ (vocabulary word} [ (label} (formal parameter> :: = (identifier> 3. L4 ID3) . .1 Semangcs. GO LFT/L2.11. If normal sequential execution is altered b y an arithmetic transfer statement. ST3 3. . ttQC. .13.11.2 Syntax (input-output control statement> : : = (input-output control word)/(format specifier}.8. J READ/l.

B. 0 GO TO/I. 1 GO/SURF1 J. When a variable so defined is referenced in the normal environment.3.3 Example MAC = M A C R O / J = T L L F T .2 Syntax (coordinate transformation declaration) : : = R E F S Y S / (transformation matrix) I R E F S Y S / N O M O R E (transformation matrix} :: = (geometric variable) (formal parameter list) :: = (null) I (formM parameter) [ (formal parameter} = (normal name} [(formal parameter list). 4. K.1. These statements create an environment for cutter offset control statements.3 Examples REFSYS/M REFSYS/NO MORE 4.3 Examples RESERV/A.2 COORDINATE TRANSFORMATION DECLARATIONS 4. 4.3.0.0.3 Z-SURFACE DECLARATIONS 4. Z.1 Semantics. This declaration allows the x-y plane assumption to be overruled and declares points to here after lie on the specified plane. 4.4 t)ROCEDURE DECLARATIONS transformation declaration) ] (Z surface declaration} l (procedure declaration} I (vocabulary equivalence declaration) [ (cutter offset calculation declarations} 4. A point is one of the geometric entities t h a t m a y be defined in an A P T program. t t = 0 FROM/0. GO LFT/SURF1 GO RGT/SURF2. it appears with its coordinates transformed as specified in the declaration controlling the definition environment. At the termination of this process any formal p a r a m e t e r not replaced by an actual parameter will be replaced b y the normal name corresponding to t h a t formal parameter in the procedure heading. (vocabulary word) 4. the point is assumed to lie on a plane containing the x and y axes. A t the time of definition.6.5.2 4.2 Syntax (vocabulary equivalence declaration) :: = S Y N / 4. 26. (formal parameter list) (normal name) :: = (number) l(voeabulary word) ] (label) (procedure body) :: = (statement} [(procedure body) (statement} (procedure terminator) :: = TERMAC (procedure identifier} :: = (identifier) 4.4. An array declaration declares one or more identifiers to represent linear arrays of quantities or geometric entities.1 ARRAY DECLARATIONS 4.1 Semantics. the identifiers within the procedure body declared to be formal parameters in the procedure heading will be replaced by the names of the corresponding actual parameters.2.1 Semantics. X. 0.1 Semantics. 1963 . This declaration allows an arbit r a r y identifier to be made equivalent to an A P T vocabulary word.5. T h e word NO M O R E re-instates the normal environment.2 Syntax (procedure declaration) :: = (procedure heading) (procedure body) (procedure terminator} (procedure heading) :: = (procedure identifier) = MACRO/(formal parameter list) Syntax (array declaration) : : = R E S E R V / ( a r r a y list) (array list} :: = (array segment} I (array list). A procedure declaration defines the procedure associated with a procedure identifier.5.3 Example SYN/GT. TT. 4. (vocabulary word) I (equivalence list).4. C 4. Itt TERMAC 4. 1.1. This declaration establishes or re-establishes the direction of tool motion.5 VOCABULARY EQUIVALENCE DECLARATIONS 4. PNT2. 4. ((arithmetic expression)) ] (array identifier).1 Semantics.7. TANTO 4. Z. 4.1 Semantics.3 Example ZSURF/PL2 ZSURF/(PLANE/PNT1. (arithmetic variable} 4.0 Declarations 4. such as when it is desired to move the cutter to a specified C o m m u n i c a t i o n s o f t h e ACM 655 4. T h e y also alter the environment in which certain statements are executed. 4.6. Declarations define properties of the geometric entities and arithmetic quantities used within a program.1 Semantics. GO TO. unless explicitly defined otherwise. (array segment} (array segment} :: = (array identifier). (identifier). An enviromnent defined by a declararation remains in effect until it is superceded.1. I t is used primarily to resolve otherwise ambiguous initial continuous motion commands.7 DIRECTION DECLARATIONS 4.4.2 Syntax (declaration) :: = (array declaration} I (coordinate 4.2.6 CUTTER OFFSET CALCULATION DECLARATIONS 4. 12.3.2 Syntax (Z surface declaration) : : = ZSURF/((geometric expression)) I ZSURF/(gcometrie variable) (equivalence list) (equivalence list) :: = (identifier).4.1 Semantics. PNT3) V o l u m e 6 / N u m b e r 11 / N o v e m b e r .2. K.2 Syntax (cutter offset calculation declaration} :: = (direction declaration) I (calculation parameter declaration) I (tool position declaration} 4. This declaration creates a special environment in which geometric variables m a y be defined. When the procedure is referenced b y a procedure statement.

C. 2 4. 3 IND IRV/ (VECTOR/P1.7. N U M P T S specifies the m a x i m u m n u m b e r of points t h a t a single continuous m o t i o n c o m m a n d m a y produce.0001 h d.7. (arithmetic parameter). restore a n d inhibit forwarding of coordinates resulting f r o m cutter positioning s t a t e m e n t s to the postprocessor. 4. M A X D P specifies the m a x i m u m step length to be allowed in cutter offset calculations. (~}.position relative to a circle and the initial cutter location is.1 Semantics.c u t t i n g or " g o u g e " while outer tolerance ( 0 U T T O L ) affects a m o u n t of excess stock.1 Semantics.9.0 CUTTER SPECIFICATIONS 4. 4. 1 INDIRV/7.11. I (r} CUTTER/(d). (a}. ]. P S I S specifies a new p a r t surface. A 4. (h) (d} :: = (arithmetic parameter) (r) :: = (arithmetic parameter) (e} :: = (arithmetic parameter} if} :: =: (arithmetic parameter} (o~}:: = (arithmetic parameter) (B) :: = (arithmetic parameter} (h) : : = (arithmetic parameter) CALCULATION CONSTANT CONTROLS 4.t FtG.10.2 Syntax (cutter specification} :: = CUTTER/(d) CUTTER/(d}. 7.07). 1963 656 C o m m u n i c a t i o n s of the ACM .10. T H I C K adds a u n i f o r m excess to cutter control surfaces. T h e s e declarations specify par a m e t e r s and a r i t h m e t i c and logical constants for the internal calculations t h a t reduce continuous m o t i o n s t a t e m e n t s to sequences of discrete cutter center coordinates.1 Semantics. 1. NUMPTS/ (arithmetic parameter} IT H I C K / (arithmetic parameter}. (r). T h e N O R M P S m o d e specifies t h a t the tool axis is to be e v e r y w h e r e n o r m a l to the p a r t surface. 6.3. (arithmetic parameter}.O2 CUTTER/6. 4. (arithmetic parameter} ]PSIS/((geometric expression}) [ PSIS/(geometric variable} Volume 6 / N u m b e r 11 / November.621) OUTTOL/Q 4.9. (f).2 Syntax (tolerance specification} : : = TOLER/(arithmetic parameter} I INTOL/(arithmeticparameter} I OUTTOL/(arithmetic parameter) 4.3 Example CUTTER/1 . 9. 1. 4. P2) INDIRV/VECT1 4. All continuous m o t i o n c o m m a n d s are reduced to sequences of straight line motions departing f r o m the analytic cutter t a n g e n c y constraints b y no more t h a n a specified tolerance.8 CALCULATION PARAMETER DECLARATIONS 4.1 Semantics. indeed.2 Syntax (calculation parameter declaration} : : = (tolerance specification} I (cutter specification) ! (calculation constant control} TOLERANCE SPECIFICATIONS 4.11 4. 4.3 Example TOLER/. T w o alternative declarations allow specifying the direction in t e r m s of a v e c t o r or t o w a r d a point. (e}. a surface of revolution.2 Syntax (calculation constant control} : : = (calculation logic control) ](calculation arithmetic constant control} (calculation logic control> : : = CUT [ DNTCUT I MULTAX [ 3DCALC [ 2DCALC I NDTEST I NOPS (calculation arithmetic constant control} : : = TLAXIS/ (arithmetic parameter).9 INTOL/ (A/4. T w o b r o a d categories of declarations control a r i t h m e t i c and logic c o n s t a n t s used in c u t t e r offset calculations. (C+. (arithmetic parameter} 4.11. 4.2 Syntax {direction declaration} : : = INDIRP/(direction specifier) ] INDIRV/(direction specifier} (direction specifier} : : = ((geometric cxpression})l (geometric variable) I (arithmetic parameter}. :is defined b y its profile after Figure 2.9. T h e cutter. M U L T A X initiates o u t p u t of tool axis direction cosines to the postprocessor. (arithmetic parameter} ] TLAXIS/((geometric expression)) ITLAXIS/(geometric variable}l TLAXIS/ NORMPS IMAXDP/(arithmetic parameter>. C U T and D N T C U T respectively.10. I n n e r tolerance ( I N T O L ) affects u n d e r .3 Examples INDIRP/(POINT/1. the v e r y center of the circle.8. (arithmetic parameter}.2.8. 1) INDIRP/1. T L A X I S specifies the direction cosines of tool axis.

a system for the automatic programming of numerically controlled machine tools on small computers.5 4. Proc. (tool position declaration} (tool position specifier) : : = TL ON PS [ TL OF P S I TL N D ON [ T A N C R V I T L O N { T L L F T I T L R G T (continuous motion statement} : : = (intermediate continuous motion statement} [ (terminal continuous motion statement) REFERENCES 1.02 GEOMETRIC EXPRESSIONS POINT ELLIPS LINE HYPERB PLANE CONE CIRCLE GCONIC CYLNDR LCONIC VECTOR MATRIX SPHERE QADRIC POLCON TABCYL 4.11 POST PROCESSOR CONTROL STATEMENT END DELAY TRANS STOP AIR TRACUT OPSTOP OPSKIP INDEX ISTOP LEADER COPY RAPID PPLOT PREFUN SWITCH MACHIN COUPLE RETRCT MCHTOL PITCH DRESS PIVOTZ CLAMP PICKUP MCHFIN ENDMDI UNLOAD SEQNO ASLOPE PENUP INTCOD SADDLE PENDWN DISPLY LOADTL ZERO AUXFUN SELCTL CODEL CHECK CLEARC RESET POSTN CYCLE PLABEL TOOLNO DRAFT PLUNGE ROTABL RITMIDI HEAD ORIGIN PLOT MODE SAFETY OVPLOT CLEARP ARCSLP LETTER TMARK COOLNT PPRINT REWIND SPINDL PARTNO CUTCOM TURRET INSERT REVERS ROTHED CAMERA FEDRAT THREAD 3.11.4 INITIAL CONTINUOUS MOTION STATEMENTS GO OFFSET 3. N. The design and use of the A P T language for automatic programming of numerically controlled machine tools.9 V o l u m e 6 / N u m b e r 11 / N o v e m b e r . In Computer Applications--1961. the tangency specifier refers to the check surface for statement n -. AND WIRTn.12. 4. Revised report on the algorithmic language ALGOL 60. 140-156. Report. 1. 1963). PETER. H.7 2. (Air Force Contract AF 33(600)-43365).1 4.13 INPuT-OUTPUT CONTROL STATEMENTS PRINT READ TITLES PUNCH ARRAY DECLARATIONS RESERV COORDINATE TRANSFORMATION DECLARATIONS REFSYS Z-SURFACE DECLARATIONS ZSURF PROCEDURE DECLARATIONS MACRO TERMAC VOCABULARYEQUIVALENCE DECLARATIONS SYN DIRECTION DECLARATIONS INDIRP INDIRV TOLERANCE SPECIFICATIONS TOLER INTOL OUTTOL C o m m u n i c a t i o n s of t h e ACM 657 4.. A P P E N D I X A. ACM 6 (Jan. PT2) MAXDP/10 T H I C K / 0 .12 PROCEDURE STATEMENTS 3.. R.8 ARITHMETIC TRANSFER STATEMENTS IF JUMPTO 3. Ross..10 TERMINATION STATEMENTS FINI 3. 1-17. NAuR.5 INTERMEDIATE CONTINUOUS MOTION STATEMENTS GOLFT GOFWD GOUP GORGT GOBACK GODOWN 3. Eng.4 CUT D N T CUT T L A X I S / (VECTOR/PT1. BATES.3 APT VOCABULARY L I S T 4.4 4.12. D. 80-99. 5.4. . 1963 . ACM 6 (July 1963).6 REMARKS REMARKS FUNCTION DESIGNATORS DOTF SINF LNTHF COSF SQRTF EXPF LOGF ATANF ABSF 4. HUSKEY.A P T I I I . pp. The following rule applies: Tool Position Motion Tangency Specifier TLLFT TLLFT TLRGT TLRGT TLON TLON any any any any GOLFT GORGT GOLFT GORGT GOLFT GORGT GOFWD GOBACK GOUP GODOWN TO PAST PAST TO ON ON TANT0 TANT0 error error For a tool position and motion specified in statem e n t n. Comm. 1959 Computer Applications Symposium. pp. 15 July 1962-16 January 1963.3 EXPLICIT POSITIONING STATEMENTS FROM GODLTA GOTO 3.2 Syntax (tool position declaration) : : = (tool position specifier) [ (tool position specifier).0 CALL 3. 0. (continuous motion statement) [(tool position specifier).9 GEOMETRIC TRANSFER STATEMENTS TRANTO 3. LOVE. DOUGLAST. Chiergo. EDGAR A.2 4.1. The tool position declaration is used in lieu of a cutter tangeucy specifier in intermediate continuous motion statements.1 Semantics. International Business Machines Corporation. 367-375.12 TOOL POSITION DECLARATIONS 4. 2.3 Examples 2. ET AL. Comm. New York. San Jose. 4.2 STATEMENTS LOOPST L00PND 3. Final Teeh. Macmillan. A syntactic description of BC N E L I A C . Calif. Automatic programming for numerically controlled t o o l s . ADAPT. 3.

This was to have important consequences. Several years ago the ASA X3 sectional committee sponsored by B E M A was established to prepare standards for the USA in the information processing field.5. (See Appendix 1 for the meaning of abbreviations and acronyms. the BSI released the "Glossary of Terms Used in Automatic D a t a Processing.n subcommittees on the establishment of definitions required for their proposed standards and of establishing a standard glossary. its members are the representatives of the professional societies of various countries. F. After reworking a number of earlier drafts. the glossary effort has cost thousands of man-hours of work. It. SC1 accepted an offer by the I F I P / I C C Joint Terminology Committee to provide it with a first draft of a multilingual glossary. Tootill of the United Kingdom. At the same time there was important British standardization activity. The job of the USA representative is to serve as a liaison between SC1 and USA activity between meetings of SC1.4. 1.) ASA X3. p A S G I P . Murray Hill. a delegation is chosen to represent the USA. The secretariat was assigned to the Netherlands.10 CUTTER SPECIFICATIONS CUTTER 4.5 was assigned the double scope of advising the other X3. See also [3]. C. / November. I n SC1 each participating nation has one vote. I t was organized along subject rather than alphabetical lines.2 V o l u m e 6 / N u m b e r 11. which take place once every one to two years. as we shall see. The British effort differed in at least one very iraportant respect from the USA glossaries. M. Inc. B a c k g r o u n d ATANGL CENTER CROSS FUNOFY INTOF INVERS LARGE FEFT LENGTH MINUS NEGX NEGY NEGZ NOX NOY NOZ IN OUT ALL LAST NOMORE SAME MODIFY MIRROR START ENDARC CCLW CLW MEDIUM HIGH LOW CONST DECR INCR ROTREF TO PAST ON OFF IPM IPR CIRCUL LINEAR PARAB RPM MAXRPM TURN FACE BORE BOTH XAXIS YAXIS ZAXIS TOOL AUTO FLOOD PARLEL PERPTO PLUS POSX POSY POSZ RADIUS RIGHT SCALE SMALL TANTO TIMES TRANSL UNIT XLARGE XSMALL MIST TAPKUL STEP MAIN SIDE LINCIR MAXIPM REV TYPE NIXIE LIGHT FOURPT TWOPT PTSLOP PTNORM SPLINE RTHETA THETAR XYZ TRFORM NORMAL UP DOWN LOCK SFM XCOORD YCOORD ZCOORD MULTRD XYVIEW YZVIEW ZXVIEW SOLID DASH DOTTED CL DITTO PEN SCRIBE BLACK A considerable number of glossaries in the area of information processing have been produced in the USA in the last ten years [i.. but this need not be the case. For the meetings of SC1. Chairman. Mantz serves as chairman. The chairman of the J T C is G. 1963 658 C o m m u n i c a t i o n s o f t h e ACM .11 CALCULATION CONSTANT CONTROLS CUT NDTEST DNTCUT TLAXIS 2DCALC MULTAX 3DCALC MAXDP 4. 2]. which held its first meeting in Geneva in M a y 1961. while in other cases major new contributions were made. I S O / T C 9 7 / S C 1 (then known as I S O / T C 9 7 / W G A ) was given the task of providing a multilingual glossary. R. for general use. J. ASA X3. The USA professional society represented is A F I P S . The subject classified "Glossary of *USA Representative to ISO/TC97/SC1. I n some cases the glossaries were reworked versions of earlier glossaries. All told. N." British Standard 3527: 1962. Dr. TRAUB* Bell Telephone Laboratories. At its first meeting.12 Tool POSITION DECLARATIONS TLLFT TLNDON TLRGT TLON MODIFIER WORDS NUMPTS THICK NOPS PSIS TANCRV TLONPS TLOFPS XYPLAN XYROT YLARGE YSMALL YZPLAN YZPLAN YZROT ZLARGE ZSMALL ZXPLAN ZXROT 3PT2SL 4PT1SL 5PT INTERC SLOPE RED GREEN BLUE INTENS LITE MED DARK CHUCK COLLET AAXIS BAXIS CAXIS TPI OPTION RANGE PSTAN CSTAN FRONT REAR SADTUR MILL THRU DEEP TRAV NORMPS CONCRD GECENT SC4020 MILWAK BENDIX DYNPAT TRW ECS CINCY TRUTRA PRATTW FOSDIK BURG PROBOG DVLIEG SUNTRN USA Participation in an International Standard Glossary on Information Processing J. The leader of the delegation is often the man who serves as USA representative. A parallel action to the national standardization aetivities was the formation of ISO/TC97.

Sign up to vote on this title
UsefulNot useful