APT360 Programmers Manual

International Business Machine

Illinois Institute of Technology Research

Translation to DocBook: Sean Dolan, Daniel Falck, Simon Lundell, Thomas Powderly


This program has been developed to span the gap between the engineering drawing and the machine tool control system.

This manual describes APT (Automatically Programmed Tool), a programming system that uses an English-like language to describe a part shown as an engineering drawing. The statements are typed into an editor, converted by the APT processor into an intermediate format, and then converted to instructions that can be read by the machine tool controller.

IBM Application Program
System/360 APT Numerical Control Processor (360A-CN-10X) Version 4
Part Programming Manual
Fourth Edition (February 1969)
This edition is a major revision obsoleting H20-0309-2.

This edition applies to Version 4, Modification Level 0 of System/360
APT Numerical Control Processor (360A-CN-10X)
and all subsequent versions and modifications until otherwise
indicated in new editions or Technical Newsletters.

Table of Contents

Program Manuscript
Sample Part Program
Part Programming Manual Format
1. Language and Syntax
1.1. Elements of the APT Language
1.1.1. Punctuation
1.1.2. Vocabulary Words
1.1.3. Numbers
1.1.4. Symbols
1.1.5. Statement Labels
1.1.6. Statement Size Limitation
1.2. The Vocabulary Synonym (SYN) Statement
1.3. Word Conventions
2. Computing and Subscripted Variables
2.1. Computing in the APT Language
2.1.1. Scalars
2.1.2. Arithmetic Operators
2.1.3. Arithmetic Expressions
2.1.4. Arithmetic Functions
2.2. Subscripted Variables in the APT Language
2.2.1. The Reserve (RESERV) Statement
2.2.2. Inclusive Subscripts
3. Geometric Statements in APT
3.1. Format
3.1.1. Modifiers
3.1.2. Canonical Form
3.2. The ZSURF Definition
3.3. The Point (POINT) Definitions
3.3.1. Rectangular Coordinates
3.3.2. Intersection of Two Lines
3.3.3. Intersection of a Line and a Circle
3.3.4. Intersection of Two Circles
3.3.5. On a Circle at an Angle with the X Axis
3.3.6. Center of a Circle
3.3.7. Intersection of a Line and a Conic
3.3.8. Intersection of Three Planes
3.3.9. Polar Coordinates
3.3.10. Intersection of a Line and a Tabulated Cylinder
3.3.11. The Location in a PATERN
3.4. The Line (LINE) Definitions
3.4.1. Through Two Points
3.4.2. Through a Point and Tangent to a Circle
3.4.3. Tangent to Two Circles
3.4.4. Through a Point and at an Angle with the X or Y Axis
3.4.5. Through a Point and Having a Slope with Respect to the X or Y Axis
3.4.6. The X or Y Axis
3.4.7. Through a Point and Having a Slope with Respect to Another Line
3.4.8. Through a Point at an Angle with a Line
3.4.9. Through a Point and Parallel to a Line
3.4.10. Through a Point and Perpendicular to a Line
3.4.11. Parallel to a Line at a Distance
3.4.12. Intersection of Two Planes
3.4.13. Slope Intercept Form
3.4.14. Angle and Axis Intercept
3.4.15. Through a Point and Tangent to a Tabulated Cylinder
3.4.16. Through a Point and Perpendicular to a Tabulated Cylinder
3.5. The Plane (PLANE) Definitions
3.5.1. Coefficients of the Plane Equation
3.5.2. Passing Through Three Nonlinear Points
3.5.3. Through a Point and Parallel to a Plane
3.5.4. Parallel to a Plane at a Distance
3.5.5. Through a Point and Perpendicular to a Vector
3.5.6. Through Two Points and Perpendicular to a Plane
3.5.7. Perpendicular to Two Intersecting Planes and Passing Through a Point
3.6. The Circle (CIRCLE) Definitions
3.6.1. Coordinates of the Center and the Radius
3.6.2. Center and a Line to which it is Tangent
3.6.3. Center and a Point on the Circumference
3.6.4. Three Points on the Circumference
3.6.5. Center Point and Tangent to a Circle
3.6.6. Radius and Tangent to Two Intersecting Lines
3.6.7. Radius and Tangent to a Line and Passing Through a Point
3.6.8. Radius and Tangent to a Line and a Circle
3.6.9. Radius and Tangent to Two Circles
3.6.10. Radius and Tangent to a Line and a Tabulated Cylinder
3.7. The Cylinder (CYLNDR) Definitions
3.7.1. An Axis Point, an Axis Vector and a Radius
3.7.2. Substitution of Symbols in the Canonical Form
3.8. The Ellipse (ELLIPS) Definition
3.8.1. Center, Semi-Major and Semi-Minor Axes, and the Angle the Major Axis Makes with the X Axis.
3.9. The Hyperbola (HYPERB) Definition
3.9.1. Center, Half-Tranverse Axis, Half-Conjugate Axis and the Angle of the Transverse Axis to the X axis.
3.10. The Cone (CONE) Definitions
3.10.1. Canonical Form
3.10.2. Expressing the Vertex and Axis Vector Symbolically
3.11. The General Conic (GCONIC) Definitions
3.11.1. Coefficients of the General Equation
3.11.2. Coefficients of the Alternate Equation
3.11.3. Coefficients of the Inverse of the Alternate Equation
3.12. The Loft Conic (LCONIC) Definitions
3.12.1. Five Points
3.12.2. Four Points and a Slope
3.12.3. Three Points and a Two Slopes
3.13. The Vector (VECTOR) Definitions
3.13.1. X, Y, Z Components
3.13.2. Two End Points
3.13.3. Perpendicular to a Plane
3.13.4. A Scalar Times a Vector
3.13.5. The Cross Product of Two Vectors or Points
3.13.6. Normalizing a Vector, Point or Components
3.13.7. A Length (Magnitude) and an Angle in a Plane
3.13.8. Parallel to the Intersection of Two Planes
3.13.9. The Addition or Subtraction of Two Vectors or Points
3.13.10. In the XY Plane Having an Angle with a Line
3.14. The Matrix (MATRIX) Definitions
3.14.1. The Equation Coefficients (Canonical Form)
3.14.2. A Translation of Axis
3.14.3. A Rotation of Axis
3.14.4. Matrix Combinations
3.14.5. The Product of Two Matrices
3.14.6. The Inverse of a Matrix
3.14.7. Three Mutually Perpendicular Planes
3.14.8. Scale Factor
3.14.9. Origin, X Axis Vector and a Vector in the 1st or 2nd Quadrant
3.14.10. A Mirror Matrix about One or More Planes
3.14.11. A Mirror Matrix about a Line or Plane
3.15. The Sphere (SPHERE) Definitions
3.15.1. Center Point and Radius
3.15.2. Center Point and a Point on the Surface
3.15.3. Center Point and a Plane to which it is Tangent
3.15.4. Passing Through Four Points
3.16. The Quadric (QADRIC) Definitions
3.16.1. Permissible Quadric Surfaces
3.16.2. Quadratics as a Special Form of QADRIC
3.17. The Reference System (REFSYS) Statement
3.18. The Tabulated Cylinder (TABCYL) Definition
3.18.1. Transformation (TRFORM)
3.18.2. CANON Format
3.18.3. NOZ, RTHETA, THETAR Formats
3.18.4. NOX, NOY Formats
3.18.5. XYZ Format
3.19. The Polyconic (POLCON) Definition
3.19.1. Method of Definition
3.20. The Ruled Surface (RLDSRF) Definitions
3.20.1. Six Points and Two Surfaces
3.20.2. Two Surfaces, Four Points and Two Vectors
3.20.3. Two Surfaces, Five Points and a Vector
3.20.4. Replacing One of the Curves with a Point
3.21. Nested Definitions
3.21.1. Nested Geometric Definitions Instead of Symbols
3.21.2. Nested Geometric Definitions with Symbols Attached
3.21.3. Nested Geometric Definitions in Non-Geometric Definition Statements
3.21.4. Special Case of Nested Definition
3.22. The Canonical Form (CANON) Statement
3.22.1. Canonical Form Input
3.22.2. Reference to Previous Canonical Form
3.23. Additional Geometric Words
4. Point-To-Point Programming
4.1. The Initialization (FROM) Statement
4.2. The Absolute Movement (GOTO) Statement
4.3. The Incremental Movement (GODLTA) Statement
4.4. Implication of the ZSURF Statement
4.5. Pattern Definition Statement
4.5.1. Linear (LINEAR) Patterns
4.5.2. Arc (ARC) Patterns
4.5.3. Parallelogram (PARLEL) Patterns
4.5.4. Random (RANDOM) Patterns
4.6. Point-Point Motion Commands
4.6.1. INVERS Modifier
4.6.2. OMIT Modifier
4.6.3. RETAIN Modifier
4.6.4. AVOID Modifier
4.6.5. THRU Modifier
4.6.6. CONST Modifier
4.7. Point-Point Programming Considerations
4.7.1. Ordering of the Operations Performed on a Pattern
5. Programming a Tool Path
5.1. Introduction
5.1.1. Description of Cutter
5.1.2. Tolerance Specification
5.1.3. Surface Nomenclature
5.2. CUTTER to Surface Relationships
5.2.1. Part Surface
5.2.2. Drive Surface
5.2.3. Check Surface
5.3. Startup Procedures
5.3.1. Initialization
5.3.2. GO Surface Command
5.3.3. The OFFSET/ Statement
5.4. Motion Commands
5.4.1. General Form
5.4.2. Directional Modifiers
5.4.3. Surface Specification
5.5. Expanded Tolerance Statement
5.6. Multiple Intersections
5.7. Optional Feed Rate Specification
6. Postprocessor Statements
6.1. Postprocessor Commands without Parameters
6.2. Postprocessor Commands with Parameters
6.3. Fixed-Field Words
6.4. Special Feedrate Option
7. Special Words in the APT Language
7.1. Fixed-Field Words
7.1.1. The REMARK Statement
7.1.2. The PARTNO Statement
7.1.3. The PPRINT Statement
7.1.4. The INSERT Statement
7.1.5. The TITLES Statement
7.2. The Auxiliary Symbol Definition (OBTAIN) Statement
7.3. APT Processor Control Words
7.3.1. The NOPLOT Statement
7.3.2. The MACHIN Statement
7.3.3. The NOPOST Statement
7.3.4. The CLPRNT Statement
7.3.5. The CLTV Statement
7.3.6. The PTONLY Statement
7.3.7. The FINI Statement
8. Loops and Macros in the APT Language
8.1. The Loop Definition
8.1.1. The Loop Start (LOOPST) Statement
8.1.2. The Loop End (LOOPND) Statement
8.1.3. The Conditional Branching (IF) Statement
8.1.4. The Unconditional Branching (JUMPTO) Statement
8.1.5. Constructing a Loop
8.2. The Macro Definition
8.2.1. The Macro Definition Start (MACRO) Statement
8.2.2. The Macro Definition End (TERMAC) Statement
8.2.3. The Macro Execution (CALL) Statement
8.2.4. Definition of Macro Variables
8.2.5. Sample Macro Definition and Execution
8.2.6. Rules Concerning the Macro Language
8.2.7. Looping and Computing within a Macro
8.2.8. Nesting of Macros
8.3. System Macros
8.3.1. The LIBRY Statement
8.3.2. Executing System Macros
8.3.3. System Macro Example
8.4. Multiple Usage of Statement Labels
9. Pocketing
10. Sample Part Program Output
11. Input/Output Statements in the APT Language
11.1. The PRINT Statement
11.1.1. Use of TITLES with the PRINT Statement
11.1.2. Use of PRINT in a Loop or Macro
11.1.3. Alternate Form of the PRINT Statement
11.2. The PUNCH Statement
11.3. The READ Statement
12. Special Programs in APT -- CALL
12.1. Call by Value
12.2. Call by Parameter Name and Value
12.3. Use of Special Program
13. Cutter Path Transformation Statements
13.1. The Transform only (TRACUT) Statement
13.1.1. Sample TRACUT Usage
13.2. The Transform and COPY (COPY-INDEX) Statements
13.2.1. The INDEX Statement
13.2.2. The COPY Statement
13.2.3. Usage of the COPY Feature
13.2.4. Nesting of COPY Loops
13.3. Combined Use of TRACUT and COPY
13.4. Special Transformation Statements (VTLAXS, WCORN)
13.4.1. The VTLAXS Statement
13.4.2. The WCORN Statement
14. Special Techniques
14.1. Special Features
14.1.1. The Multiaxis Output (MULTAX) Statement
14.1.2. The Processor Mode (2DCALC, 3DCALC, NDTEST) Statements
14.1.3. The Number of Points (NUMPTS) Statement
14.1.4. The Maximum Step (MAXDP) Statement
14.1.5. The Thickness (THICK) Statement
14.1.6. The Delete Output (DNTCUT, CUT) Statements
14.1.7. The Transfer statement (TRANTO) Statements
14.1.8. The Special Cutter Option
14.1.9. The Special Calculation (GOUGCK) Statement
14.2. Startup Commands
14.2.1. The Effect of INDIR Vectors
14.2.2. Special Case GO/ Statements
14.2.3. Possible Startup Error Using OFFSET
14.2.4. The SRFVCT Statement
14.3. Implications of TO, ON, PAST, TANTO, and PSTAN
14.3.1. TO and PAST
14.3.2. ON
14.3.3. TANTO and PSTAN
14.3.4. Implicit Check Surface
14.3.5. Some Limiting Conditions
14.4. Multiaxis Programming
14.4.1. The Tool Axis (TLAXIS) Specification Statement
14.4.2. The Four-Axis Case
14.4.3. The Five-Axis Case
14.4.4. Impossible Specification
14.5. Arithmetic Element Requirements
14.5.1. Definition of Cutter Used in ARELEM Calculations
14.5.2. Cutter-to-Surface Calculation
14.5.3. Improper Cutter-to-Surface Relationships
14.5.4. Change in Tool Position Modifier
14.5.5. Impossible Specification
14.6. Implications of Ruled Surface (RLDSRF)
14.7. Limitations on Usage of Planes
14.8. Tangent Surface Limitations
15. Diagnostic Procedures
15.1. Error Messages
15.1.1. Control Program Error Message
15.1.2. Translation Phase Error Messages
15.1.3. Arithmetic Element Error Messages
15.1.4. Edit Phase Error Messages
15.1.5. Postprocessor Error Messages
15.2. Diagnostic Aids
15.2.1. The DEBUG Statement
15.2.2. DYNDMP
15.2.3. TUNEUP
16. Canonical Forms
16.1. POINT
16.2. LINE
16.3. PLANE
16.4. CIRCLE
16.5. CYLNDR
16.6. ELIPSE
16.7. HYPERB
16.8. CONE
16.9. GCONIC
16.10. LCONIC
16.11. VECTOR
16.12. MATRIX
16.13. SPHERE
16.14. QADRIC
16.15. TABCYL
16.16. POLCON
16.17. RLDSRF


List of Figures

1. APT System Flowchart
2. Sample Part Desciption
3. Sample Part Cutter Path
3.1. Geometry Modifier
3.2. POINT by Rectangular Coordinates
3.3. POINT by Line, Line Intersection
3.4. POINT by Line, Circle Intersection
3.5. POINT by Circle, Circle Intersection
3.6. POINT by Circle, Angle
3.7. POINT by Circle Center
3.8. POINT by Line, Conic Intersection
3.9. POINT by 3 Plane Intersection
3.10. POINT by Polar Coordinates
3.11. POINT by Line, Tabulated Cylinder Intersection
3.12. LINE by Two Points
3.13. LINE by Point and Tangent Circle
3.14. LINE by Tangent Circles
3.15. LINE by Point Angle
3.16. LINE by Point, Angle to Line
3.17. LINE by Point, Parallel Line
3.18. LINE by Point, Perpendicular Line
3.19. LINE by Distance from Parallel Line
3.20. LINE by Plane Intersection
3.21. LINE by Slope Intercept Form
3.22. LINE by Point, Tangent Tabulated Cylinder
3.23. LINE by Point, Tangent Tabulated Cylinder
3.24. PLANE by Coefficients
3.25. PLANE by Three Points
3.26. PLANE by Point, Parallel Plane
3.27. PLANE by Parallel Plane at Distance
3.28. PLANE by Point, Vector
3.29. PLANE by Two Points, Perpendicular Plane
3.30. CIRCLE by Coordinates, Radius
3.31. CIRCLE by Center Point, Tangent Line
3.32. CIRCLE by Center Point, Circumference Point
3.33. CIRCLE by Three Points
3.34. CIRCLE by Center Point, Tangent Circle
3.35. CIRCLE by Radius, Two Tangent Lines
3.36. CIRCLE by Radius, Point, Tangent Line
3.37. CIRCLE by Radius, Tangent Line, Tangent Circle
3.38. CIRCLE by Radius, Two Tangent Circles
3.39. CIRCLE by Radius, Tangent Line, Tangent TABCLY
3.40. CYLNDR by Point, Vector, Radius
3.41. ELLIPS Example
3.42. HYPERB Example
3.43. CONE by Canonical Form
3.44. LCONIC by Five Points
3.45. LCONIC by Four Points, Slope
3.46. LCONIC by Three Points, Two Slopes
3.47. VECTOR by X, Y, Z
3.48. VECTOR by Perpendicular Plane
3.49. VECTOR by Scaled Vector
3.50. VECTOR by Cross Product
3.51. VECTOR by Normal
3.52. VECTOR by Length, Angle
3.53. VECTOR by Intersecting Planes
3.54. VECTOR by Addition, Subtraction
3.55. VECTOR by Angle, Line
3.56. SPHERE by Center Point, Radius
3.57. SPHERE by Center Point, Tangent Plane
3.58. SPHERE by Four Points
3.59. Elliptic Cone
3.60. Elliptic Cylinder
3.61. Hyperbolic Cylinder
3.62. Parabolic Cylinder
3.63. Real Ellipsoid
3.64. Hyperboloid of One Sheet
3.65. Hyperboloid of Two Sheets
3.66. Elliptic Paraboloid
3.67. Hyperboloid Paraboloid
3.68. POLCON Nomenclature
3.69. RLDSRF by Six Points, Two Surfaces
3.70. RLDSRF by Two Surfaces, Four Points, Two Vectors
3.71. RLDSRF by Two Surfaces, Five Points, Vector
3.72. RLDSRF by Replacing Curve with Point
4.7. Sample Pattern 2
4.8. Sample Pattern 1
5.1. CUTTER Parameters
5.2. Simple CUTTER Examples
5.3. CUTTER Tolerance
5.4. Surface Nomenclature
5.9. Check Surface to Cutter Relationships
5.10. TANTO
5.11. PSTAN
5.12. INDIRV
5.13. INDIRP
5.14. Position Modifiers TO, ON, PAST
5.15. TO, ON, PAST in One-Surface Startup
5.16. NOPS in One-Surface Startup
5.17. INDIRV or INDIRP with NOPS
5.18. Impossible One-Surface Startup
5.19. Actual INDIRV Move
5.20. Possible Two-Surface Startup Positions
5.21. Two-Surface Startup INDIRV
5.22. Three-Surface Startup
5.23. Three-Surface Startup with INDIRV
5.24. One-Surface OFFSET
5.25. Two-Surface OFFSET
5.26. Directional Modifiers
5.27. GOLFT, GORGT Nomenclature
5.28. GOLFT, GORGT Example
5.29. GOFWD, GOBACK General Concept
5.30. GOUP, GODOWN Usage
5.31. AUTOPS Usage
5.32. Check Surface in Motion Command
5.33. Check Surface with Small Cutter
5.34. Check Surface with Large Cutter
5.35. Multiple Motion Intersections
9.1. Plane for Pocket Bottom
9.2. Tool Axis Normal to Plane
9.3. Tool Axis at Angle to Plane
9.4. Material Left in Pocket
13.1. TRACUT Programmed Pattern
13.2. TRACUT Transformed Pattern
13.3. Swarf Cut Path 1
13.4. Swarf Cut Path 2
13.5. Path Inflection
13.6. VTLAXS Tilt Direction
13.7. VTLAXS Drive Surface Side
13.8. VTLAXS Part Surface Penetration 1
13.9. VTLAXS Part Surface Penetration 2
13.10. VTLAXS Part Surface Penetration 3
13.11. WCORN Clean Out
14.1. Improper Check Surface
14.2. THICK, Add Material
14.3. THICK, Remove Material
14.4. DNTCUT, CUT Usage
14.5. TRANTO Usage
14.6. Disk Cutter Definition
14.7. Special CUTTER Position Move
14.8. Special CUTTER Invalid Cut Move
14.9. Special CUTTER Valid Cut Move
14.10. GOUGCK Sample Surface
14.11. GOUGCK Bad Cut Vector
14.12. INDIRV Usage
14.13. INDIRV Two Vector Form
14.14. INDIRV Error Condition
14.15. SRFVCT Usage
14.16. SRFVCT Two Vector Form
14.17. TO, ON, PAST Usage
14.18. TO, ON, PAST Usage
14.19. TANTO when ON DS
14.20. TANTO when Offset from DS
14.21. Pseudo Check Surface
14.22. TANTO Usage vs PAST, TO
14.23. TLAXIS Lead Angle
14.24. TLAXIS Lag Angle
14.25. TLAXIS β Angle Usage
14.26. TLAXIS α Angle Usage
14.27. TLAXIS Cone Envelope
14.28. TLAXIS α Cone Envelope
14.29. TLAXIS α Reduced to β Behavior
14.30. Five-Axis
14.31. TLAXIS Invalid Usage
14.32. ARELEM Usage of CUTTER
14.33. ARELEM, Cutter/Surface Calc 1
14.34. ARELEM, Cutter/Surface Calc 2
14.35. ARELEM, Invalid Cutter/Surface
14.36. ARELEM, Improper Cutter/Surface 1
14.37. ARELEM, Improper Cutter/Surface 2
14.38. ARELEM, Improper Cutter/Surface 3
14.39. ARELEM, Cutter Switching DS Side
14.40. ARELEM, Invalid Check Surface
14.41. Possible RLDSRF
14.42. Poor RLDSRF Definition
14.43. RLDSRF Ambiguity
14.44. RLDSRF, 3 Point vs 2 Point
14.45. Pseudo CS with Shallow Plane
14.46. Tangent PS-DS Failure
15.1. DYNDMP Output Format
15.2. DYNDMP Output (1 of 4)
15.3. DYNDMP Output (2 of 4)
15.4. DYNDMP Output (3 of 4)
15.5. DYNDMP Output (4 of 4)
15.6. DYNDMP Symbol Relationships 1
15.7. DYNDMP Symbol Relationships 2

List of Tables

1.1. Statement Elements
2.1. Operators
2.2. Operator Precedence
2.3. Arithmetic Functions
3.1. Geometry Type and Name
15.1. Transitional Phase Error Messages
15.2. Arithmetic Element Phase Error Messages
15.3. Edit Phase Error Messages
16.1. RLDSRF Canonical Formats

List of Examples

1. Sample Part Program Manuscript
5.1. GOFWD Usage
7.1. OBTAIN Usage
8.1. Looping
8.2. MACRO Usage
8.3. MACRO with Loop
8.4. System Macro
8.5. System Macro Usage
10.1. Sample Part Program Manuscript (Version 2)
13.1. VTLAXS Usage
13.2. WCORN Example Usage