home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / cad / cams305.zip / CAMSMAN.EXE / CAMSMAN.TXT next >
Text File  |  1993-05-20  |  200KB  |  6,361 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.                                                      C A M S
  24.  
  25.  
  26.                                                 PART PROGRAMMER'S
  27.                                                 REFERENCE MANUAL
  28.  
  29.  
  30.                                                 Version 3
  31.                                                 Modification 05
  32.  
  33.  
  34.  
  35.  
  36.                                                 Copyright (C) 1993
  37.                                                 by Computer Geometry Co.
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.                                                 May 20, 1993
  49.  
  50.  
  51.  
  52.  
  53.                                                 Computer Geometry Co.
  54.                                                 26624 Whispering Leaves
  55.                                                 Newhall, CA   91321
  56.                                                 (805) 252-4938
  57.  
  58.  
  59.  
  60.  
  61.         May 20, 1993              CAMS Part Programmer's Reference Manual
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.              CAMS comes with no warranties, expressed or implied, of
  108.              any  kind;  it is available as-is.   Computer  Geometry
  109.              Company  would like to be informed of any problems that
  110.              users of the program encounter, but makes no promise or
  111.              guarantee  that  such problems will be  fixed.   In  no
  112.              event will Computer Geometry Company be liable for  any
  113.              damages,  including  any  lost profits,  lost  savings,
  114.              failure   to   perform,    or   other   incidental   or
  115.              consequential  damages  arising  out  of  the  use,  or
  116.              inability  to  use,   the  program,  even  if  Computer
  117.              Geometry  has been advised of the possibility  of  such
  118.              damages, or for any claim by any other party.
  119.  
  120.  
  121.         Page 2                                                Disclaimer
  122.         May 20, 1993              CAMS Part Programmer's Reference Manual
  123.  
  124.  
  125.  
  126.                -------------------------------------------------
  127.                 C A M S   D I S T R I B U T I O N   N O T I C E
  128.                -------------------------------------------------
  129.  
  130.  
  131.         Computer   Geometry   Company  is  distributing  CAMS   via   the
  132.         "SHAREWARE" concept.   If,  after a reasonable trial period,  you
  133.         decide  to  use  the  product,  we will TRUST  you  to  send  the
  134.         requested $95.00 payment.
  135.  
  136.         You  may  obtain a copy of the latest CAMS evaluation  system  by
  137.         sending  $10.00 to Computer Geometry Company to cover the cost of
  138.         diskettes,  mailer, and postage.  Computer Geometry Co. will send
  139.         you the latest version of CAMS immediately by first class mail.
  140.  
  141.         You may also receive a copy of CAMS by sending $95.00.  This will
  142.         make  you  a "registered" owner.   All registered owners of  CAMS
  143.         will  receive a loose leaf copy of the Part  Programmer's  Manual
  144.         that  contains all of the information in this disk version of the
  145.         manual,  including the diagrams and illustrations that could  not
  146.         be included on the distribution diskette.
  147.  
  148.         In  addition,  registered  owners  receive  notification  of  new
  149.         program   updates,   releases,   and  additions,   including  the
  150.         availability of new postprocessors.   They also receive  priority
  151.         consideration  when  requesting postprocessors for machine  tools
  152.         not already covered by Computer Geometry products.
  153.  
  154.         If, after all this, you still decide not to send the payment, you
  155.         are  still  encouraged  to  copy  and  distribute  CAMS  to  your
  156.         associates with the following restrictions:
  157.  
  158.              1.   CAMS  is distributed as a complete set.   Do not alter,
  159.                   or  delete  any  program files  from  the  distribution
  160.                   copies.
  161.  
  162.              2.   No  charge  is to be made for copying  or  distributing
  163.                   CAMS, other than a reasonable copying fee not to exceed
  164.                   $10.00.
  165.  
  166.              3.   Commercial  sale  of CAMS in any manner  is  prohibited
  167.                   without Computer Geometry Company's written permission.
  168.  
  169.              4.   The  printed manual may not be copied or reproduced  in
  170.                   any way.
  171.  
  172.  
  173.  
  174.                              Computer Geometry Co.
  175.                           - 26624 Whispering Leaves -
  176.                               Newhall, CA  91321
  177.                                 (805) 252-4938
  178.  
  179.  
  180.  
  181.  
  182.         Page 3                                       Distribution Notice
  183.         May 20, 1993              CAMS Part Programmer's Reference Manual
  184.  
  185.  
  186.  
  187.                                  TABLE OF CONTENTS
  188.  
  189.  
  190.                 DISTRIBUTION NOTICE
  191.         1.      INTRODUCTION
  192.           1.1     CAMS System Description
  193.             1.1.1   The History Of CAMS
  194.           1.2     How To Read This Manual
  195.           1.3     The Distribution Disk
  196.           1.4     Execution
  197.             1.4.1   CAMS1.EXE
  198.             1.4.2   CAMS2.EXE
  199.             1.4.3   The XCAMS.BAT Procedure
  200.  
  201.         2.      LANGUAGE AND SYNTAX
  202.           2.1     Syntactic Elements
  203.             2.1.1   Major Words
  204.             2.1.2   Punctuation
  205.             2.1.3   Minor Words
  206.             2.1.4   Numbers
  207.             2.1.5   Symbols
  208.           2.2     Statement Limitations
  209.           2.3     Part Program Termination (FIN)
  210.  
  211.         3.      COMPUTING
  212.           3.1     Arithmetic Operators
  213.           3.2     Scalar Functions
  214.             3.2.1   Trigonometric Functions
  215.             3.2.2   Arithmetic Functions
  216.             3.2.3   The Obtain Statement (OBT/)
  217.           3.3     Arithmetic Expressions
  218.           3.4     Arithmetic Statements
  219.  
  220.         4.      GEOMETRY DEFINITION STATEMENTS
  221.           4.1     Canonical Form
  222.             4.1.1   Printing Canonical Forms
  223.             4.1.2   Canonical Replacement
  224.           4.2     Point Definition Patterns
  225.             4.2.1   A Point Defined By Rectangular Coordinates
  226.             4.2.2   A Point At The Intersection Of Two Lines
  227.             4.2.3   A Point Defined By Its Polar Coordinates
  228.             4.2.4   A Point On A Circle At A Given Angle To The X Axis
  229.             4.2.5   A Point On The Intersect Of A Circle And A Line
  230.             4.2.6   A Point At The Intersect Of Two Circles
  231.             4.2.7   A Point At The Center Of A Defined Circle
  232.             4.2.8   A Point At The Intersection Of Three Defined Planes
  233.             4.2.9   A Point At The Nth Intersection Of Line And Spline
  234.             4.2.10  A Point At The Nth Intersection Of Circle And Spline
  235.           4.3     Vector Definition Patterns
  236.             4.3.1   A Vector Defined By Its Components
  237.             4.3.2   A Vector Defined Between Two Points
  238.             4.3.3   A Vector The Cross Product Of Two Vectors
  239.             4.3.4   A Vector Defined As The Sum Of Two Vectors
  240.             4.3.5   A Vector Defined As The Difference Of Two Vectors
  241.  
  242.  
  243.         Page 4                                          Table Of Contents
  244.         May 20, 1993              CAMS Part Programmer's Reference Manual
  245.  
  246.  
  247.             4.3.6   A Vector As The Scalar Product Of Another Vector
  248.             4.3.7   A Unit Vector With The Direction Of A Given Vector
  249.             4.3.8   A Vector Perpendicular To A Given Plane
  250.             4.3.9   A Vector Parallel To The Intersection Of Two Planes
  251.           4.4     Line Definition Patterns
  252.             4.4.1   A line Defined By Coordinate Values Of Two Points
  253.             4.4.2   A Line Defined Between Two Points
  254.             4.4.3   A Line Thru A Point Perpendicular To Another Line
  255.             4.4.4   A Line Thru A Point Parallel To Another Line
  256.             4.4.5   A Line Thru A Point At An Angle To The X Axis
  257.             4.4.6   A Line Thru A Point At An Angle To Another Line
  258.             4.4.7   A Line Parallel To Another Line At A Given Offset
  259.             4.4.8   A Line Thru A Point Tangent To A Given Circle
  260.             4.4.9   A Line Tangent To Two Defined Circles
  261.             4.4.10  A Line Through A Point Perpendicular To A Circle
  262.             4.4.11  A Line Through A Point Parallel To A Circle
  263.             4.4.11  A Line Through A Point Perpendicular To A Spline
  264.             4.4.13  A Line Through A Point Parallel To A Spline
  265.            4.5     Plane Definition Patterns
  266.             4.5.1   A Plane Defined By Three Points
  267.             4.5.2   A Plane Thru A Point Parallel To A Given Plane
  268.             4.5.3   A Plane Parallel To Another Plane At A Given Offset
  269.             4.5.4   A Plane Thru A Point Perpendicular To A Vector
  270.             4.5.5   A  Plane Thru A Point Perpendicular To The  Intersec-
  271.                     tion Of Two Planes
  272.           4.6     Circle Definition Patterns
  273.             4.6.1   A Circle Defined By The Coordinates Of Center And Its
  274.                     Radius
  275.             4.6.2   A Circle Defined By A Point At Center And Its Radius
  276.             4.6.3   A Circle Defined By Two Points
  277.             4.6.4   A  Circle  Defined By A Point At Center Tangent To  A
  278.                     Defined Line
  279.             4.6.5   A  Circle  Defined By A Point At Center Tangent To  A
  280.                     Defined Circle
  281.             4.6.6   A  Circle Defined Thru A Point Tangent To  A  Defined
  282.                     Line
  283.             4.6.7   A Circle Tangent To Two Intersecting Lines
  284.             4.6.8   A Circle Tangent To A Line And A Circle
  285.             4.6.9   A Circle Tangent To Two Circles
  286.             4.6.10  A Circle Tangent To Three Lines
  287.             4.6.11  A Circle Defined Thru Three Points
  288.             4.6.12  A Circle Of A Given Radius Thru Two Points
  289.           4.7     Cylinder Definition Patterns
  290.             4.7.1   A Cylinder Defined By Its Canonical Form
  291.             4.7.2   A Cylinder Defined By Three Points And A Vector
  292.           4.8     Transformation Matrix Patterns
  293.             4.8.1   Matrix Archtypes
  294.             4.8.2   Examples
  295.           4.9     Spline Definition Patterns
  296.             4.9.1   A Spline Defined Thru Up To 25 Points
  297.             4.9.2   A Spline Defined Thru Up To 25 Points With End Control
  298.             4.9.3   A Spline Defined By An Offset To An Existing Spline
  299.           4.10    Point Pattern Definitions
  300.             4.10.1  A Linear Pattern Defined By A Point, An Angle, The
  301.                     Distance Between Points, And A Point Count
  302.  
  303.  
  304.         Page 5                                          Table Of Contents
  305.         May 20, 1993              CAMS Part Programmer's Reference Manual
  306.  
  307.  
  308.             4.10.2  A Circular Pattern Defined By A Circle, A Starting Angle,
  309.                     An Angular Increment, And A Point Count
  310.             4.10.3  A Pattern Defined By A Random Set Of Points And Patterns
  311.  
  312.         5.      POINT-TO-POINT PROGRAMMING
  313.           5.1     The Control Point
  314.           5.2     The Motion Initialization Statement (FROM/)
  315.           5.3     The Absolute Positioning Statement (GO/)
  316.           5.4     The Incremental Move Statement (GDL/)
  317.  
  318.         6.     CONTOUR PROGRAMMING
  319.           6.1     The Part Surface Statement (PS/)
  320.           6.2     Contouring Arcs (ARC/)
  321.           6.3     The Contour Startup (GO/)
  322.           6.4     Tool To Part Relationships (TLF, TON, TRG)
  323.           6.5     General Contour Motion (GFW/,GBK/,GLF/,GRT/)
  324.  
  325.         7.      TRANSFORMATIONS AND REPETATIVE PROGRAMMING
  326.           7.1     The Transform Cut Statement (TRA/)
  327.           7.2     The Index Statement (IDX/)
  328.           7.3     The Copy Statement (CPY/)
  329.           7.4     Reference Systems (REF/)
  330.           7.5     File Inclusion (GET/)
  331.  
  332.         8.      STANDARD CUTTING SEQUENCES
  333.           8.1     Standard cutting Sequences
  334.           8.2     Pocketing - The POC/ Statement
  335.           8.3     Helical Boring - The HLX/ Statement
  336.  
  337.         A.      APPENDIX A - VOCABULARY
  338.  
  339.         B.      APPENDIX B - SAMPLE PROGRAM
  340.  
  341.         C.      APPENDIX C - GENERAL CONTOURING SAMPLE PROGRAM
  342.  
  343.         D.      APPENDIX D - POSTPROCESSORS
  344.  
  345.         E.      APPENDIX E - GLOSSARY
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.         Page 6                                          Table Of Contents
  366.         May 20, 1993              CAMS Part Programmer's Reference Manual
  367.  
  368.  
  369.                                   INTRODUCTION
  370.  
  371.  
  372.         1.1        CAMS SYSTEM DESCRIPTION
  373.  
  374.              CAMS  is a language and a computer program designed for  use
  375.         in  generating  machine control data for  numerically  controlled
  376.         machine  tools.   It will accept a sequence of statements in  the
  377.         language  (called  a "part program") which defines  the  absolute
  378.         quantities  (dimensions) and shape of a workpiece.   It will  use
  379.         this information to calculate a cutter center location path.  The
  380.         cutter  center path is then processed by another computer program
  381.         (called  a  "postprocessor")  into instructions  for  a  specific
  382.         machine tool which will accurately machine the workpiece.
  383.  
  384.              Thus,  input  to  CAMS is a sequence of  statements  in  the
  385.         CAMS  language  read  by  the  CAMS  computer  programs  from  an
  386.         appropriate input device (e.g.  terminal keyboard,  floppy  disk,
  387.         etc.).   Output  from  CAMS  is a sequence of  calculated  cutter
  388.         center  locations written on an appropriate medium (floppy  disk,
  389.         terminal CRT, punched tape, etc.) to be used by the postprocessor
  390.         to  create  machine control data,  or to be read by a  human  for
  391.         verification of the computations.
  392.  
  393.              CAMS  has  been  developed to operate on any  IBM/PC  or  PC
  394.         compatible computing equipment that supports the MS-DOS or PC-DOS
  395.         operating system.  A minimum computer configuration consists of a
  396.         central  processing unit (CPU) containing at least 256K bytes  of
  397.         RAM  memory,  a  keyboard,  a CRT display,  an  80-column  system
  398.         printer, and at least two floppy disks.  While this configuration
  399.         will work,  performance of the CAMS system will be optimized if a
  400.         hard  disk and/or a minimum of 512K RAM-disk is available for the
  401.         CAMS working file device.  Typical output for NC is directly to a
  402.         NC machine via RS232C interface,  or to a paper tape punch. Hence
  403.         it is necessary to have at least one serial or parallel port with
  404.         the appropriate device attached.
  405.  
  406.              With the computer configuration mentioned above,  CAMS  will
  407.         accept part program source input from the keyboard or from stored
  408.         source  in a file on one of the disks.   CAMS will produce one or
  409.         more optional output listings on the system printer,  the CRT, or
  410.         to designated files on floppy disk;  and will write a complete CL
  411.         (cutter  location) file to floppy disk for later  postprocessing.
  412.         It is recommended that back-up copies of source files,  CL files,
  413.         and postprocessor output files produced by the system be made  to
  414.         prevent loss of valuable data.
  415.  
  416.  
  417.         1.1.1      THE HISTORY OF CAMS
  418.  
  419.              CAMS  is  not a new program.   It was developed in 1975  for
  420.         internal  use  by  Computer  Geometry  Company.   Then,  as  now,
  421.         Computer  Geometry  provided NC programming  services  for  small
  422.         machine  shops  who  either  did not  have  in-house  programming
  423.         capability,   or   whose  programming  requirements   temporarily
  424.  
  425.  
  426.         Page 7                                              Introduction
  427.         May 20, 1993              CAMS Part Programmer's Reference Manual
  428.  
  429.  
  430.         overflowed their capacity.
  431.  
  432.              Originally called "MICROAPT" (version 1.00), the program was
  433.         written  in  assembly language for use on a Computer  Automation,
  434.         Inc.,  (CAI) LSI 2-20 minicomputer.  The project was completed in
  435.         1976.   From 1976 to 1982,  the program was used to support  some
  436.         12-15 machine shops for several hundreds of workpieces.   A total
  437.         of 7 postprocessors were written, also in assembler language.
  438.  
  439.              By  1982,  the CAI equipment was aging,  and it was  obvious
  440.         that a replacement for "MICROAPT" was needed.   At that time, the
  441.         program  was re-written in FORTRAN for use on computers  equipped
  442.         with  the CP/M operating system.   The specific computer used  at
  443.         Computer Geometry is a Heathkit H89.   It was discovered that, in
  444.         the  intervening  time,  another  company had used  and  marketed
  445.         another software package under the name "MICROAPT".  Hence,  the
  446.         name was changed to "MINICAM" (version 2.00).
  447.  
  448.              The  CP/M version had some enhancement over the original CAI
  449.         version (specifically the GO/ and BMILL/ operations),  but ran at
  450.         about  one fourth the speed of the earlier program.   During  the
  451.         period between 1982 and 1987, a somewhat smaller group of machine
  452.         shops were supported, and seven postprocessors were developed.
  453.  
  454.              Since  1984,  Computer  Geometry has become more  active  in
  455.         commercial  software development for Numerical Control  purposes,
  456.         focusing  on  IBM PCs and compatibles as the  computing  vehicle.
  457.         By 1987,  it became necessary to transfer the program into the PC
  458.         environment.   Again,  in  the intervening time,  another company
  459.         began  marketing a program under the name "MINICAM."   There  was
  460.         nothing else to do but change the name.
  461.  
  462.              Hence, CAMS.
  463.  
  464.              At  the time of this writing,  the PC version of CAMS (3.00)
  465.         has been used on only a few parts.   However,  many  verification
  466.         tests  have been run,  producing program output identical to  the
  467.         CP/M  version.   At the time of this publication,  three  machine
  468.         postprocessors  have  been  converted to  PC,  and  two  plotting
  469.         postprocessors  have been prepared.   One of these is the VIDEOPP
  470.         that is included in this distribution.
  471.  
  472.              Incidently,  all  three  versions of the program  are  still
  473.         actively being used.
  474.  
  475.  
  476.  
  477.         1.2       HOW TO READ THIS MANUAL
  478.  
  479.              This  manual  is intended to be used as a  reference  by  NC
  480.         parts  programmers  and as a specification of the CAMS  language.
  481.         Certain notational conventions are followed throughout the manual
  482.         in  exhibiting the CAMS statement formats  and  examples.   These
  483.         are...
  484.  
  485.  
  486.  
  487.         Page 8                                              Introduction
  488.         May 20, 1993              CAMS Part Programmer's Reference Manual
  489.  
  490.  
  491.         <...>     The  <  and  >  characters  are  used  to  enclose  the
  492.                   description of a syntactic unit, such as a number, or a
  493.                   specific type of symbol.   E.g.  <point> means that the
  494.                   symbol  for a point is to be used at this place in  the
  495.                   statement.
  496.  
  497.         [...]     Anything enclosed in square brackets is optional to the
  498.                   statement.  E.g. in the statement...
  499.  
  500.                        PNT/<symbol>=IO,<line>,<line>[,<z>]
  501.  
  502.                   the statement element...
  503.  
  504.                        ,<z>
  505.  
  506.                   is  an  optional  parameter in the  definition  of  the
  507.                   point,  and  may  or may not be exercised by  the  part
  508.                   programmer.
  509.  
  510.         A...Z     Capitalized   elements   in   a  CAMS   statement   are
  511.                   vocabulary  words.    They  must  be  included  in  the
  512.                   statement exactly as written.
  513.  
  514.  
  515.  
  516.         1.3       THE DISTRIBUTION DISK
  517.  
  518.              The  distribution diskettes contain the files  necessary  to
  519.         execute the CAMS NC parts programming system.   The list of files
  520.         on the diskettes are...
  521.  
  522.         DISKETTE #1:
  523.  
  524.              XCAMS.BAT      A recommended batch submit file for CAMS. May
  525.                             not  be altered for shareware distribution of
  526.                             CAMS.
  527.  
  528.              CAMS1.EXE      The input translation phase of CAMS
  529.  
  530.              CAMS2.EXE      The path generation phase of CAMS
  531.  
  532.              VIDEOPP.EXE    A plotting postprocessor for the PC screen
  533.  
  534.              NUPAGE.LST     A formfeed file used by XCAMS.BAT
  535.  
  536.              ????????.NC    Sample CAMS part programs.
  537.  
  538.              CAMS.SCR       A shareware identification screen. May not be
  539.                             removed for shareware distribution of CAMS.
  540.  
  541.              CAMS.TBL       The  vocabulary  table  for  CAMS.   Must  be
  542.                             present  on  the default drive  for  CAMS  to
  543.                             function.
  544.  
  545.              CAMSMAN.EXE    Executing this program will generate the  two
  546.  
  547.  
  548.         Page 9                                              Introduction
  549.         May 20, 1993              CAMS Part Programmer's Reference Manual
  550.  
  551.  
  552.                             CAMS  reference  manuals  included  in   this
  553.                             distribution,  CAMSMAN.TXT  and  VIDEOPP.TXT.
  554.  
  555.              README.1ST     Contains  installation recommendations,  last
  556.                             minute  details,  and  a description  of  the
  557.                             terms   and  conditions  under   which   this
  558.                             shareware distribution is made.
  559.  
  560.              It  is  strongly  recommended that  working  copies  of  the
  561.         distribution diskette be made.   The original should be placed in
  562.         archival  storage,  to  be used to replace  aging  and  defective
  563.         working copies in the future.
  564.  
  565.  
  566.  
  567.         1.4       EXECUTION
  568.  
  569.              The  CAMS  NC  processor consists of two  software  modules,
  570.         called  CAMS1.EXE  and CAMS2.EXE,  and a vocabulary  file  called
  571.         CAMS.TBL.   At  each installation,  there is usually at least one
  572.         more  software  module,  called a  machine  postprocessor.
  573.  
  574.              CAMS  uses a single file name for all of it's output  files,
  575.         both  permanent  and temporary.   You  establish  the  <filename>
  576.         described below,  and CAMS will automatically use that <filename>
  577.         to  define each of its working output files.   Each such  working
  578.         file  is identified by its file extension.   The file  extensions
  579.         reserved for use by CAMS are as follows...
  580.  
  581.  
  582.             <filename>.NC   NC  is  always the part program source  file.
  583.                             the <filename> is used by you to identify all
  584.                             CAMS files relating to a single part program.
  585.  
  586.             <filename>.PRO  PRO is always the PROGRAM FILE (see below).
  587.  
  588.             <filename>.CAN  CAN is always the CANON FILE (see below).
  589.  
  590.             <filename>.CLF  CLF  is always the CUTTER LOCATION FILE  (see
  591.                             below).
  592.  
  593.             <filename>.PLT  PLT is always the PLOT FILE.
  594.  
  595.             <filename>.PCH  PCH   is  always  the  PUNCH   (Postprocessor
  596.                             output) FILE.
  597.  
  598.  
  599.              What  follows is a brief description of how the CAMS NC part
  600.         programming system operates...
  601.  
  602.  
  603.         1.4.1     CAMS1.EXE
  604.  
  605.              CAMS1 performs the input translation phase of NC processing.
  606.         It reads a file of instructions, written in the CAMS NC language,
  607.  
  608.  
  609.         Page 10                                              Introduction
  610.         May 20, 1993              CAMS Part Programmer's Reference Manual
  611.  
  612.  
  613.         and  converts  that into two output files for  later  processing.
  614.         The primary output,  called the PROGRAM FILE,  contains a list of
  615.         instructions  in computer readable form,  derived from statements
  616.         in the CAMS language that refer to machine motion and  auxilliary
  617.         function  control.   It also reduces all  caculations,  including
  618.         geometry definitions, into their respective canonical forms, e.g.
  619.         points,  lines,  circles,  numbers, etc.   These are placed in an
  620.         output  file which has the same <filename> as the input file  and
  621.         the file extension ".CAN".
  622.  
  623.              CAMS1  processes  input  statements until  it  reads  a  FIN
  624.         statement,  or  until  an  end of file is reached on  the  source
  625.         input.
  626.  
  627.              CAMS1  can also produce an output listing of the source  and
  628.         calculated canonical data on demand.  The listing can be produced
  629.         on the CRT screen, the system printer, or to a named file.
  630.  
  631.              The  CAMS1 processor is invoked by using a DOS command  line
  632.         as follows...
  633.  
  634.  
  635.              A>[d:\path\]CAMS1 <filename>.<ext>
  636.  
  637.  
  638.         The  optional control parameters on the command line are  defined
  639.         as follows...
  640.  
  641.           [d:\path\]        This  parameter specifies the DOS disk  drive
  642.                             unit  and/or path on which the file CAMS1.EXE
  643.                             (the  executable processor) is  located.   If
  644.                             CAMS1.EXE is located on the currently  active
  645.                             DOS disk, the parameter is optional.
  646.  
  647.           <filename>.<ext>  Informs  CAMS1 of the source input file  that
  648.                             is  to be read.   If this option is  omitted,
  649.                             then  CAMS1  expects to read input data  from
  650.                             the console keyboard,  typed in one line at a
  651.                             time,  after it displays the line number as a
  652.                             prompt.   <filename> may optionally include a
  653.                             DOS drive\path\ specification, but it must be
  654.                             understood  that the CAMS output  files  will
  655.                             also be sent using that drive\path\.
  656.  
  657.              Note  that  all CAMS1 printed output is always sent  to  the
  658.         console.   It may be redirected to file or printer using standard
  659.         DOS  redirection techniques.   A command line example might be as
  660.         follows...
  661.  
  662.  
  663.              C>CAMS1 B:PART1053.NC >B:PART1053.PR1
  664.  
  665.  
  666.              The  sample  command  line  executes  the  CAMS1  processor,
  667.         residing on disk drive C:  (or on a device\path accessible in the
  668.  
  669.  
  670.         Page 11                                              Introduction
  671.         May 20, 1993              CAMS Part Programmer's Reference Manual
  672.  
  673.  
  674.         current  path),  establishes  disk drive B:  as the CAMS  working
  675.         device,  which will also contain the three working  files,  reads
  676.         source input from the file PART1053.NC residing on disk drive B:,
  677.         and writes the listing file PART1053.PR1 to disk drive B:.
  678.  
  679.  
  680.         1.4.2     CAMS2.EXE
  681.  
  682.              CAMS2  is  the  path  generator for  the  CAMS  system.   It
  683.         requires the two files produced by CAMS1 as input, and produces a
  684.         file of cutter locations and paths,  called the CL FILE.   As  an
  685.         option,  it can produce a listing of cutter locations, on the CRT
  686.         screen, the system printer, or to a file.
  687.  
  688.              The  CAMS2 processor is invoked by using a DOS command  line
  689.         as follows...
  690.  
  691.              A>[d:\path\]CAMS2 <filename>.PRO
  692.  
  693.         The  optional control parameters on the command line are  defined
  694.         as follows...
  695.  
  696.           [d:\path\]        This  parameter specifies the DOS disk  drive
  697.                             unit and/or path on which the file  CAMS2.EXE
  698.                             (the  executable processor) is  located.   If
  699.                             CAMS2.EXE  is located on the currently active
  700.                             DOS disk, the parameter is optional.
  701.  
  702.            <filename>.PRO   Informs  CAMS2 of the program input file that
  703.                             is  to be read.   <filename>  may  optionally
  704.                             include a DOS drive\path\ specification,  but
  705.                             it  must be understood that the CAMS2  output
  706.                             files   will   also   be  sent   using   that
  707.                             drive\path\.
  708.  
  709.              Note  that all  CAMS2 printed output is always sent  to  the
  710.         console.   It may be redirected to file or printer using standard
  711.         DOS  redirection techniques.   A command line example might be as
  712.         follows...
  713.  
  714.  
  715.              C>CAMS2 B:PART1053.PRO >B:PART1053.PR2
  716.  
  717.  
  718.              The  sample  command  line  executes  the  CAMS2  processor,
  719.         residing on disk drive C: (or on a device\path\ accessible in the
  720.         current  path),  establishes  disk drive B:  as the CAMS  working
  721.         device,  which will also contain the three working  files,  reads
  722.         program  input from the file PART1053.PRO residing on disk  drive
  723.         B:,  and  writes the listing file PART1053.PR2 to disk drive  B:.
  724.         NOTE:  the  input file <filename>.PRO must have been produced  by
  725.         the CAMS1 program module.
  726.  
  727.  
  728.  
  729.  
  730.  
  731.         Page 12                                              Introduction
  732.         May 20, 1993              CAMS Part Programmer's Reference Manual
  733.  
  734.  
  735.         1.4.3     THE XCAMS.BAT PROCEDURE
  736.  
  737.  
  738.              To  provide  a  more automatic way to submit  CAMS  NC  part
  739.         programs for complete processing,  a batch  procedure,  XCAMS.BAT
  740.         (for eXecute CAMS) has been included in the distribution package.
  741.         XCAMS  provides  for full CAMS processing,  with optional  output
  742.         listing  to  screen  or  file,  and  for  optional  plotting  and
  743.         postprocessing.
  744.  
  745.              XCAMS  also provides fairly sophisticated error checking for
  746.         improper  submittals.   Error  checking includes 1)  verification
  747.         that  the source input file exists in the specified  data  access
  748.         path;   2)   verification  that  the  plotting  and/or  machining
  749.         postprocessors exist in the specified program access path; and 3)
  750.         verification that the specified processing options are correct.
  751.  
  752.              The correct command for the execution of the CAMS system is...
  753.  
  754.  
  755.           C>XCAMS  {name}  [MLP/ML/MP/LP/M/L/P] [plotter] [machine]
  756.  
  757.         where...
  758.  
  759.              {name}   The source file name (without extension) - required
  760.              M        Machine output --- [machine] name is required
  761.              L        Listing output --- produces {name}.LST
  762.              P        Plotter output --- [plotter] name is required
  763.  
  764.  
  765.              Options  omitting the "L" will print to the screen.   If  an
  766.         "M" is included in the option specifior, then the machine name is
  767.         required.   Similarly,  if  a  "P"  is  included  in  the  option
  768.         specifior,  then the plotter name ([plotter]) is required.   Note
  769.         also  that the specification of options and parameters  is  order
  770.         dependent,  which is to say that they must appear on the  command
  771.         line in precisely the order shown above.
  772.  
  773.              An example of a correct command line is as follows...
  774.  
  775.  
  776.           C>XCAMS THINGMJ MLP VIDEO BANDIT
  777.  
  778.  
  779.              This example executes the CAMS system, both CAMS1 and CAMS2,
  780.         using  as  source the file THINGMJ.NC residing on  the  currently
  781.         logged  disk (C:) and producing a listing file THINGMJ.LST on C:.
  782.         It further executes the VIDEOPP plotting postprocessor,  and  the
  783.         BANDITPP machine postprocessor.   VIDEOPP will produce a plot  of
  784.         the  cutter path on the PC console.   BANDITPP produces an output
  785.         file  called  THINGMJ.PCH  on drive C:,  which  is  suitable  for
  786.         transmission to a BANDIT controlled NC machine tool.
  787.  
  788.  
  789.  
  790.  
  791.  
  792.         Page 13                                              Introduction
  793.         May 20, 1993              CAMS Part Programmer's Reference Manual
  794.  
  795.  
  796.                               LANGUAGE AND SYNTAX
  797.  
  798.  
  799.         2.        LANGUAGE AND SYNTAX
  800.  
  801.              Input  to  CAMS,  called a Part Program,  is a  sequence  of
  802.              ordered  statements  from an input medium  which  constitute
  803.              instructions  to  the CAMS computing  system.   Input  media
  804.              include the terminal keyboard, a punched paper tape in ASCII
  805.              format,  a  file on floppy disk,  etc.   CAMS statements are
  806.              used to...
  807.  
  808.                   o    define a scalar number
  809.  
  810.                   o    define a geometric entity
  811.  
  812.                   o    describe auxilliary machine tool functions
  813.  
  814.                   o    describe a tool motion
  815.  
  816.                   o    describe standard cutting sequences
  817.  
  818.              IMPORTANT:  all  input  source programs to CAMS must  be  in
  819.              upper case characters.
  820.  
  821.  
  822.         2.1       SYNTACTIC ELEMENTS
  823.  
  824.              Each  CAMS  statement  is  made up of one  or  more  of  the
  825.              following syntactic elements...
  826.  
  827.                   o    A  keyword  describing the major function  of  the
  828.                        statement (also called a major word).
  829.  
  830.                   o    Punctuation characters.
  831.  
  832.                   o    Vocabulary words (also called minor words).
  833.  
  834.                   o    Numbers.
  835.  
  836.                   o    Symbols
  837.  
  838.  
  839.         2.1.1     MAJOR WORDS
  840.  
  841.              Every  CAMS statement must begin with a major word  followed
  842.              by  a slash (/),  unless the statement consists only of  the
  843.              major  word,  in which case the slash is not required.   The
  844.              major word describes the major function of the statement  to
  845.              the system.  Examples of major words are...
  846.  
  847.                   #/   Tells CAMS that a scalar value is to be entered or
  848.                        calculated.
  849.  
  850.                   PNT/ Tells CAMS that a point is to be defined.
  851.  
  852.  
  853.         Page 14                                        Language And Syntax
  854.         May 20, 1993              CAMS Part Programmer's Reference Manual
  855.  
  856.  
  857.  
  858.                   GTO/ Tells   CAMS   that  a  move  from   the   present
  859.                        position  of the cutter to the point specified  in
  860.                        the  remainder  of the statement is to  be  calcu-
  861.                        lated.
  862.  
  863.  
  864.         2.1.2     PUNCTUATION
  865.  
  866.              Certain  characters  on  the  terminal  keyboard  have  been
  867.              designated   as  valid  punctuation  for  CAMS   statements.
  868.              Punctuation  characters are used to separate other  language
  869.              elements   (thus  permitting  computer  recognition  of  the
  870.              elements),  and  to specify certain operations to  the  CAMS
  871.              system.   A list of valid CAMS punctuation,  and its meaning
  872.              to CAMS follows...
  873.  
  874.                   /    The   first  slash  in  every  CAMS  statement  is
  875.                        interpreted  as a major  word  terminator.   Every
  876.                        major word must be followed by a slash,  unless it
  877.                        is  the  sole  component of  the  CAMS  statement.
  878.                        Subsequent  use of the slash within any  statement
  879.                        is   interpreted  as  specifying  the   arithmetic
  880.                        operation of division, e. g.
  881.  
  882.                             #/A0=1/3
  883.  
  884.                   *    The  asterisk  character  is used to  specify  the
  885.                        arithmetic operation of multiplication, e. g.
  886.  
  887.                             #/A1=A0*7
  888.  
  889.                   +    The  plus  character  is used to  specify  1)  the
  890.                        arithmetic  operation of addition or 2) the  unary
  891.                        operation specifying positive, e. g.
  892.  
  893.                             #/A2=A0+A1
  894.  
  895.                             #/A3=+3
  896.  
  897.                        Note:  if the unary plus is omitted, it is assumed
  898.                        by CAMS.  For example, the second statement listed
  899.                        above   would  be  just  as  correct  if  it  were
  900.                        written...
  901.  
  902.                             #/A3=3
  903.  
  904.                   -    The  minus  character  is used to specify  1)  the
  905.                        arithmetic  operation  of subtraction  or  2)  the
  906.                        unary operation of negation, e. g.
  907.  
  908.                             #/A4=A2-A3
  909.  
  910.                             #/A5=-5
  911.  
  912.  
  913.  
  914.         Page 15                                        Language And Syntax
  915.         May 20, 1993              CAMS Part Programmer's Reference Manual
  916.  
  917.  
  918.                        Unlike  the  plus character,  the minus  character
  919.                        must always be used to specify negative numbers.
  920.  
  921.                   ^    The carat character (on some keyboards this is  an
  922.                        up  arrow)  is  used  to  specify  the  arithmetic
  923.                        operation of exponentiation.  For example...
  924.  
  925.                             #/A6=A5^2
  926.  
  927.                        tells  CAMS that the symbol A6 is to refer to  the
  928.                        value  represented  by  symbol A5  raised  to  the
  929.                        second power (squared).
  930.  
  931.                   =    The  equals  character  is  used to  1)  assign  a
  932.                        symbol,  or name,  to a geometric entity or 2)  to
  933.                        assign  a  value  to  a  scalar  variable  symbol.
  934.                        Examples are...
  935.  
  936.                             PNT/P0=0,0,0
  937.  
  938.                             #/A7=7.5
  939.  
  940.                   ()   The  left  and  right parentheses are used  to  1)
  941.                        enclose the arguments of an arithmetic function or
  942.                        2)  to  establish  the  precedence  of  arithmetic
  943.                        operations.  Examples are...
  944.  
  945.                             #/S250=SIN(250)
  946.  
  947.                             #/A8=(A7+A4-5)/S250
  948.  
  949.                   .    The period, or decimal point, character is used to
  950.                        specify  the  location of the decimal point  in  a
  951.                        number, e. g.
  952.  
  953.                             #/A9=9.375
  954.  
  955.                   :    The   colon  character  is  used  to  indicate   a
  956.                        comparison   operation  within  the  MIN  and  MAX
  957.                        functions.
  958.  
  959.                   ,    The  comma character is used to separate  elements
  960.                        of a CAMS statement where no other punctuation  is
  961.                        appropriate.  For example...
  962.  
  963.                             PNT/P2=A9,A8,-.05
  964.  
  965.  
  966.         2.1.3     MINOR WORDS
  967.  
  968.              CAMS  recognizes  a set of specific minor  vocabulary  words
  969.              which  1) indicate selections and choices to the system  and
  970.              2)   specify  the  use  of  certain  arithmetic   functions.
  971.              Examples are...
  972.  
  973.  
  974.  
  975.         Page 16                                        Language And Syntax
  976.         May 20, 1993              CAMS Part Programmer's Reference Manual
  977.  
  978.  
  979.                   PNT/P2=IO,L1,L2,.05
  980.  
  981.              which specifies a point at the intersection of (IO) lines L1
  982.              and L2 with a Z value of .05, or...
  983.  
  984.                   #/A70=ATN(.707107)
  985.  
  986.              which  assigns  the  value arc-tangent (using the minor  word
  987.              ATN) of .707107 to the symbol A70.
  988.  
  989.  
  990.         2.1.4     NUMBERS
  991.  
  992.              All numbers,  however specified,  are considered to be real,
  993.              or  floating point,  quantities by CAMS.   The number  range
  994.              used  for internal calculation purposes is 10E-38 to  10E37.
  995.              Numbers  may be entered only in their natural form,  e.  g.,
  996.              the number ten may be entered as...
  997.  
  998.                   10
  999.  
  1000.                   10.
  1001.  
  1002.                   10.0
  1003.  
  1004.              Numbers  used to express angles are always input in  decimal
  1005.              degrees.   That is,  the angle 30 degrees and 25 minutes  is
  1006.              entered  as 30.4167 when used in a CAMS statement.   Angular
  1007.              dimensions  are measured from a parallel to the  positive  X
  1008.              axis of the coordinate system.   The angle is positive if it
  1009.              measures  a counter-clockwise rotation,  and negative if  it
  1010.              measures a clockwise rotation.
  1011.  
  1012.  
  1013.         2.1.5     SYMBOLS
  1014.  
  1015.              A  symbol is used to define an entity,  either geometric  or
  1016.              scalar,  in  a  CAMS statement which is to be referenced  in
  1017.              subsequent statements of the part program.  For example, the
  1018.              statement..
  1019.  
  1020.                   PNT/P7=COS(30),SIN(30),.5
  1021.  
  1022.              defines  a  point  whose  coordinates  are   [.86603,.5,.5].
  1023.              Subsequent  part program statements can refer to this  point
  1024.              by the symbol P7.  The statement...
  1025.  
  1026.                   GTO/P7
  1027.  
  1028.              tells  CAMS  to move the cutter from wherever it is  to  the
  1029.              coordinates [.86603,.5,.5].
  1030.  
  1031.              Symbols in the CAMS language are composed of one capitalized
  1032.              alphabetic character (e.g. A,B,...,Z) followed by a sequence
  1033.              of not more than three (3) numeric characters which  express
  1034.  
  1035.  
  1036.         Page 17                                        Language And Syntax
  1037.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1038.  
  1039.  
  1040.              a  number  (n)  in  the range 0 <= n  <=  255.  This  symbol
  1041.              structure imposes an absolute upper bound of 26x256 or  6656
  1042.              symbols  in any part program.   Leading zeroes in the symbol
  1043.              number are ignored by CAMS, hence...
  1044.  
  1045.                   A3   A03  A003
  1046.  
  1047.              all refer to the same entity,  and are not separate,  unique
  1048.              symbols.
  1049.  
  1050.              Since a symbol contains a numeric component, it is sometimes
  1051.              convenient  to  symbolically  define the  numeric  component
  1052.              rather than explicitly define it.  This is particularly true
  1053.              when defining repetative motion sequences and/or families of
  1054.              parts.  For this reason,  a special set of parentheses,  the
  1055.              square  brackets ("[" and "]") are used to define a  numeric
  1056.              subscript which,  coupled with  an alphabetic character, can
  1057.              be used to specify a symbol.   The following CAMS  statement
  1058.              sequences serve to illustrate the use of subscripted symbols
  1059.              and are exactly equivalent:
  1060.  
  1061.                   #/ I10= 100
  1062.                   PNT/ P[I10]= 1.25,0.5
  1063.                   LIN/ L[I10]= P[I10],ANG,30
  1064.  
  1065.                   PNT/ P100= 1.25,0.5
  1066.                   LIN/ L100= P100,ANG,30
  1067.  
  1068.              Care  must  be  exercised to be sure that  the  symbol  used
  1069.              inside  the  square brackets has been assigned to a  numeric
  1070.              value  (n) in the range 0 <= n <= 255 prior to its use as  a
  1071.              symbol component.
  1072.  
  1073.  
  1074.         2.2       STATEMENT LIMITATIONS
  1075.  
  1076.              All  statements  must  be  complete  in  a  maximum  of  256
  1077.              meaningful input characters.   Meaningful characters are any
  1078.              characters  except the space.   Any number of spaces may  be
  1079.              included  to make the CAMS statements more  readable.   CAMS
  1080.              ignores them.
  1081.  
  1082.              Continuation of a statement to the next line is indicated by
  1083.              entering an ampersand character (&) as the last character of
  1084.              the line.  For example...
  1085.  
  1086.                   MAT/M1=1,0,0,0,&
  1087.                          0,1,0,0,&
  1088.                          0,0,1,0
  1089.  
  1090.              is exactly equivalent to the statement...
  1091.  
  1092.                   MAT/M1=1,0,0,0,0,1,0,0,0,0,1,0
  1093.  
  1094.              and  accounts  for  30  meaningful  characters  of  the  256
  1095.  
  1096.  
  1097.         Page 18                                        Language And Syntax
  1098.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1099.  
  1100.  
  1101.              character maximum.
  1102.  
  1103.              Certain statements permit no continuation.   A complete list
  1104.              of these statements are..
  1105.  
  1106.                   PNO/      which identifies a part program.
  1107.  
  1108.                   PPR/      which  permits  operator instructions  to  be
  1109.                             included in a part program.
  1110.  
  1111.                   REM/      which permits the inclusion of non-executable
  1112.                             remarks in the part program.
  1113.  
  1114.                   INS/      which  permits  literal  insertion  into  the
  1115.                             punch tape output of a part program.
  1116.  
  1117.  
  1118.         2.3       PART PROGRAM TERMINATION (FIN)
  1119.  
  1120.              Every  part  program must be terminated by a FIN  statement.
  1121.              The  FIN statement has no parameters and is always the  last
  1122.              statement in the part program.  For example...
  1123.  
  1124.                   :
  1125.                   PRT/ALL
  1126.                   FIN
  1127.  
  1128.              exhibits  a proper termination of the  part  program,  after
  1129.              printing all of the canon table entries.
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.         Page 19                                        Language And Syntax
  1159.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1160.  
  1161.  
  1162.                                       COMPUTING
  1163.  
  1164.         3.        COMPUTING
  1165.  
  1166.              One  of  the principal benefits of the CAMS language is  its
  1167.              capability  to  perform indicated  calculations  within  any
  1168.              appropriate  statement.   The  computing feature  permits  a
  1169.              given  quantity to be expressed as the result of one or more
  1170.              arithmetic  operations.   At any point in a  CAMS  statement
  1171.              where a number is required,  an arithmetic expression may be
  1172.              substituted.  For example, the statement...
  1173.  
  1174.                   #/B3=7.+3*SQR(2)
  1175.  
  1176.              specifies that B3 is to be assigned the value 11.2426, which
  1177.              is the result of multiplying the square root of 2 by 3, then
  1178.              adding 7.  Any combination of scalars, arithmetic operators,
  1179.              arithmetic  expressions enclosed in parentheses,  and scalar
  1180.              valued functions,  so long as syntactically correct,  may be
  1181.              used in an arithmetic expression.
  1182.  
  1183.  
  1184.         3.1       ARITHMETIC OPERATORS
  1185.  
  1186.              The CAMS arithmetic operators are...
  1187.  
  1188.                   +    arithmetic addition or unary positive
  1189.  
  1190.                   -    arithmetic subtraction or unary negative
  1191.  
  1192.                   *    arithmetic multiplication
  1193.  
  1194.                   /    arithmetic division
  1195.  
  1196.                   ^    arithmetic exponentiation
  1197.  
  1198.  
  1199.         3.2       SCALAR VALUED FUNCTIONS
  1200.  
  1201.              CAMS   provides   the   following  set  of   scalar   valued
  1202.              functions...
  1203.  
  1204.  
  1205.         3.2.1     TRIGONOMETRIC FUNCTIONS
  1206.  
  1207.              Sine        SIN(arg)     arg  =  any  arithmetic  expression
  1208.                                       specifying  an  angle  in   decimal
  1209.                                       degrees.
  1210.  
  1211.              Cosine      COS(arg)     arg  =  any  arithmetic  expression
  1212.                                       specifying  an  angle  in   decimal
  1213.                                       degrees.
  1214.  
  1215.              Arctangent  ATN(arg)     arg  =  any  arithmetic  expression
  1216.                                       specifying   the  tangent  of   the
  1217.  
  1218.  
  1219.         Page 20                                                  Computing
  1220.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1221.  
  1222.  
  1223.                                       angle.
  1224.  
  1225.  
  1226.         3.2.2     ARITHMETIC FUNCTIONS
  1227.  
  1228.              Absolute    ABS(arg)     arg  =  any arithmetic  expression;
  1229.              Value                    returns   the  absolute  value   of
  1230.                                       "arg".
  1231.  
  1232.              Exponential EXP(arg)     arg  = any  arithmetic  expression;
  1233.                                       returns  e  (2.71828...) raised  to
  1234.                                       the "arg" power.
  1235.  
  1236.              Base 10     LGD(arg)     arg  = any  arithmetic  expression;
  1237.              Logarithm                returns  the logarithm of "arg"  to
  1238.                                       the base 10.
  1239.  
  1240.              Base e      LOG(arg)     arg  =  any arithmetic  expression;
  1241.              Logarithm                returns  the  natural logarithm  of
  1242.                                       "arg".
  1243.  
  1244.              Square Root SQR(arg)     arg  = any  arithmetic  expression;
  1245.                                       returns the square root of "arg".
  1246.  
  1247.              Integer     INT(arg)     arg  =  any arithmetic  expression;
  1248.                                       returns  the  integer part  of  the
  1249.                                       number  "arg" as a  floating  point
  1250.                                       integer.
  1251.  
  1252.              Modulus     MOD(a,m)     a,m  =  any  arithmetic  expression
  1253.                                       representing     floating     point
  1254.                                       integers;  returns a modulo m.
  1255.  
  1256.              Sign        SGN(a,s)     a,s  =  any arithmetic  expression;
  1257.                                       returns sign of s times a.
  1258.  
  1259.              Minimum     MIN(a:b)     a,b  = any  arithmetic  expression;
  1260.              Value                    returns  the minimum value of a and
  1261.                                       b.
  1262.  
  1263.              Maximum     MAX(a:b)     a,b  = any  arithmetic  expression;
  1264.              Value                    returns  the maximum value of a and
  1265.                                       b.
  1266.  
  1267.  
  1268.         3.2.3     THE OBTAIN STATEMENT (OBT/)
  1269.  
  1270.              Many  geometric  definitions  produce,   as  part  of  their
  1271.              canonical  forms,  numeric values that are usable  in  other
  1272.              computations.   CAMS provides the obtain statement to permit
  1273.              you  to  extract  a number from the canonical  form  of  any
  1274.              definable element and assign it to a symbol.
  1275.  
  1276.              The obtain statement format is as follows...
  1277.  
  1278.  
  1279.  
  1280.         Page 21                                                  Computing
  1281.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1282.  
  1283.  
  1284.                   OBT/<symbol>=<canonical symbol>,<position #>
  1285.  
  1286.              Where  the  <canonical symbol> is the symbolic name  of  the
  1287.              element you wish to retrieve from canon, and <position #> is
  1288.              the  position of the desired number in the  canonical  form.
  1289.              For example, the statement...
  1290.  
  1291.                   PNT/P1=IO,L5,L7
  1292.                   OBT/Y1=P1,2
  1293.  
  1294.              will retrieve the second value in the canonical form for the
  1295.              point P1 and assign it to the symbolic name Y1.  Y1 may then
  1296.              be used anywhere that a scalar value is acceptable.
  1297.  
  1298.  
  1299.         3.3       ARITHMETIC EXPRESSIONS
  1300.  
  1301.              Symbols representing scalars, numbers, arithmetic operators,
  1302.              and  scalar  valued  functions with their arguments  may  be
  1303.              combined  to  form  an  arithmetic expression  in  the  CAMS
  1304.              language.  Examples of well-formed expressions include...
  1305.  
  1306.                   3*S1-C2
  1307.  
  1308.                   7*SQR(2.4)/(A3^3)
  1309.  
  1310.              In the CAMS language,  an arithmetic expression may be  used
  1311.              at any point in a statement which requires entry of a scalar
  1312.              value.   To avoid ambiguity, arithmetic operators and scalar
  1313.              functions   are  assigned  priorities  which  establish  the
  1314.              sequence  of  operations  used  to  evaluate  an  arithmetic
  1315.              expression.  These priorities are...
  1316.  
  1317.                   5 (highest)    scalar function
  1318.  
  1319.                   4              unary + or -
  1320.  
  1321.                   3              exponentiation (^)
  1322.  
  1323.                   2              multiplication (*) and division (/)
  1324.  
  1325.                   1              addition (+) and subtraction (-)
  1326.  
  1327.              Parentheses  are  used to alter the priority of  operations.
  1328.              For example, the result of...
  1329.  
  1330.                   10*2+3
  1331.  
  1332.              is 23, whereas the result of...
  1333.  
  1334.                   10*(2+3)
  1335.  
  1336.              is 50.
  1337.  
  1338.  
  1339.  
  1340.  
  1341.         Page 22                                                  Computing
  1342.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1343.  
  1344.  
  1345.         3.4       ARITHMETIC STATEMENTS
  1346.  
  1347.              Any valid symbol may be assigned to a scalar value by  means
  1348.              of   an  arithmetic  statement.    An  arithmetic  statement
  1349.              consists  of  the  major word  #/;  followed  by  a  symbol;
  1350.              followed   by  the  punctuation  =;   then  followed  by  an
  1351.              arithmetic expression.   Examples of well formed  arithmetic
  1352.              statements are...
  1353.  
  1354.                   #/A10=10
  1355.  
  1356.                   #/B255=2*SQR(2)
  1357.  
  1358.              The value of a symbol may be changed at will within the part
  1359.              program.  For example...
  1360.  
  1361.                   #/A10=10
  1362.                   #/A10=A10^2
  1363.  
  1364.              represents  a perfectly valid way to assign the value 100 to
  1365.              the symbol A10.
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.         Page 23                                                  Computing
  1403.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1404.  
  1405.  
  1406.                           GEOMETRY DEFINITION STATEMENTS
  1407.  
  1408.         4.        GEOMETRY DEFINITION STATEMENTS
  1409.  
  1410.              The  CAMS part programming system is designed to permit  the
  1411.              definition  of  a variety of geometric entities,  each in  a
  1412.              variety of ways.  The CAMS geometric entity classes are...
  1413.  
  1414.                   PNT/      POINT
  1415.                   VEC/      VECTOR
  1416.                   LIN/      LINE
  1417.                   PLN/      PLANE
  1418.                   CIR/      CIRCLE
  1419.                   CYL/      CYLINDER
  1420.                   MAT/      TRANSFORMATION MATRIX
  1421.                   SPL/      SPLINE (FREE-FORM CURVE)
  1422.  
  1423.              The format for a geometry defining statement is...
  1424.  
  1425.                   <major>/<symbol>=[method of definition]
  1426.  
  1427.              Some  of the methods of definition require minor  vocabulary
  1428.              words  when  there needs to be a selection of more than  one
  1429.              possible geometric entity for the input data.  An example of
  1430.              this might be...
  1431.  
  1432.                   LIN/L1=P1,LFT,C1
  1433.  
  1434.              which  uses  the minor word "LFT" (LeFT) to permit  CAMS  to
  1435.              distinquish  between the two possible resulting lines.   LFT
  1436.              indicates that,  looking from the point towards the  circle,
  1437.              the leftmost of the two possible lines is the chosen line.
  1438.  
  1439.  
  1440.         4.1       CANONICAL FORM
  1441.  
  1442.              There are a great many ways to define a point, or a line, or
  1443.              a  circle,  etc.,  which  depend upon the known  information
  1444.              about the specific geometry entity in question.   To use all
  1445.              of  these methods to store the information about a  geometry
  1446.              entity would require prohibitive amounts of computer  memory
  1447.              for  both data and software.   Therefore,  for each geometry
  1448.              subtype,  there is exactly one stored form which is used  by
  1449.              CAMS  for  subsequent  references.   This stored  format  is
  1450.              called the canonical form.
  1451.  
  1452.              The  canonical form for the geometric entities listed  above
  1453.              are as follows...
  1454.  
  1455.              POINT (VECTOR)      X, Y, Z        The   X,    Y,    and   Z
  1456.                                                 coordinates  (components)
  1457.                                                 of the point (vector).
  1458.  
  1459.              LINE (PLANE)        A,  B, C, D     The direction cosines of
  1460.                                                  a unit vector  perpendi-
  1461.  
  1462.  
  1463.         Page 24                             Geometry Definition Statements
  1464.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1465.  
  1466.  
  1467.                                                  cular    to   the   line
  1468.                                                  (plane) [A,  B,  C]  and
  1469.                                                  the   directed  distance
  1470.                                                  from   the    coordinate
  1471.                                                  origin   to   the   line
  1472.                                                  (plane),  [D].   This is
  1473.                                                  also known as the "plane
  1474.                                                  equation".
  1475.  
  1476.              CIRCLE (CYLINDER)   X, Y  Z,        The  coordinates   of  a
  1477.                                  I, J, K,        point [X,  Y,  Z] on the
  1478.                                  R               axis of the circle  (cy-
  1479.                                                  linder),  the components
  1480.                                                  of  a unit vector  along
  1481.                                                  the  axis of the  circle
  1482.                                                  (cylinder),    and   the
  1483.                                                  radius   of  the  circle
  1484.                                                  (cylinder).
  1485.  
  1486.              TRANSFORMATION      A1,B1,C1,D1     The  twelve values of  a
  1487.              MATRIX              A2,B2,C2,D2     3x4     matrix      that
  1488.                                  A3,B3,C3,D3     represents  a   combined
  1489.                                                  rotation and translation
  1490.                                                  in     three-dimensional
  1491.                                                  space.
  1492.  
  1493.              SPLINE CURVE        X1,Y1,A1,B1,S1  For each  defined  point
  1494.                                      :     :     on the curve,  the point
  1495.                                  Xn,Yn,An,Bn,Sn  (Xn,Yn),   the   forward
  1496.                                                  tangent vector  (An,Bn),
  1497.                                                  and  the  length of  the
  1498.                                                  chord  between the point
  1499.                                                  and  its successor  (Sn)
  1500.                                                  is stored.
  1501.  
  1502.              SPLINE OFFSET       NAME,offset     The  name and  index  of
  1503.                                                  the  parent  spline  and
  1504.                                                  the signed offset value,
  1505.                                                  positive    for     LFT,
  1506.                                                  negative for RGT.
  1507.  
  1508.  
  1509.         4.1.1          PRINTING CANONICAL FORMS (PRT/)
  1510.  
  1511.              Any  or all of the canonical forms for the defined  geometry
  1512.              and  scalars may be printed at any point in the part program
  1513.              by  means of the PRT/ statement.  The formats for  the  PRT/
  1514.              statement are...
  1515.  
  1516.                   PRT/<symbol>,....,<symbol>
  1517.  
  1518.                or PRT/ALL
  1519.  
  1520.              The  "ALL"  minor  word  causes all canonical  forms  to  be
  1521.              printed.
  1522.  
  1523.  
  1524.         Page 25                             Geometry Definition Statements
  1525.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1526.  
  1527.  
  1528.  
  1529.         4.1.2     CANONICAL REPLACEMENT
  1530.  
  1531.              In  general,  every symbolically defined entity in CAMS must
  1532.              have a unique symbol.  However, CAMS has a restricted symbol
  1533.              set  consisting of 26 alphabetic characters,  each permitted
  1534.              256 instances.   For this reason, provision has been made to
  1535.              permit  replacement of any defined entity on an instance  by
  1536.              instance  basis.   The  vocabulary  word "CAN"  is  used  to
  1537.              accomplish this end, as follows...
  1538.  
  1539.                     :
  1540.                   PNT/ P12= 2.25,1.125
  1541.                     :
  1542.                     :
  1543.                   PNT/ P12= CAN,IO,L5,L6
  1544.                     :
  1545.  
  1546.              Canonical replacement must be made in kind; that is, a point
  1547.              can  only  be replaced by another  point,  a  line/plane  by
  1548.              another line/plane,  and so forth.  Since scalars may always
  1549.              be replaced, the vocabulary word "CAN" is meaningless in the
  1550.              assignment of a scalar, and hence is not allowed.
  1551.  
  1552.  
  1553.  
  1554.         4.2       POINT DEFINITION PATTERNS
  1555.  
  1556.              A point is a unique position in three-dimensional space.  It
  1557.              can be defined in a number of ways.  In CAMS, any definition
  1558.              format  for  a point may include  an  optional,  appended  Z
  1559.              coordinate.
  1560.  
  1561.              Selection modifiors used by the point definitions are:
  1562.  
  1563.                   XL   XLARGE    The point with the largest X coordinate
  1564.                   XS   XSMALL    The point with the smallest X coordinate
  1565.                   YL   YLARGE    The point with the largest Y coordinate
  1566.                   YS   YSMALL    The point with the smallest Y coordinate
  1567.  
  1568.              In the case of spline intercept definitions for a point,  it
  1569.              must  be noted that multiple intersections can occur.   When
  1570.              seeking such intercepts,  CAMS finds ALL intercepts for  the
  1571.              element up to and including the intercept number included in
  1572.              the  definition.  (See definitions 4.2.9 and 4.2.10.)  It is
  1573.              important  to  remember  that the spline  is  directed  (see
  1574.              section 4.9),  and that the intercepts are counted from  the
  1575.              beginning of the curve.
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.         Page 26                             Geometry Definition Statements
  1586.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1587.  
  1588.  
  1589.         4.2.1     A POINT DEFINED BY RECTANGULAR COORDINATES
  1590.  
  1591.                   PNT/symbol=x,y,z
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.         4.2.2     A POINT AT THE INTERSECTION OF TWO LINES
  1618.  
  1619.                   PNT/symbol=IO,line,line[,z]
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.         Page 27                             Geometry Definition Statements
  1647.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1648.  
  1649.  
  1650.         4.2.3     A POINT DEFINED BY ITS POLAR COORDINATES
  1651.  
  1652.                   PNT/symbol=XYR,angle,radius[,z]
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.         4.2.4     A POINT ON A CIRCLE AT A GIVEN ANGLE TO THE X-AXIS
  1678.  
  1679.                   PNT/symbol=circle,ANG,angle[,z]
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.         Page 28                             Geometry Definition Statements
  1708.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1709.  
  1710.  
  1711.         4.2.5     A POINT ON THE INTERSECT OF A CIRCLE AND A LINE
  1712.  
  1713.                   PNT/symbol=modifior,circle,line[,z]
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.         4.2.6     A POINT AT THE INTERSECTION OF TWO CIRCLES
  1739.  
  1740.                   PNT/symbol=modifior,circle,circle[,z]
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.         Page 29                             Geometry Definition Statements
  1769.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1770.  
  1771.  
  1772.         4.2.7     A POINT AT THE CENTER OF A DEFINED CIRCLE
  1773.  
  1774.                   PNT/symbol=circle[,z]
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.         4.2.8     A POINT AT THE INTERSECTION OF THREE DEFINED PLANES
  1800.  
  1801.                   PNT/symbol=plane,plane,plane[,z]
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.         Page 30                             Geometry Definition Statements
  1830.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1831.  
  1832.  
  1833.         4.2.9     A POINT AT THE Nth INTERCEPT OF LINE AND SPLINE
  1834.  
  1835.                   PNT/symbol=IO,n,line,spline[,z]
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.         4.2.10    A POINT AT THE Nth INTERCEPT OF CIRCLE AND SPLINE
  1861.  
  1862.                   PNT/symbol=IO,n,circle,spline[,z]
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.         Page 31                             Geometry Definition Statements
  1891.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1892.  
  1893.  
  1894.         4.3       VECTOR DEFINITION PATTERNS
  1895.  
  1896.              A  vector  in CAMS is defined to be an ordered set of  three
  1897.              numbers  that  represent both a direction and  magnitude  in
  1898.              three-dimensional  space.    Normally,   a  vector  is   not
  1899.              considered to be "anchored", that is to say, its position in
  1900.              space  is  irrelevant,  only  its attitude  and  length  are
  1901.              relevant.   One  can  think  of a vector  as  an  arrow,  of
  1902.              specific  length,  that always points in the same direction,
  1903.              no matter where it is moved.
  1904.  
  1905.              If  a  vector  is  to  be anchored  with  its  tail  on  the
  1906.              coordinate origin, then the three numbers that represent the
  1907.              vector  exactly  correspond  with  the  three  numbers  that
  1908.              represent  the  point at its tip.   Thus we can see  that  a
  1909.              vector  has  the  identical  canonical format  as  a  point.
  1910.              CAMS,  in its canonical forms,  does not distinguish between
  1911.              an  entity  defined as a vector an an entity  defined  as  a
  1912.              point.    Thus,   given   a  point,   a  new  point  can  be
  1913.              incrementally  defined  from  that  point  by  defining  the
  1914.              incremental vector and (vector) adding it to the point.  For
  1915.              example, the statement sequence...
  1916.  
  1917.                   PNT/P1=1,1,1
  1918.                   VEC/V1=1,0,1
  1919.                   VEC/P2=ADD,P1,V1
  1920.  
  1921.              will   produce   a  geometric  entity  (P2)  which  can   be
  1922.              considered, in subsequent statements, as either a point or a
  1923.              vector  having component values [2,1,2].   Note  that,  even
  1924.              though we consider P2 a point, it was necessary to define it
  1925.              as a vector.
  1926.  
  1927.              Selection modifiors used by the vector definitions are:
  1928.  
  1929.                   XL   XLARGE    The vector with the largest X component
  1930.                   XS   XSMALL    The vector with the smallest X component
  1931.                   YL   YLARGE    The vector with the largest Y component
  1932.                   YS   YSMALL    The vector with the smallest Y component
  1933.                   ZL   ZLARGE    The vector with the largest Z component
  1934.                   ZS   ZSMALL    The vector with the smallest Z component
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.         Page 32                             Geometry Definition Statements
  1952.         May 20, 1993              CAMS Part Programmer's Reference Manual
  1953.  
  1954.  
  1955.         4.3.1     A VECTOR DEFINED BY ITS COMPONENTS
  1956.  
  1957.                   VEC/symbol=x,y,z
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.         4.3.2     A VECTOR DEFINED BETWEEN TWO POINTS
  1983.  
  1984.                   VEC/symbol=point,point
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.         Page 33                             Geometry Definition Statements
  2013.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2014.  
  2015.  
  2016.         4.3.3     A VECTOR THE CROSS PRODUCT OF TWO VECTORS
  2017.  
  2018.                   VEC/symbol=CROS,vector,vector
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.         4.3.4     A VECTOR DEFINED AS THE SUM OF TWO VECTORS
  2044.  
  2045.                   VEC/symbol=ADD,vector,vector
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.         Page 34                             Geometry Definition Statements
  2074.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2075.  
  2076.  
  2077.         4.3.5     A VECTOR DEFINED AS THE DIFFERENCE OF TWO VECTORS
  2078.  
  2079.                   VEC/symbol=SUB,vector,vector
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.         4.3.6     A VECTOR AS THE SCALAR PRODUCT OF ANOTHER VECTOR
  2105.  
  2106.                   VEC/symbol=MPY,scalar,vector
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.         Page 35                             Geometry Definition Statements
  2135.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2136.  
  2137.  
  2138.         4.3.7    A UNIT VECTOR WITH THE SAME DIRECTION AS A GIVEN VECTOR
  2139.  
  2140.                   VEC/symbol=UNIT,vector
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.         4.3.8     A VECTOR PERPENDICULAR TO A GIVEN PLANE
  2166.  
  2167.                   VEC/symbol=PERP,plane,modifior
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.         Page 36                             Geometry Definition Statements
  2196.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2197.  
  2198.  
  2199.         4.3.9     A VECTOR PARALLEL TO THE INTERSECTION OF TWO PLANES
  2200.  
  2201.                   VEC/symbol=PARL,IO,plane,plane,modifior
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.         4.4       LINE DEFINITION PATTERNS
  2227.  
  2228.              A  line  is normally considered the path of a  moving  point
  2229.              which  has the shortest distance between two  fixed  points.
  2230.              This is not the case in CAMS.   For purposes of machine tool
  2231.              control,  it is more convenient to consider a line to be the
  2232.              edge view of a plane in three-dimensional space.  Therefore,
  2233.              all  lines  in  CAMS  are defined to  be  planes  which  are
  2234.              perpendicular  (i.e.  in edge view) to the X-Y plane of  the
  2235.              reference coordinate system in which they are defined.
  2236.  
  2237.              Selection modifiors used by the line definitions are:
  2238.  
  2239.                   XL   XLARGE    The line farthest offset in increasing X
  2240.                   XS   XSMALL    The line farthest offset in decreasing X
  2241.                   YL   YLARGE    The line farthest offset in increasing Y
  2242.                   YS   YSMALL    The line farthest offset in decreasing Y
  2243.                   ZL   ZLARGE    The line farthest offset in increasing Z
  2244.                   ZS   ZSMALL    The line farthest offset in decreasing Z
  2245.                   LFT  LEFT      The leftmost of two possible conditions
  2246.                   RGT  RIGHT     The rightmost of two possible conditions
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.         Page 37                             Geometry Definition Statements
  2257.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2258.  
  2259.  
  2260.         4.4.1     A LINE DEFINED BY COORDINATE VALUES OF TWO POINTS
  2261.  
  2262.                   LIN/symbol=x1,y1,x2,y2
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287.         4.4.2     A LINE DEFINED BETWEEN TWO POINTS
  2288.  
  2289.                   LIN/symbol=point,point
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.         Page 38                             Geometry Definition Statements
  2318.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2319.  
  2320.  
  2321.         4.4.3     A LINE THRU A POINT AND PERPENDICULAR TO ANOTHER LINE
  2322.  
  2323.                   LIN/symbol=point,PERP,line
  2324.  
  2325.  
  2326.  
  2327.  
  2328.  
  2329.  
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.         4.4.4     A LINE THRU A POINT AND PARALLEL TO ANOTHER LINE
  2349.  
  2350.                   LIN/symbol=point,PARL,line
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.         Page 39                             Geometry Definition Statements
  2379.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2380.  
  2381.  
  2382.         4.4.5     A LINE THRU A POINT AT A GIVEN ANGLE TO THE X AXIS
  2383.  
  2384.                   LIN/symbol=point,ANG,angle
  2385.  
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.         4.4.6     A LINE THRU A POINT AT A GIVEN ANGLE TO ANOTHER LINE
  2410.  
  2411.                   LIN/symbol=point,ANG,angle,line
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.         Page 40                             Geometry Definition Statements
  2440.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2441.  
  2442.  
  2443.         4.4.7     A LINE PARALLEL TO ANOTHER LINE AT A GIVEN OFFSET
  2444.  
  2445.                   LIN/symbol=PARL,line,modifior,offset
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.         4.4.8     A LINE THRU A POINT AND TANGENT TO A GIVEN CIRCLE
  2471.  
  2472.                   LIN/symbol=point,modifior,circle
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.         Page 41                             Geometry Definition Statements
  2501.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2502.  
  2503.  
  2504.         4.4.9     A LINE TANGENT TO TWO DEFINED CIRCLES
  2505.  
  2506.                   LIN/symbol=modifior,circle,modifior,circle
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.         4.4.10    A LINE THRU A POINT PERPENDICULAR TO A CIRCLE
  2532.  
  2533.                   LIN/symbol=point,PERP,circle
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.         Page 42                             Geometry Definition Statements
  2562.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2563.  
  2564.  
  2565.         4.4.11    A LINE THRU A POINT PARALLEL TO A CIRCLE
  2566.  
  2567.                   LIN/symbol=point,PARL,circle
  2568.  
  2569.              Note:  The  resulting  parallel line is perpendicular  to  a
  2570.              normal to the circle thru the point.
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.         4.4.12    A LINE THRU A POINT PERPENDICULAR TO A SPLINE
  2593.  
  2594.                   LIN/symbol=point,PERP,spline
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.         Page 43                             Geometry Definition Statements
  2623.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2624.  
  2625.  
  2626.         4.4.13    A LINE THRU A POINT PARALLEL TO A SPLINE
  2627.  
  2628.                   LIN/symbol=point,PARL,spline
  2629.  
  2630.              Note:  The  resulting  parallel line is perpendicular  to  a
  2631.              normal to the spline thru the point.
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.  
  2654.         4.5       PLANE DEFINITION PATTERNS
  2655.  
  2656.              Since CAMS regards a line as the edge view of a plane, there
  2657.              is  no basic difference between a line and a plane except in
  2658.              their  respective  definition  patterns.   For  example,  to
  2659.              define  a  plane as the concurrence  points  requires  three
  2660.              points.   However,  in the line definitions, only two points
  2661.              are required, since the desired "line" (i.e. plane) is known
  2662.              to  be  perpendicular to the X-Y plane of  reference.   This
  2663.              makes  the  line  definitions  a  convenient  shorthand   to
  2664.              defining planes.   The canonical forms are identical.  Plane
  2665.              definitions  are  included in CAMS to provide the  means  of
  2666.              defining those part planes that are not perpendicular to the
  2667.              X-Y coordinate plane.
  2668.  
  2669.              Selection modifiors used by the plane definitions are:
  2670.  
  2671.                   XL   XLARGE    The plane farthest offset in increasing X
  2672.                   XS   XSMALL    The plane farthest offset in decreasing X
  2673.                   YL   YLARGE    The plane farthest offset in increasing Y
  2674.                   YS   YSMALL    The plane farthest offset in decreasing Y
  2675.                   ZL   ZLARGE    The plane farthest offset in increasing Z
  2676.                   ZS   ZSMALL    The plane farthest offset in decreasing Z
  2677.  
  2678.              A plane may be defined by its canonical form...
  2679.  
  2680.                   PLN/symbol=a,b,c,d
  2681.  
  2682.  
  2683.         Page 44                             Geometry Definition Statements
  2684.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2685.  
  2686.  
  2687.         4.5.1     A PLANE DEFINED BY THREE POINTS
  2688.  
  2689.                   PLN/symbol=point,point,point
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.         4.5.2     A PLANE THRU A POINT AND PARALLEL TO A GIVEN PLANE
  2715.  
  2716.                   PLN/symbol=PARL,plane,point
  2717.  
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.         Page 45                             Geometry Definition Statements
  2745.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2746.  
  2747.  
  2748.         4.5.3     A PLANE PARALLEL TO ANOTHER PLANE AT A GIVEN OFFSET
  2749.  
  2750.                   PLN/symbol=modifior,plane,offset
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.         4.5.4     A PLANE THRU A POINT AND PERPENDICULAR TO A VECTOR
  2776.  
  2777.                   PLN/symbol=PERP,vector,point
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.         Page 46                             Geometry Definition Statements
  2806.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2807.  
  2808.  
  2809.         4.5.5     A PLANE THRU A POINT, PERPENDICULAR TO THE INTERSECTION
  2810.                   OF TWO PLANES
  2811.  
  2812.                   PLN/symbol=PERP,IO,plane,plane,point
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.         4.6       CIRCLE DEFINITION PATTERNS
  2837.  
  2838.              A circle is normally considered the locus of all points in a
  2839.              plane that are equidistant from a fixed point in the  plane.
  2840.              For purposes of defining parts for NC machining,  it is more
  2841.              convenient  to  regard a circle as the edge view of a  right
  2842.              circular  cylinder  whose axis is perpendicular to  the  X-Y
  2843.              coordinate  plane.   This  is  the way it is done  in  CAMS.
  2844.              Thus, the canonical form of a circle is identical to that of
  2845.              a cylinder.
  2846.  
  2847.              Selection modifiors used by the circle definitions are:
  2848.  
  2849.                   XL   XLARGE    The plane farthest offset in increasing X
  2850.                   XS   XSMALL    The plane farthest offset in decreasing X
  2851.                   YL   YLARGE    The plane farthest offset in increasing Y
  2852.                   YS   YSMALL    The plane farthest offset in decreasing Y
  2853.                   ZL   ZLARGE    The plane farthest offset in increasing Z
  2854.                   ZS   ZSMALL    The plane farthest offset in decreasing Z
  2855.                   IN             The circle that lies inside the defining
  2856.                                  circle
  2857.                   OUT            The circle that lies outside the defining
  2858.                                  circle
  2859.                   LGE  LARGE     The largest of two resulting circles
  2860.                   SMA  SMALL     The smallest of two resulting circles
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.         Page 47                             Geometry Definition Statements
  2867.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2868.  
  2869.  
  2870.         4.6.1     A  CIRCLE  DEFINED  BY THE COORDINATES  OF  CENTER  AND
  2871.                   ITS RADIUS
  2872.  
  2873.                   CIR/symbol=xc,yc,radius
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.         4.6.2     A  CIRCLE  DEFINED  BY A POINT ON ITS  CENTER  AND  ITS
  2898.                   RADIUS
  2899.  
  2900.                   CIR/symbol=point,radius
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927.         Page 48                             Geometry Definition Statements
  2928.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2929.  
  2930.  
  2931.         4.6.3     A  CIRCLE  DEFINED  BY THE TWO-POINT METHOD
  2932.  
  2933.                   CIR/symbol=point,point
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.         4.6.4     A  CIRCLE DEFINED BY ITS CENTER POINT AND TANGENT TO  A
  2959.                   DEFINED LINE
  2960.  
  2961.                   CIR/symbol=point,TGT,line
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.         Page 49                             Geometry Definition Statements
  2989.         May 20, 1993              CAMS Part Programmer's Reference Manual
  2990.  
  2991.  
  2992.         4.6.5     A  CIRCLE DEFINED BY ITS CENTER POINT AND TANGENT TO  A
  2993.                   DEFINED CIRCLE
  2994.  
  2995.                   CIR/symbol=point,LGE,line
  2996.                                    SMA
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.         4.6.6     A  CIRCLE DEFINED THRU A POINT AND TANGENT TO A LINE
  3020.  
  3021.                   CIR/symbol=TGT,line,modifior,point,radius
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.  
  3044.  
  3045.  
  3046.  
  3047.  
  3048.  
  3049.         Page 50                             Geometry Definition Statements
  3050.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3051.  
  3052.  
  3053.         4.6.7     A  CIRCLE TANGENT TO TWO INTERSECTING LINES
  3054.  
  3055.                              XL      XL
  3056.                   CIR/symbol=XS,line,XS,line,radius
  3057.                              YL      YL
  3058.                              YS      YS
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.         4.6.8     A  CIRCLE TANGENT TO A LINE AND A CIRCLE
  3081.  
  3082.                              XL      XL IN
  3083.                   CIR/symbol=XS,line,XS,OUT,circle,radius
  3084.                              YL      YL
  3085.                              YS      YS
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.         Page 51                             Geometry Definition Statements
  3111.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3112.  
  3113.  
  3114.         4.6.9     A  CIRCLE TANGENT TWO TWO INTERSECTING CIRCLES
  3115.  
  3116.                              XL IN         IN
  3117.                   CIR/symbol=XS,OUT,circle,OUT,circle,radius
  3118.                              YL
  3119.                              YS
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138.  
  3139.  
  3140.  
  3141.         4.6.10    A CIRCLE TANGENT TO THREE LINES
  3142.  
  3143.                              XL      XL      XL
  3144.                   CIR/symbol=XS,line,XS,line,XS,line
  3145.                              YL      YL      YL
  3146.                              YS      YS      YS
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.         Page 52                             Geometry Definition Statements
  3172.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3173.  
  3174.  
  3175.         4.6.11    A  CIRCLE DEFINED THRU THREE POINTS
  3176.  
  3177.                   CIR/symbol=point,point,point
  3178.  
  3179.  
  3180.  
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  
  3199.         4.6.12    A CIRCLE OF A GIVEN RADIUS THRU TWO POINTS
  3200.  
  3201.                              XL
  3202.                   CIR/symbol=XS,point,point,radius
  3203.                              YL
  3204.                              YS
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.         Page 53                             Geometry Definition Statements
  3233.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3234.  
  3235.  
  3236.  
  3237.         4.7       CYLINDER DEFINITION PATTERNS
  3238.  
  3239.              As  mentioned in the section on circles (section 4.10),  the
  3240.              canonical forms of the "circle" and cylinder are  identical.
  3241.              The  circle definitions make it convenient for the NC  parts
  3242.              programmer  to  define  cylinders (circles) whose  axes  are
  3243.              perpendicular  to  the XY coordinate plane.  For  all  other
  3244.              cylinders, it is necessary to use the CYL/ keyword function.
  3245.              It  should be noted that in CAMS,  the term cylinder  always
  3246.              means a right circular cylinder, unless otherwise specified.
  3247.  
  3248.  
  3249.  
  3250.  
  3251.  
  3252.  
  3253.  
  3254.  
  3255.  
  3256.  
  3257.  
  3258.  
  3259.  
  3260.  
  3261.  
  3262.  
  3263.         4.7.1     A CYLINDER DEFINED BY ITS CANONICAL FORM
  3264.  
  3265.                          x,y,z i,j,k
  3266.               CYL/symbol=point,vector,radius
  3267.  
  3268.  
  3269.  
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.         Page 54                             Geometry Definition Statements
  3294.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3295.  
  3296.  
  3297.         4.7.2     A CYLINDER DEFINED BY THREE POINTS AND A VECTOR
  3298.  
  3299.               CYL/symbol=PT3,point,point,point,vector
  3300.  
  3301.              Where the three points are presumed to lie on the surface of
  3302.              the  cylinder  and the vector coincides  with  the  cylinder
  3303.              axis.  The three points must not be colinear.
  3304.  
  3305.  
  3306.  
  3307.  
  3308.  
  3309.  
  3310.  
  3311.  
  3312.  
  3313.  
  3314.  
  3315.  
  3316.  
  3317.  
  3318.  
  3319.  
  3320.  
  3321.  
  3322.  
  3323.  
  3324.         4.8       TRANSFORMATION MATRIX PATTERNS
  3325.  
  3326.              Among  the  most useful features of CAMS are  the  functions
  3327.              that  permit the NC parts programmer to 1) define  geometric
  3328.              elements  in one coordinate system and use them in  another,
  3329.              or  2) progressively alter cyclic cutter paths in  order  to
  3330.              accomplish  the  same motion at different locations  in  the
  3331.              machining space (i.e.  repetative programming).  In order to
  3332.              accomplish  these  worthwhile goals,  it is necessary to  be
  3333.              able to define the manner in which geometry,  or motion,  is
  3334.              to be altered, that is, transformed.
  3335.  
  3336.              CAMS'  internal  calculations use sophisticated  vector  and
  3337.              matrix algebra techniques which provide  flexibility,  speed
  3338.              and  accuracy of calculation.   To be consistent with  these
  3339.              methods, it is necessary to define geometry (or cutter path)
  3340.              transformations  as  3  by  4  matrices  which  represent  a
  3341.              combined  rotation,  translation and scale on the respective
  3342.              data.  Not all users of CAMS, however, can be expected to be
  3343.              trained   in   the  use  of  these   advanced   mathematical
  3344.              techniques.   Therefore,  CAMS  provides  the means  for  an
  3345.              unsophisticated  user to define transformations as a  finite
  3346.              sequence  of translation,  rotation and  scaling  operations
  3347.              that  "happen"  to the data in a specified  order.  Each  of
  3348.              these  operations  is known as a  matrix  archtype.   Matrix
  3349.              archtypes  may  be combined in unlimited sequence to form  a
  3350.              complex transformation in a manner that is easy for the user
  3351.              to understand.
  3352.  
  3353.  
  3354.         Page 55                             Geometry Definition Statements
  3355.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3356.  
  3357.  
  3358.  
  3359.              Each  MAT/ statement can be either unary (having one  matrix
  3360.              archtype) or binary (having two matrix archtypes).  If it is
  3361.              binary,  then the rightmost matrix archtype always "happens"
  3362.              first.    Matrix  archtypes  are  listed  below.   The  MAT/
  3363.              statement format is:
  3364.  
  3365.                   MAT/symbol=<matrix archtype>
  3366.  
  3367.                or MAT/symbol=<matrix archtype>,<matrix archtype>
  3368.  
  3369.  
  3370.         4.8.1     MATRIX ARCHTYPES:
  3371.  
  3372.         4.8.1.1   DIRECT ENTRY
  3373.  
  3374.                  a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3
  3375.  
  3376.         4.8.1.2   CANONICAL REPLACEMENT
  3377.  
  3378.                  <symbol for a matrix>
  3379.  
  3380.         4.8.1.3   TRANSLATION
  3381.  
  3382.                  TRN,x,y,z
  3383.  
  3384.         4.8.1.4   XY ROTATION
  3385.  
  3386.                  XYR,angle
  3387.  
  3388.         4.8.1.5   YZ ROTATION
  3389.  
  3390.                  YZR,angle
  3391.  
  3392.         4.8.1.6   ZX ROTATION
  3393.  
  3394.                  ZXR,angle
  3395.  
  3396.         4.8.1.7   INVERSION
  3397.  
  3398.                  INV,<symbol for a matrix>
  3399.  
  3400.              Inversion  of  a matrix produces another  matrix  which,  if
  3401.              combined  with the original matrix,  completely cancels  its
  3402.              effect.
  3403.  
  3404.         4.8.1.8   SCALE
  3405.  
  3406.                  SCL,<scale factor>
  3407.  
  3408.         4.8.1.9   THREE PLANE METHOD
  3409.  
  3410.                  PL3,<YZ plane>,<ZX plane>,<XY plane>
  3411.  
  3412.              The  three  planes  become  the  coordinate  planes  of  the
  3413.  
  3414.  
  3415.         Page 56                             Geometry Definition Statements
  3416.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3417.  
  3418.  
  3419.              transformation.     As   such,   they   must   be   mutually
  3420.              perpendicular.
  3421.  
  3422.         4.8.1.10  THREE POINTS
  3423.  
  3424.                  PT3,<origin point>,<X-axis point>,<Ylarge point>
  3425.  
  3426.              <origin point> will become the origin (or center) of the new
  3427.              coordinate system.  <X-axis point> is presumed to define the
  3428.              direction of the new X-axis.   <Ylarge point> is presumed to
  3429.              lie in the positive Y half of the new XY coordinate plane.
  3430.  
  3431.  
  3432.         4.8.2     EXAMPLES
  3433.  
  3434.            Some examples of matrix definitions are:
  3435.  
  3436.                  MAT/M1=TRN,0,1.25,1,XYR,30
  3437.                  MAT/M2=YZR,45
  3438.                  MAT/M3=M1,M2
  3439.  
  3440.              In  these examples,  M1 establishes a transformation that is
  3441.              composed   of  a  counter-clockwise  rotation  in   the   XY
  3442.              coordinate plane of 30 degrees, followed by a translation of
  3443.              the  origin  of  1.25 units in Y and 1 unit in Z.  M2  is  a
  3444.              simple  rotation in the YZ coordinate plane of  45  degrees,
  3445.              and  M3  is  a transformation composed  first  of  M2,  then
  3446.              followed  by  M1.   Notice that M3 is actually  composed  of
  3447.              three matrix archtypes.
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.         4.9       SPLINE CURVE DEFINITION PATTERNS
  3454.  
  3455.              CAMS  is capable of defining and machining free-form curves.
  3456.              Called  SPLINES,  the curves consist of a sequence of  slope
  3457.              continuous   two  dimensional  parametric  cubic   equations
  3458.              passing  thru  a sequence of up to twenty-five (25)  points.
  3459.              The minimum number of points for a spline is two (2).
  3460.  
  3461.              Splines  are  extremely  flexible.   They are  used  to  fit
  3462.              continuous  curves thru the tabular data that  is  sometimes
  3463.              found  on the engineering drawing of a workpiece.   They can
  3464.              be  offset  to  account for wall  thicknesses  and/or  stock
  3465.              allowances.
  3466.  
  3467.              Additional controls on the definition of a spline curve  can
  3468.              be  had  by defining the end tangency conditions.   This  is
  3469.              done  by  describing either the end angle (ANG) or  the  end
  3470.              tangent  vector (TGT) at either or both ends of  the  curve.
  3471.              In  fact,  if the end conditions are not specified on a two-
  3472.              point  spline,  the resulting curve will be a straight  line
  3473.              between the points.
  3474.  
  3475.  
  3476.         Page 57                             Geometry Definition Statements
  3477.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3478.  
  3479.  
  3480.  
  3481.              Splines in CAMS are directed curves.  That is, the "forward"
  3482.              direction  of the curve begins at the first point and  flows
  3483.              thru the points in sequential order as defined.   While this
  3484.              directed  aspect  is not important during machining  of  the
  3485.              spline,  it  is very important to the definition  of  offset
  3486.              splines  and  when  using the spline in  defining  intercept
  3487.              points.   Please keep this in mind when using the  modifiors
  3488.              "LFT" and "RGT" while defining an offset spline.
  3489.  
  3490.              Selection modifiors used by the spline definitions are:
  3491.  
  3492.                   LFT  LEFT      Describes  an offset to the left of  the
  3493.                                  curve  when  looking along the curve  in
  3494.                                  the forward direction.
  3495.  
  3496.                   RGT  RIGHT     Describes  an offset to the right of the
  3497.                                  curve  when  looking along the curve  in
  3498.                                  the forward direction.
  3499.  
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.  
  3506.  
  3507.         4.9.1     A SPLINE DEFINED BY UP TO 25 POINTS
  3508.  
  3509.                   SPL/symbol=x1,y1,...,xn,yn
  3510.  
  3511.  
  3512.  
  3513.  
  3514.  
  3515.  
  3516.  
  3517.  
  3518.  
  3519.  
  3520.  
  3521.  
  3522.  
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.  
  3530.  
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537.         Page 58                             Geometry Definition Statements
  3538.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3539.  
  3540.  
  3541.         4.9.2     A SPLINE DEFINED BY UP TO 25 POINTS WITH END CONTROL
  3542.  
  3543.                              [ANG,a1,   ]          [ANG,an,   ]
  3544.                   SPL/symbol=[TGT,i1,j1,]x1,y1,...,[TGT,in,jn,]xn,yn
  3545.  
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.         4.9.3     A SPLINE DEFINED BY AN OFFSET TO AN EXISTING SPLINE
  3569.  
  3570.                              LFT
  3571.                   SPL/symbol=RGT,<offset>,<spline>
  3572.  
  3573.  
  3574.  
  3575.  
  3576.  
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.         Page 59                             Geometry Definition Statements
  3599.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3600.  
  3601.  
  3602.         4.10      POINT PATTERN DEFINITIONS
  3603.  
  3604.              A pattern is a set of one or more points. The maximum number
  3605.              of  points in a single pattern is 42.   The use of  patterns
  3606.              allows  you  to define and manipulate groups of points in  a
  3607.              simple and convenient manner.  You can define a pattern as a
  3608.              linear,  circular,  or random array of points   You can also
  3609.              define   patterns  as  combinations  of  points  and   other
  3610.              patterns.   Once defined, you can subsequently reference the
  3611.              symbol for a pattern in a GTO/ statement to move the  cutter
  3612.              to  each of its points in the sequence in which you  defined
  3613.              them.
  3614.  
  3615.              A  linear  pattern is a set of points all of which lie on  a
  3616.              straight line.  A circular pattern is a set of points all of
  3617.              which lie on a given circle.   A random pattern consists  of
  3618.              points  randomly  distributed  in the plane,  but  may  also
  3619.              contain other patterns which were not randomly defined.   In
  3620.              each  pattern  definition,  except the  random  pattern,  an
  3621.              optional  Z coordinate may be appended which will be applied
  3622.              to all of the points in the pattern.
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.  
  3629.         4.10.1  A LINEAR PATTERN DEFINED BY A POINT, AN ANGLE, THE
  3630.                 DISTANCE BETWEEN POINTS, AND A POINT COUNT
  3631.  
  3632.                             x,y
  3633.              PAT/symbol=ANG,point,angle,delta,count[,z]
  3634.  
  3635.  
  3636.  
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650.  
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.         Page 60                             Geometry Definition Statements
  3660.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3661.  
  3662.  
  3663.         4.10.2 A CIRCULAR PATTERN DEFINED BY A CIRCLE, A STARTING ANGLE,
  3664.                AN ANGULAR INCREMENT, AND A POINT COUNT
  3665.  
  3666.                         CCW
  3667.              PAT/symbol=CLW,circle,angle,increment,count[,z]
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.         4.10.3 A PATTERN DEFINED BY A RANDOM SET OF POINTS AND PATTERNS
  3691.  
  3692.                         point   point
  3693.              PAT/symbol=pattern,pattern,...
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713.  
  3714.  
  3715.  
  3716.  
  3717.  
  3718.  
  3719.  
  3720.         Page 61                             Geometry Definition Statements
  3721.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3722.  
  3723.  
  3724.                             POINT-TO-POINT PROGRAMMING
  3725.  
  3726.         5.      POINT-TO-POINT PROGRAMMING
  3727.  
  3728.              CAMS  provides the capability to explicitly move the cutting
  3729.              tool  to  any absolute position in the  workpiece  reference
  3730.              system.   The technique of moving the cutter thru a sequence
  3731.              of  explicit coordinate positions is  called  point-to-point
  3732.              programming.    In   CAMS,   point-to-point  programming  is
  3733.              accomplished by means of the keywords FROM/, GTO/, and GDL/.
  3734.              Statements based on these keywords do not require additional
  3735.              information,  such as cutter shape descriptions, in order to
  3736.              control cutter motion.   You should not make the  assumption
  3737.              that complex parts cannot be programmed using point-to-point
  3738.              methods.   While  a greater cutter path specification burden
  3739.              is  placed  on  the parts programmer  than  with  contouring
  3740.              methods,   all  NC programming systems produce sequences  of
  3741.              absolute positions for postprocessing.
  3742.  
  3743.  
  3744.         5.1       THE CONTROL POINT
  3745.  
  3746.              Even a simple drill bit has a complex shape.   For point-to-
  3747.              point programming,  a definition of the shape of the cutting
  3748.              tool   is  not  required.    What  is  needed  for  accurate
  3749.              positioning of the cutter is an agreed upon convention for a
  3750.              single  point  on  the tool which will be  used  to  control
  3751.              positioning.   This  point,  called the  control  point,  is
  3752.              defined to be on the axis of the tool, precisely at its tip.
  3753.  
  3754.              All  CAMS  calculated output positions  are   control  point
  3755.              positions, irrespective of the actual shape of the cutter.
  3756.  
  3757.  
  3758.         5.2       THE MOTION INITIALIZATION STATEMENT (FROM/)
  3759.  
  3760.              The  FROM/ statement specifies the initial location at which
  3761.              the cutter is assumed to be positioned.   A FROM/  statement
  3762.              must  be the first motion statement in a part program.   Use
  3763.              of  the FROM/ statement does not produce any motion data  on
  3764.              the  machine control tape the first time it appears  in  the
  3765.              part  program.   Subsequent  use of the FROM/ statement  can
  3766.              result  in  a  tool motion  for  some  absolute  positioning
  3767.              machine  tools.   On incremental positioning machine  tools,
  3768.              subsequent  uses  of  the  FROM/ statement  will  not  cause
  3769.              motion.   In general,  it is advisable to use only one FROM/
  3770.              statement  in a part program,  unless circumstances  warrent
  3771.              otherwise.
  3772.  
  3773.              As  with  most  point-to-point  motion  keywords,  the  tool
  3774.              position  entered  in a FROM/ statement can also define  and
  3775.              label a point. Thus, the format for a FROM/ statement is...
  3776.  
  3777.                   FROM/[<symbol>=]<any point definition>
  3778.  
  3779.  
  3780.  
  3781.         Page 62                                Point-To-Point Programming
  3782.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3783.  
  3784.  
  3785.              Some examples are...
  3786.  
  3787.                   FROM/0,0,0
  3788.  
  3789.                   FROM/P1=IO,L1,L10,.5
  3790.  
  3791.  
  3792.         5.3       THE ABSOLUTE POSITIONING STATEMENT (GTO/)
  3793.  
  3794.              The GTO/ statement is an absolute positioning,  or "go  to,"
  3795.              statement.   It  is  used to move the cutting tool from  its
  3796.              present  position to the absolute position specified in  the
  3797.              body  of the GTO/ statement.   Except for the  keyword,  the
  3798.              format of the GTO/ statement is identical to that of  FROM/.
  3799.              The  absolute cutter position,  in part coordinates,  can be
  3800.              labeled and stored as a point in canon.   The format of  the
  3801.              GTO/ statement is...
  3802.  
  3803.                   GTO/[<symbol>=]<any point definition>
  3804.  
  3805.              Examples include...
  3806.  
  3807.                   GTO/P5=XYR,30,2.6875,1.1
  3808.  
  3809.                   GTO/3,7,2
  3810.  
  3811.              You can also substitute a new Z coordinate for a pre-defined
  3812.              point in the GTO/ statement.  For example, the statements...
  3813.  
  3814.                   PNT/P1=.125,1.5,2
  3815.                   GTO/P1,1
  3816.  
  3817.              would produce motion to the coordinates [.125,1.5,1] instead
  3818.              of [.125,1.5,2].   This eliminates the necessity of defining
  3819.              a  number  of  points with the  same  X,Y  coordinates,  but
  3820.              differing Z coordinates.
  3821.  
  3822.              In addition to generating motion to a single point, the GTO/
  3823.              statement  is  also  used to generate motion to all  of  the
  3824.              points in a pre-defined pattern.  For example...
  3825.  
  3826.                   PAT/B1=ANG,1,1,45,.5,3
  3827.                   GTO/B1
  3828.  
  3829.              would produce motion to all three points of the pattern.
  3830.  
  3831.  
  3832.         5.4       THE INCREMENTAL MOVE STATEMENT (GDL/)
  3833.  
  3834.              The  GDL/  statement specifies an incremental  vector  value
  3835.              which is to be added to the present tool position to form  a
  3836.              new  tool  position.   Thus,  it  defines  an  increment  of
  3837.              movement, in each of the machine's coordinate axes.  It does
  3838.              not  specify  an absolute position at any  time.   The  GDL/
  3839.              statement takes two forms...
  3840.  
  3841.  
  3842.         Page 63                                Point-To-Point Programming
  3843.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3844.  
  3845.  
  3846.  
  3847.                   GDL/<dx>,<dy>,<dz>
  3848.  
  3849.                   GDL/<da>
  3850.  
  3851.              In  the  first form,  an independent increment of motion  is
  3852.              specified  for each of the coordinate axes of  the  machine.
  3853.              In  the second form,  the single scalar (<da>) specifies the
  3854.              amount of motion required along the tool axis.   A  positive
  3855.              value  for <da> specifies motion up the tool axis  (i.e.from
  3856.              the  tool tip towards the spindle face).   A negative  value
  3857.              for <da> specifies a move down the tool axis,  away from the
  3858.              spindle face.  Some examples of the GDL/ statement are...
  3859.  
  3860.                   GDL/0,0,1
  3861.  
  3862.                   GDL/1
  3863.  
  3864.              Note  that both of these statements produce exactly the same
  3865.              result on a three axis machine.   On a machine with tilt and
  3866.              rotational  axes,   the  motions  resulting  from  the   two
  3867.              statements can be vastly different.
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.  
  3891.  
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  
  3899.  
  3900.  
  3901.  
  3902.  
  3903.         Page 64                                Point-To-Point Programming
  3904.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3905.  
  3906.  
  3907.                                  CONTOUR PROGRAMMING
  3908.  
  3909.         6.1       THE PART SURFACE STATEMENT (PS/)
  3910.  
  3911.              All  contouring motion in CAMS must have an established part
  3912.              surface plane.   In some cases (e.g.  ARC/) the part surface
  3913.              plane  may  be established within the body of  the  command.
  3914.              For  some  cases  (notably GO/) the  part  surface  must  be
  3915.              established  in  some  other way before the command  can  be
  3916.              executed.
  3917.  
  3918.              The  PS/  statement  has been established to permit  you  to
  3919.              clearly  define  the part surface to be used  by  subsequent
  3920.              contouring statements.
  3921.  
  3922.                   TO
  3923.                PS/ON,plane
  3924.  
  3925.              TO        The  TO  modifior  for the  part  surface  informs
  3926.                        CAMS  that  the tool end is to remain  in  tangent
  3927.                        contact  with the part surface plane at all  times
  3928.                        during the cut.
  3929.  
  3930.              ON        The  ON  modifior  for the  part  surface  informs
  3931.                        CAMS  that  the  control point  is  to  remain  in
  3932.                        contact  with the part surface plane at all  times
  3933.                        during the cut.
  3934.  
  3935.  
  3936.         6.2       CONTOURING ARCS (ARC/)
  3937.  
  3938.              The  vast majority of contour operations involve contours of
  3939.              lines and circular arcs.  To be effective, an NC programming
  3940.              system must provide adequate (and convenient) means for  the
  3941.              parts programmer to specify contour machining along circular
  3942.              arcs.   Arc  calculations  are  invoked  by  the  CAMS  ARC/
  3943.              statement.
  3944.  
  3945.              The  basic  Arc  processor computes an arc from  a  starting
  3946.              angle  (a) to an ending angle (b) along a specified  circle.
  3947.              The cutter may be inside (IN),  outside (OUT) or centered on
  3948.              (ON) the circle.  Direction of rotation around the circle is
  3949.              specified  by  the sign of the difference  between  the  two
  3950.              angles.    I.e.,  if  b-a  is  positive,  the  arc  will  be
  3951.              counterclockwise;  if  b-a  is  negative,  the arc  will  be
  3952.              clockwise.   A  tolerance  is required to  produce  accurate
  3953.              incremental  motions in case the machine postprocessor  must
  3954.              use linear interpolation to cut the arc.  End control of the
  3955.              cutter is accomplished by requiring a defined plane for  use
  3956.              as  the part surface.   The tool tip may be either TO or  ON
  3957.              the part surface plane.
  3958.  
  3959.              The general ARC/ statement, showing all possible options, is
  3960.              as follows...
  3961.  
  3962.  
  3963.  
  3964.         Page 65                                        Contour Programming
  3965.         May 20, 1993              CAMS Part Programmer's Reference Manual
  3966.  
  3967.  
  3968.                      [,CLW],a        [,b        ][,ON      ],IN
  3969.               ARC/tol[,CCW],point    [,point    ][,TO,plane],OUT,circle
  3970.                            ,CTR      [,TGT,line ]           ,ON
  3971.                            ,LFT      [,PARL,line]
  3972.                            ,RGT
  3973.                            ,TGT,line
  3974.                            ,PARL,line
  3975.  
  3976.              tol:      Tolerance.  The tolerance input is required on all
  3977.                        ARC/ statements.  It is used to calculate accurate
  3978.                        linear  increments  for use by  1)  postprocessors
  3979.                        that  do  not have circular interpolation,  or  2)
  3980.                        those  situations  where  the  postprocessor  must
  3981.                        produce linear motion.
  3982.  
  3983.              CLW       The modifior CLW or CCW is optional.   If present,
  3984.              CCW       the  modifior  will  guarantee  the  direction  of
  3985.                        rotation of the cutting arc,  over-riding the sign
  3986.                        rule as required.
  3987.  
  3988.              a         The  angles "a" and "b" represent  the  respective
  3989.              b         start  and end angles for the arc.   Direction  of
  3990.                        rotation will be specified by the difference, b-a,
  3991.                        unless one of CLW/CCW is present in the statement.
  3992.                        If the difference is positive, rotation is CCW; if
  3993.                        negative,  rotation is CLW.   All other options in
  3994.                        the  angle positions of the ARC/ statement  permit
  3995.                        the  program to calculate the beginning and ending
  3996.                        angles.
  3997.  
  3998.                        If the ending angle (b) is completely omitted from
  3999.                        the ARC/ statement,  a full 360 degree arc will be
  4000.                        machined.   In this case, the rotational parameter
  4001.                        (CLW or CCW) must be present in the ARC/ statement.
  4002.  
  4003.              CTR       The  minor  word CTR (CenTeR) is used  to  specify
  4004.                        that  the starting angle corresponds to that of  a
  4005.                        straight line between the current cutter  position
  4006.                        and the center of the arc circle.  CTR may only be
  4007.                        used for a starting angle.
  4008.  
  4009.              LFT       The  minor  words LFT (LeFT) and RGT  (RiGhT)  are
  4010.              RGT       used  to specify a starting angle that causes  the
  4011.                        cutter  to  move  to  either a  left  or  a  right
  4012.                        tangency   condition   from  the  present   cutter
  4013.                        position.   One of these words may only be used to
  4014.                        specify a starting angle.
  4015.  
  4016.              TGT       The  TGT  (TanGenT)  minor  word  option   permits
  4017.                        calculation  of a starting or an ending angle that
  4018.                        is  computed from the center of the motion arc  to
  4019.                        the  point of tangency of the specified line.   If
  4020.                        the  tangency is not geometrically  possible,  the
  4021.                        ARC/ statement will fail.
  4022.  
  4023.  
  4024.  
  4025.         Page 66                                        Contour Programming
  4026.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4027.  
  4028.  
  4029.              PARL      The PARL  (PARalleL)  minor  word  option   permits
  4030.                        calculation  of a starting or an ending angle that
  4031.                        is  computed from a vector thru the center of  the
  4032.                        motion arc and normal to the point of tangency  of
  4033.                        the   specified  line.    If  the  vector  is  not
  4034.                        geometrically  possible,  the ARC/ statement  will
  4035.                        fail.
  4036.  
  4037.              TO        Tool  end  conditions  with respect  to  the  part
  4038.              ON        surface  plane (see below).   A TO condition means
  4039.                        that the end of the cutter is to remain in tangent
  4040.                        contact with the part surface plane throughout the
  4041.                        cut.   An ON condition means that the tool control
  4042.                        point  is  to  lie  in  the  part  surface   plane
  4043.                        throughout the cut.
  4044.  
  4045.              plane     A  part  surface  must  be in  effect  during  the
  4046.                        processing  of  an  ARC/  statement.   If  a  part
  4047.                        surface  is  already in effect (thru a  preceeding
  4048.                        ARC/ statement or a PS/ statement),  then the part
  4049.                        surface  plane  and its attendant  conditions  are
  4050.                        optional  in the ARC/ statement.   A part  surface
  4051.                        plane  must always be preceeded by one of the tool
  4052.                        end conditions, TO or ON.
  4053.  
  4054.              IN        The arc may be driven with the tool inside the arc
  4055.              OUT       (IN),  the tool outside the arc (OUT), or the tool
  4056.              ON        ON the arc.
  4057.  
  4058.              circle    The  final parameter of the ARC/ statement is  the
  4059.                        specification of the arc circle.   This may be any
  4060.                        form of circle definition (see chapter 4).
  4061.  
  4062.              By convention, all calculated angles will be computed within
  4063.              the  range  0  to  360 degrees.  of arc.   In  view  of  the
  4064.              processors  method  of calculating rotational  direction  of
  4065.              cut, it is advisable to specify CLW or CCW when using any of
  4066.              the calculation options in the ARC/ statement.
  4067.  
  4068.  
  4069.         6.3       THE CONTOUR STARTUP (GO/)
  4070.  
  4071.              The  contour  startup  command (GO/) is used  to  place  the
  4072.              currently defined cutter into position with respect to three
  4073.              controlling geometry elements.
  4074.  
  4075.              The  first of these is called the part surface,  and must be
  4076.                                                                   must be
  4077.              defined prior to using the GO/ statement with a PS/ or  ARC/
  4078.              defined prior to using the GO/ statement
  4079.              statement.
  4080.  
  4081.              The second controlling surface is called the drive  surface.
  4082.              The  drive  surface is the geometry element you want  to  be
  4083.              traversed in the next up-coming motion command.   The  drive
  4084.              surface  must be the first of the two surfaces permitted  in
  4085.              the GO/ command.
  4086.  
  4087.  
  4088.         Page 67                                        Contour Programming
  4089.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4090.  
  4091.  
  4092.  
  4093.              The  third controlling surface is called the check  surface.
  4094.              The  check  surface is the geometry element you want to  use
  4095.              for  precise positioning of the cutter relative to the  part
  4096.              and drive surfaces.
  4097.  
  4098.                   TO                   TO
  4099.                GO/PAST,<drive surface>,PAST,<check surface>
  4100.                   ON                   ON
  4101.  
  4102.              TO        Position  the  cutter tangent to  the  drive/check
  4103.                        surface  on  the  side  nearest  to  the  cutter's
  4104.                        present position.
  4105.  
  4106.              PAST      Position  the  cutter tangent to  the  drive/check
  4107.                        surface  on  the  side  nearest  to  the  cutter's
  4108.                        present position.
  4109.  
  4110.              ON        Position   the  cutter  with  the  control   point
  4111.                        directly  on the drive/check surface.
  4112.  
  4113.              Both the drive and check surface must always be present in a
  4114.              GO/  statement.   Each  must have the  appropriate  modifior
  4115.              present  in the statement.   Any combination of modifiors on
  4116.              the two surfaces is permissible.
  4117.  
  4118.  
  4119.         6.4       TOOL TO PART RELATIONSHIPS (TLF, TON, TRG)
  4120.  
  4121.              The vocabulary words "TLF" (Tool LeFt),  "TON" (Tool ON) and
  4122.              "TRG"  (Tool RiGht) are used to specify the tool relationsip
  4123.              with  respect to a drive surface.   They are used to  inform
  4124.              the motion generator as to which side of a drive surface the
  4125.              tool  is to remain during a general contour motion (see  the
  4126.              next section).
  4127.  
  4128.  
  4129.         6.5       GENERAL CONTOUR MOTION (GFW/,GBK/,GLF/,GRT/)
  4130.  
  4131.              The  contour motion commands (GFW/,GBK/,GLF/,GRT/) are  used
  4132.              to  perform  continuous  cutter  offset  calculations  while
  4133.              traversing the defined surfaces of the part.  These commands
  4134.              depend upon CAMS' sense of forward cutter motion.
  4135.  
  4136.              At  every  cutter motion in the part  program,  the  forward
  4137.              direction  of  the cutter in the part space  is  calculated.
  4138.              This  happens  regardless of the type of statement  used  to
  4139.              produce the motion.   The only time when this forward  sense
  4140.              may  be  lost is immediately after a copy  (CPY/)  statement
  4141.              (see chapter 7).   Even in this case,  the forward sense can
  4142.              be  re-established  by the simple expedient of  a  point-to-
  4143.              point motion (e.g. GO/).
  4144.  
  4145.              The  general  motion statements are intended to provide  the
  4146.              means  to  generate contour motion around  a  part  boundary
  4147.  
  4148.  
  4149.         Page 68                                        Contour Programming
  4150.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4151.  
  4152.  
  4153.              consisting  of an arbitrary number and type of CAMS geometry
  4154.              elements.  This is called a "motion sequence".
  4155.  
  4156.              A motion sequence should begin with a contour startup  (GO/)
  4157.              command  to  place  the  cutter in contact  with  the  drive
  4158.              surface.   Note  that  that movement established  a  forward
  4159.              direction for the cutter.  Then, depending on how the cutter
  4160.              approached the drive surface during the startup,  one of the
  4161.              general motion statements is used to instruct the cutter  to
  4162.              move   along  the  drive  surface  until  the  desired  tool
  4163.              condition (TO,ON,PAST) with respect to the check surface  is
  4164.              reached.   This  establishes a new forward direction for the
  4165.              cutter.   Another general motion statement is programmed  to
  4166.              traverse  the  new drive surface (perhaps the same  surface)
  4167.              until tool condition with its check surface is found. And so
  4168.              on...
  4169.  
  4170.              To better illustrate the principle,  Appendix C contains the
  4171.              same part program illustrated in Appendix B, but with motion
  4172.              generated by the general contouring principles.
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  
  4182.  
  4183.  
  4184.  
  4185.  
  4186.  
  4187.  
  4188.  
  4189.  
  4190.  
  4191.  
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198.  
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.  
  4205.  
  4206.  
  4207.  
  4208.  
  4209.  
  4210.         Page 69                                        Contour Programming
  4211.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4212.  
  4213.  
  4214.                   TRANSFORMATIONS AND REPETATIVE PROGRAMMING
  4215.  
  4216.         7.        TRANSFORMATIONS AND REPETATIVE PROGRAMMING
  4217.  
  4218.              Among  the  major  benefits derived from  using  a  computer
  4219.              system  to  prepare  programs  for  N/C  machining  are  the
  4220.              system's   capabilities  to  1)  perform   rapid,   accurate
  4221.              transformations   on  large  quantities  of  cutter   center
  4222.              positions,  and  2) produce repeated cutting sequences under
  4223.              transformation.   The CAMS system has facilities for both of
  4224.              these  capabilities  thru the TRA/ (TRAnsform cut)  and  the
  4225.              CPY/  (CoPY)  keyword  functions.   Each of  these  keywords
  4226.              either make use of transformations previously defined in the
  4227.              part program by means of the MAT/ (MATrix) keyword function,
  4228.              or  contain  embeded  information  equivalent  to  a  matrix
  4229.              definition.
  4230.  
  4231.  
  4232.         7.1       THE TRANSFORM CUT STATEMENT (TRA/)
  4233.  
  4234.              The  TRA/ statement provides the parts programmer  with  the
  4235.              flexibility   of  defining  the  part  geometry  and  motion
  4236.              statements  in a convenient coordinate system for the  part,
  4237.              while  producing  CL  file  data  for  output  motion  in  a
  4238.              convenient  frame  of  reference  for  the   machine.    The
  4239.              tiresome,   error   prone  chore  of  converting  blue-print
  4240.              dimensions to the machine reference system is taken over  by
  4241.              CAMS.
  4242.  
  4243.              A  TRA/  statement  can  either make use  of  a  pre-defined
  4244.              matrix,  use  an un-named matrix defined in the body of  the
  4245.              statement,  or name,  store, and use a matrix defined in the
  4246.              body of the statement (see section 3.8).  The TRA/ statement
  4247.              has two formats:
  4248.  
  4249.                 TRA/[<symbol>=]<matrix archtype>[,<matrix archtype>]
  4250.  
  4251.                 TRA/OFF
  4252.  
  4253.              TRA/ establishes a modal condition that can only be  altered
  4254.              by another TRA/ statement.  That means that once a TRA/ mode
  4255.              establishes  a  transformation matrix,  all CL file  records
  4256.              will  be affected by the transformation until  another  TRA/
  4257.              statement  is  entered.   The TRA/OFF statement is  used  to
  4258.              permit   the   parts   programmer   to   cancel   any   TRA/
  4259.              transformations in effect.
  4260.  
  4261.              There    are   several   cogent   reasons   for    providing
  4262.              transformation capability such as TRA/.  These include:
  4263.  
  4264.              1.   TRA/ can be used to transform cutter locations from the
  4265.                   xy plane into any other plane.   Thus allowing the  use
  4266.                   of all the LIN/,  CIR/, and PNT/ definitions for canted
  4267.                   faces  of  the  workpiece  instead of  using  the  more
  4268.                   complex PLN/ and CYL/ definition formats.
  4269.  
  4270.  
  4271.         Page 70                Transformations And Repetative Programming
  4272.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4273.  
  4274.  
  4275.  
  4276.              2.   TRA/  is useful for matching the coordinates of  cutter
  4277.                   positions  to the special requirements of a  particular
  4278.                   machine tool.   This might involve a simple translation
  4279.                   to  eliminate negative values,  or a rotation to  match
  4280.                   the part program xy plane to the machine tool xy plane.
  4281.  
  4282.              3.   TRA/ will permit easy production of over-size or under-
  4283.                   size parts through appropriate scaling  matrices.  This
  4284.                   can  be  especially  useful in the production  of  dies
  4285.                   where  shrinkage allowances must be provided.   It  can
  4286.                   also be used to provide grind allowances, and the like.
  4287.  
  4288.              4.   TRA/  can  be  used to get  around  the "large  number"
  4289.                   problems   encountered  with  floating  point  numbers.
  4290.                   Sometimes  a  portion  of the geometry  of  a  part  is
  4291.                   located   in  the  coordinate  system  such  that   the
  4292.                   definitions   involve   numbers  in  the  hundreds   or
  4293.                   thousands.   Erroneous output can sometimes occur under
  4294.                   these conditions due to the loss of significance as the
  4295.                   computer  manipulates  these large  numbers.   In  that
  4296.                   event,  it  is  practical to define  the  geometry  and
  4297.                   cutter  path  close  to the origin,  then use  TRA/  to
  4298.                   translate  the  cutter locations back to  their  proper
  4299.                   location.
  4300.  
  4301.  
  4302.         7.2       THE INDEX STATEMENT (IDX/)
  4303.  
  4304.              The index statement is used to establish numbered  reference
  4305.              points  on the CL file.   It is used in conjunction with the
  4306.              copy  (CPY/) statement described in section  7.3.   The  two
  4307.              forms of the index statement are:
  4308.  
  4309.                 IDX/ON,<number>
  4310.  
  4311.                 IDX/OFF,<number>
  4312.  
  4313.              If  the IDX/OFF form of the statement is used,  it is always
  4314.              paired  with an IDX/ON statement with a corresponding  index
  4315.              number.    Each  index  number  must  be  a  unique  integer
  4316.              identifying the cutting sequence referenced.   If the number
  4317.              is not entered in the statement as an integer, the number is
  4318.              truncated  to an integer.   In effect,  the IDX/ON - IDX/OFF
  4319.              pair  "traps"  a  sequence  of  CL  file  records  for  copy
  4320.              purposes,  permitting the "trapped" sequence to be  repeated
  4321.              under any appropriate transformation matrix.
  4322.  
  4323.              The index numbers must be used in a monotonically increasing
  4324.              sequence  in your part program.   That is,  each  IDX/ON,...
  4325.              statement   must  use  an  index  number  larger  then   any
  4326.              preceeding IDX/ON,... in the part program.
  4327.  
  4328.              Index  regions in a part program may not overlap.   However,
  4329.              an index region may totally contain another.  This is called
  4330.  
  4331.  
  4332.         Page 71                Transformations And Repetative Programming
  4333.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4334.  
  4335.  
  4336.              "nesting."  Nesting may be carried out to a maximum depth of
  4337.              three.  For example...
  4338.  
  4339.                   :
  4340.                   IDX/ON,10
  4341.                   IDX/ON,20
  4342.                   IDX/ON,30
  4343.                   GTO/P3
  4344.                   IDX/OFF,30
  4345.                   CPY/30,2,TRN,.5,0,0
  4346.                   IDX/OFF,20
  4347.                   CPY/20,1,TRN,0,.5,0
  4348.                   IDX/OFF,10
  4349.                   :
  4350.  
  4351.              shows  a collection of index regions which are nested  to  a
  4352.              depth  of  three.   The example shows how IDX/ and CPY/  can
  4353.              work  together to drill a rectangular pattern of six  holes,
  4354.              three holes wide by two holes high,  at .500 spacing between
  4355.              holes.
  4356.  
  4357.  
  4358.         7.3       THE COPY STATEMENT (CPY/)
  4359.  
  4360.              The  copy statement is used to repeat sequences of  CL  file
  4361.              records,  transforming  or  changing  the  motion  specified
  4362.              according  to  an appropriate  transformation  matrix.   The
  4363.              proper form of the copy statement is:
  4364.  
  4365.                 CPY/<number>,<count>,<matrix archtype>
  4366.  
  4367.              where   <number>   refers  to  an  index  reference   number
  4368.              established by an IDX/ON statement, <count> is the number of
  4369.              progressively  transformed  copies  to  be  processed,   and
  4370.              <matrix archtype> refers to any matrix archtype described in
  4371.              section 3.8.1.   Note that if the <count> of copies is  more
  4372.              than 1,  the transformation matrix is progressively applied.
  4373.              For example, the statement sequence:
  4374.  
  4375.                   :
  4376.                   PNT/P1=0,0,0
  4377.                   IDX/ON,1
  4378.                   GTO/P1
  4379.                   CPY/1,2,TRN,1,0,0
  4380.                   :
  4381.  
  4382.              will produce the following output:
  4383.  
  4384.                 1. a move to the point 0,0,0
  4385.                 2. a move to the point 1,0,0 (the first copy)
  4386.                 3. a move to the point 2,0,0 (the second, progressive, copy)
  4387.  
  4388.              Another  thing to notice about this example is that the CPY/
  4389.              statement  itself  may serve in the capacity of  an  IDX/OFF
  4390.              statement.   The IDX/OFF statement is used when there are CL
  4391.  
  4392.  
  4393.         Page 72                Transformations And Repetative Programming
  4394.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4395.  
  4396.  
  4397.              records between the copy master and the copy statement  that
  4398.              should not be copied.  For example, the statement sequence:
  4399.  
  4400.                   :
  4401.                   IDX/ON,2
  4402.                   GTO/P2=1,0,0
  4403.                   IDX/OFF,2
  4404.                   GTO/P3=2,0,1
  4405.                   CPY/2,2,XYR,90
  4406.                   :
  4407.  
  4408.              will produce the output:
  4409.  
  4410.                 1. a move to the point 1,0,0
  4411.                 2. a move to the point 2,0,1
  4412.                 3. a move to the point 0,1,0 (the first copy)
  4413.                 4. a move to the point -1,0,0 (the second, progressive, copy)
  4414.  
  4415.              Note that in this manner, the move to P3 was not made a part
  4416.              of the copy master.
  4417.  
  4418.              Further  examples of the copy capability may be seen in  the
  4419.              programmed  examples  of  appendix  a.   Some  typical  copy
  4420.              pitfalls are listed as follows.
  4421.  
  4422.              1.   Rotational  copies  always rotate about the  coordinate
  4423.                   origin.   This means that it is not possible to use the
  4424.                   progressive  copy feature to drill a bolt circle  whose
  4425.                   center   of  rotation  does  not  coincide   with   the
  4426.                   coordinate origin by copying it's first point.
  4427.  
  4428.              2.   Copy  can  be  used  in  conjunction  with  TRA/  quite
  4429.                   successfully,  except  when  mirrored image  TRA/s  are
  4430.                   attempted.   The  mirror TRA/ matrix will not change  a
  4431.                   positive  translation  factor in a copy statement to  a
  4432.                   negative translation factor in the mirror image,  hence
  4433.                   the mirrored part will not be correct.
  4434.  
  4435.  
  4436.  
  4437.         7.4       REFERENCE SYSTEMS - THE REF/ STATEMENT
  4438.  
  4439.              The  REF/  statement  is  used to  establish  an  auxilliary
  4440.              coordinate  system  which is used for the  sole  purpose  of
  4441.              defining  geometric  elements.   Geometry which  is  defined
  4442.              under a reference system is immediately transformed into the
  4443.              base  coordinate system of the part program.   As such,  the
  4444.              action of a reference system occurs before cutter paths  are
  4445.              calculated  from  the  geometry.    By  contrast,  the  TRA/
  4446.              statement  acts on completed cutter paths to transform  them
  4447.              from  the  base  coordinate system into some  other  system,
  4448.              presumably into machine coordinates.
  4449.  
  4450.              Geometry  entities that are defined outside the range  of  a
  4451.              reference  system  are transformed when they  are  retrieved
  4452.  
  4453.  
  4454.         Page 73                Transformations And Repetative Programming
  4455.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4456.  
  4457.  
  4458.              from  canonical storage for use in other definitions.   This
  4459.              keeps  the entire geometry of the part consistent  with  the
  4460.              base coordinate system.
  4461.  
  4462.              The formats of the REF/ statement are:
  4463.  
  4464.                     :
  4465.                   REF/ <symbol>[=<matrix archtype>]
  4466.                     :
  4467.                     :
  4468.                   REF/ OFF
  4469.                     :
  4470.  
  4471.              The   first   statement  establishes  a   reference   system
  4472.              controlled  by the matrix archtype used (or defined) in  the
  4473.              REF/  statement.    The  second  statement  turns  off   the
  4474.              reference  system  so that subsequent  geometry  definitions
  4475.              will  be defined in the base coordinate system.   It is  not
  4476.              necessary  to  close  a reference system with the  REF/  OFF
  4477.              statement if you wish to use more than one reference  system
  4478.              to  define  your part geometry.   Simply establish  the  new
  4479.              reference  system  with a new REF/ statement,  and  it  will
  4480.              supercede   the  previously  active  reference  system,   as
  4481.              follows:
  4482.  
  4483.                     :
  4484.                   REF/ <symbol>[=<matrix archtype 1>]
  4485.                     :
  4486.                   REF/ <symbol>[=<matrix archtype 2>]
  4487.                     :
  4488.                   REF/ OFF
  4489.                     :
  4490.  
  4491.              Any matrix archtype as described in section 4.8 may be  used
  4492.              in the REF/ statement.  The "range" of a reference system is
  4493.              all  of the statements between the "REF/ <matrix  archtype>"
  4494.              and  the  next  REF/ statement,  or the end of  the  program
  4495.              (FIN), whichever comes first.
  4496.  
  4497.              If  a PRT/ statement is included in the range of a reference
  4498.              system, the geometry specified by the PRT/ statement will be
  4499.              printed  in  reference  system  coordinates.   If  the  PRT/
  4500.              statement is outside the range of any reference system,  the
  4501.              geometry specified will be printed in base coordinates.
  4502.  
  4503.              Certain  geometric entities are not affected by a  reference
  4504.              system.    These  are  the  more  complex  geometry   types,
  4505.              specifically  matrices  (as defined by MAT/ statements)  and
  4506.              spline curves (as defined by SPL/ statements).   To define a
  4507.              transformed  spline,  you  must define the  points  under  a
  4508.              reference   system,   then   define  the  spline  with   the
  4509.              transformed points.   In the following example,  splines  S1
  4510.              and  S2  have exactly the same shape,  but lie in  different
  4511.              positions and orientations in the base coordinate system.
  4512.  
  4513.  
  4514.  
  4515.         Page 74                Transformations And Repetative Programming
  4516.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4517.  
  4518.  
  4519.                   1 PNT/ P1= 1,0
  4520.                   2 PNT/ P2= 2,0.5
  4521.                   3 PNT/ P3= 3,0
  4522.                   4 PNT/ P4= 4,0.5
  4523.                   5 SPL/ S1= P1,P2,P3,P4
  4524.  
  4525.                   6 PRT/ S1
  4526.  
  4527.                   S1  052A   1.00000   .00000   .70711   .70711  1.11803
  4528.                              2.00000   .50000   .93189  -.14142  1.11803
  4529.                              3.00000   .00000   .93189  -.14142  1.11803
  4530.                              4.00000   .50000   .70711   .70711   .00000
  4531.  
  4532.                   7 REF/ M1= TRN,1,1,0,XYR,30
  4533.                   8 PNT/ P5= 1,0
  4534.                   9 PNT/ P6= 2,0.5
  4535.                  10 PNT/ P7= 3,0
  4536.                  11 PNT/ P8= 4,0.5
  4537.                  12 REF/ OFF
  4538.                  13 SPL/ S2= P5,P6,P7,P8
  4539.                  14 PRT/ S2
  4540.  
  4541.                   S2  052A   1.86603  1.50000   .25882   .96593  1.11803
  4542.                              2.48205  2.43301   .87775   .34347  1.11803
  4543.                              3.59808  2.50000   .87775   .34347  1.11803
  4544.                              4.21410  3.43301   .25882   .96593   .00000
  4545.  
  4546.                  15 FIN
  4547.  
  4548.              In general,  CAMS does not distinguish between entities that
  4549.              are  defined  as  points and entities that  are  defined  as
  4550.              vectors.   The  one exception to this rule is when  entities
  4551.              are  defined or used under a reference system.   Points  are
  4552.              considered fixed locations in the part space,  and hence are
  4553.              affected by translation.   Vectors are considered to specify
  4554.              a  direction,  and  hence are rotated but NEVER  TRANSLATED,
  4555.              since  translation  would destroy their  directional  sense.
  4556.              Another way to view a point is that it is a vector with  its
  4557.              tail anchored to the origin,  whereas a true vector does not
  4558.              have an anchor.
  4559.  
  4560.              Sometimes  it is convenient to define a point by means of  a
  4561.              vector   definition,   such   as   adding   an   incremental
  4562.              displacement  to  an existing point.   Beware of using  this
  4563.              technique  under  a  reference  system,   or  of  using  the
  4564.              resultant "vector" under a reference system.  For example:
  4565.  
  4566.                   1 PNT/ P1= 1,1
  4567.                   2 VEC/ V1= 1,0,0
  4568.                   3 VEC/ P2= ADD,P1,V1
  4569.                   4 PRT/ P1,P2
  4570.  
  4571.                   P1   0008    1.00000   1.00000    .00000
  4572.                   P2   0308    2.00000   1.00000    .00000
  4573.  
  4574.  
  4575.  
  4576.         Page 75                Transformations And Repetative Programming
  4577.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4578.  
  4579.  
  4580.                   5 REF/ M1= TRN,-1,0,0
  4581.                   6 PRT/ P1,P2
  4582.  
  4583.                   P1   0008    2.00000   1.00000    .00000
  4584.                   P2   0308    2.00000   1.00000    .00000
  4585.  
  4586.                   7 REF/ OFF
  4587.                   8 FIN
  4588.  
  4589.              The  above part program fragment illustrates the fundamental
  4590.              difference between points and vectors under reference system
  4591.              transformations.   Notice  that the relationship between  P1
  4592.              and  P2  of "1 unit apart," established  by  their  original
  4593.              definition, NO LONGER HOLDS UNDER THE REFERENCE SYSTEM.  The
  4594.              correct way to accomplish the desired end is to redefine the
  4595.              computed vector as a point, as follows:
  4596.  
  4597.                   1 PNT/ P1= 1,1
  4598.                   2 VEC/ V1= 1,0,0
  4599.                   3 VEC/ V2= ADD,P1,V1
  4600.                   4 PNT/ P2= V2
  4601.                   5 PRT/ P1,P2
  4602.  
  4603.                   P1   0008    1.00000   1.00000    .00000
  4604.                   P2   0008    2.00000   1.00000    .00000
  4605.  
  4606.                   6 REF/ M1= TRN,-1,0,0
  4607.                   7 PRT/ P1,P2
  4608.  
  4609.                   P1   0008    2.00000   1.00000    .00000
  4610.                   P2   0008    3.00000   1.00000    .00000
  4611.  
  4612.                   8 REF/ OFF
  4613.                   9 FIN
  4614.  
  4615.              Every  transformable  entity  will be converted  into  local
  4616.              coordinates under a reference system,  regardless of how  it
  4617.              was  defined.   This  means that if you obtain (using  OBT/)
  4618.              values  from the canonical form of an entity,  you will  get
  4619.              those values in local coordinates.  The following example of
  4620.              obtaining  the  coordinates of the normal vector to  a  line
  4621.              will illustrate this point.
  4622.  
  4623.                    1 LIN/ L1= 1,.5,4,1.5
  4624.                    2 OBT/ A= L1,1
  4625.                    3 OBT/ B= L1,2
  4626.                    4 OBT/ C= L1,3
  4627.                    5 PRT/ A,B,C
  4628.  
  4629.                    A0   2104     .31623
  4630.                    B0   2104    -.94868
  4631.                    C0   2104     .00000
  4632.  
  4633.                    6 REF/ M1= XYR,30
  4634.                    7 OBT/ A= L1,1
  4635.  
  4636.  
  4637.         Page 76                Transformations And Repetative Programming
  4638.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4639.  
  4640.  
  4641.                    8 OBT/ B= L1,2
  4642.                    9 OBT/ C= L1,3
  4643.                   10 PRT/ A,B,C
  4644.  
  4645.                    A0   2104    -.20048
  4646.                    B0   2104    -.97970
  4647.                    C0   2104     .00000
  4648.  
  4649.                   11 REF/ OFF
  4650.                   12 FIN
  4651.  
  4652.              Reference  system matrices involving scale factors may yield
  4653.              incorrect  results (with no diagnostic message) for  several
  4654.              reasons.   If  a scale factor is used,  the unit vectors  of
  4655.              certain geometry types (line,  plane, circle, cylinder) will
  4656.              be scaled,  and could produce cutter path calculation errors
  4657.              in CAMS2.   Furthermore,  the radii of circles and cylinders
  4658.              will not be scaled at all.
  4659.  
  4660.              CAMS passes geometry entities to the path generator  (CAMS2)
  4661.              by  symbolic name,  and not by canonical form.   This  means
  4662.              that  the  calculation  of cutter paths ALWAYS  occurs  with
  4663.              respect  to the base coordinate system.   CUTTER  PATHS  ARE
  4664.              NORMALLY  UNAFFECTED IN ANY WAY BY REFERENCE  SYSTEMS.   The
  4665.              exception  to  this  rule is geometry that is defined  in  a
  4666.              cutter  motion  statement  when a  reference  system  is  in
  4667.              effect.  To avoid ambiguity and cutter motion failures it is
  4668.              strongly  recommended that all motion statements be  outside
  4669.              the range of any reference system.
  4670.  
  4671.  
  4672.         7.5       FILE INCLUSION (GET/)
  4673.  
  4674.              CAMS   normally  reads  part  program  statements  from  the
  4675.              specified input file.  It is sometimes convenient to be able
  4676.              to  read a portion of the program from a  different  source.
  4677.              For example, a standard tool change program sequence  may be
  4678.              established that is use in several places in a part program,
  4679.              or,  for that matter,  it may be used in many part programs.
  4680.              It  is  undesirable  to program this many times  because  it
  4681.              uses  time that could be better spent elsewhere in the  part
  4682.              programming process.
  4683.  
  4684.              An  alternative source of input statements can be  specified
  4685.              at  any  time  in  the part program by  means  of  the  GET/
  4686.              statement.  This statement includes the DOS file name of the
  4687.              part  program fragment that is to be included in the primary
  4688.              part  program.  The  format  of the  GET/  statement  is  as
  4689.              follows:
  4690.  
  4691.                   GET/ <filename>
  4692.  
  4693.              The file name may optionally include a DOS path.
  4694.  
  4695.              As an example, suppose the tool change sequence is contained
  4696.  
  4697.  
  4698.         Page 77                Transformations And Repetative Programming
  4699.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4700.  
  4701.  
  4702.              in  the current directory under the filename "BANDIT.INC" as
  4703.              follows:
  4704.  
  4705.               REM/ T255= TOOL NUMBER TO BE LOADED
  4706.               REM/ D255= TOOL DIAMETER
  4707.               REM/ U255= CHIP LOAD PER CUTTING EDGE
  4708.               REM/ N255= NUMBER OF FLUTES
  4709.               #/ T[T255]= D255
  4710.               #/ S[T255]= INT(MIN(3525:MAX(100:12*S100/(3.1416*T[T255]))))
  4711.               #/ F[T255]= S[T255]*U255*N255
  4712.               LTL/ T255
  4713.               SPN/ S[T255]
  4714.               FED/ F[T255]
  4715.               PRT/ S[T255],F[T255]
  4716.               CUTR/T[T255]
  4717.               RPD
  4718.  
  4719.              The  following main part program segment shows how the  tool
  4720.              change sequence would be used:
  4721.  
  4722.                 :
  4723.               #/ T255= 1
  4724.               #/ D255= 0.5
  4725.               #/ U255= 0.0025
  4726.               #/ N255= 2
  4727.               PPR/ (LOAD 1/2 DIA. 2-FLUTE END MILL)
  4728.               GET/ BANDIT.INC
  4729.                 :
  4730.               #/ T255= 2
  4731.               #/ D255= 0.25
  4732.               #/ U255= 0.0015
  4733.               #/ N255= 2
  4734.               PPR/ (LOAD 1/4 DIA. 2-FLUTE END MILL)
  4735.               GET/ BANDIT.INC
  4736.                 :
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.         Page 78                Transformations And Repetative Programming
  4760.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4761.  
  4762.  
  4763.                             STANDARD CUTTING SEQUENCES
  4764.  
  4765.         8.        STANDARD CUTTING SEQUENCES
  4766.  
  4767.              Certain  macnining operations are sufficiently standard  and
  4768.              repeated  often enough to in the course of NC programming as
  4769.              to warrent development of special cutting  algorithms.   The
  4770.              cutting  out  of  straight  sided pockets  is  an  excellent
  4771.              example  of  often  repeated cutting  operations  with  many
  4772.              variations.   CAMS  has the capability to automatically hog-
  4773.              out a pocket.  Other standard cutting sequences may be added
  4774.              to  CAMS from time to time as their utility and frequency of
  4775.              use become apparent.
  4776.  
  4777.  
  4778.         8.1       POCKETING - THE POC/ STATEMENT
  4779.  
  4780.              The  CAMS pocketing procedure can remove stock from an  area
  4781.              bounded by up to twenty straight line sides.   The  straight
  4782.              line sides must form a convex polygon.   That is to say, the
  4783.              internal  angle between any two successive sides must always
  4784.              be less then 180 degrees.
  4785.  
  4786.              The  parts  programmer,  by  means of  the  POC/  statement,
  4787.              defines   certain   parameters  used  to  calculate   bottom
  4788.              coverage,  rough  cut  stepovers,  cutter offsets  from  the
  4789.              pocket  sides,  and feedrates.   He also provides a list  of
  4790.              pre-defined points which describe the vertices of the pocket
  4791.              polygon.  The POC/ statement is...
  4792.  
  4793.                                           plane
  4794.                POC/re,c,fin,f1,f2,f3,type,i,j,k,d,point,...,point
  4795.  
  4796.              where:
  4797.  
  4798.              re        The  effective  cutter radius  for  pocket  bottom
  4799.                        coverage  testing.   Note that a .75 diameter  end
  4800.                        mill with a .125 corner radius has a maximum value
  4801.                        for re of .250.
  4802.  
  4803.              c         An  upper bound for the roughing cut step over for
  4804.                        successive  cutter paths around the  pocket.   The
  4805.                        pocketing  procedure may reduce the step  over  to
  4806.                        maintain  control of bottom coverage,  but it will
  4807.                        never exceed this programmed step over value.
  4808.  
  4809.              fin       The programmed finish cut step over.  The last cut
  4810.                        around the pocket polygon will always remove  this
  4811.                        amount of material from the pocket sides.
  4812.  
  4813.              f1        The  feed rate in inches/minute for the plunge cut
  4814.                        into the pocket.
  4815.  
  4816.              f2        The  feed  rate  in inches/minute  for  the  rough
  4817.                        cutting of the pocket area.
  4818.  
  4819.  
  4820.         Page 79                                Standard Cutting Sequences
  4821.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4822.  
  4823.  
  4824.  
  4825.              f3        The  feed rate in inches/minute for the finish cut
  4826.                        around  of the pocket polygon.
  4827.  
  4828.              type      The  point type indicator.   If type = 0 then  the
  4829.                        points  specified in the pocket statement are  the
  4830.                        cutter center points of the finish cut around  the
  4831.                        pocket  polygon.   Any  value for type other  than
  4832.                        zero  indicates that the points specified  in  the
  4833.                        POC/  statement  are the vertices of the sides  of
  4834.                        the pocket.
  4835.  
  4836.              plane     The  symbolic  name of a CAMS plane  (the  numeric
  4837.                        i,j,k,d parameters of the plane equation) for  the
  4838.                        pocket  bottom.   A  restriction on the  pocketing
  4839.                        procedure  is  that the tool axis vector  and  the
  4840.                        normal  vector  to the pocket  bottom  plane  must
  4841.                        describe  an angle greater than 12 degrees between
  4842.                        them.
  4843.  
  4844.              point     A minumum of three (3) to a maximum of twenty (20)
  4845.                        points  describing a convex polygon may  be  used.
  4846.                        Depending  on  the  value  of  "type,"  these  are
  4847.                        interpreted  by CAMS as either the  cutter  center
  4848.                        locations of the finish cut, or as the vertices of
  4849.                        the pocket sides.
  4850.  
  4851.              Some  programming  considerations  for pocketing  should  be
  4852.              noted...
  4853.  
  4854.              1.   Step over,  both c and fin,  are always measured in the
  4855.                   plane of the pocket bottom.   The parts programmer must
  4856.                   determine   adequate   step  over  to   maintain   part
  4857.                   tolerances  when  using ball end  mills,  radiused  end
  4858.                   mills,  barrel  shaped cutters,  and when using  canted
  4859.                   pocket floor planes.
  4860.  
  4861.              2.   Unlike the point-to-point statements,  a cutter must be
  4862.                   defined  in  a CUTR/ statement prior to using the  POC/
  4863.                   statement.   This  is necessary to allow the system  to
  4864.                   calculate  the  sequence  of offsets  from  the  pocket
  4865.                   sides.
  4866.  
  4867.              3.   The  points describing the pocket polygon need  not  be
  4868.                   co-planar.   The parts programmer should be aware  that
  4869.                   their  projections  onto the pocket floor plane,  in  a
  4870.                   direction  parallel to the tool axis are actually  used
  4871.                   for all pocket calculations.
  4872.  
  4873.  
  4874.         8.2       HELICAL BORING - THE HLX/ STATEMENT
  4875.  
  4876.              To  provide  the  means  for controlled  plunging  and  ramp
  4877.              cutting into confined volumes,  the helical boring procedure
  4878.              has been developed and implemented into CAMS.   In using the
  4879.  
  4880.  
  4881.         Page 80                                Standard Cutting Sequences
  4882.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4883.  
  4884.  
  4885.              HLX/ statement,  the parts programmer inputs the information
  4886.              necessary  to compute the cutter offset bore diameter,  bore
  4887.              depth,  ramp  angle,  starting  angular  position,  and  the
  4888.              angular increment to be used to calculate the helical  path.
  4889.              The HLX/ statement format is...
  4890.  
  4891.                       [ IN,]
  4892.                   HLX/[OUT,]<crad>,<depth>,<toler>,<alpha>,<beta>,<circle>
  4893.                       [ ON,]
  4894.  
  4895.              IN        The  optional word IN tells the processor to  move
  4896.                        not more that 0.010 towards the helix  axis  after
  4897.                        the  final point on the helix floor is calculated.
  4898.                        This provides clearance from the side of the bore.
  4899.  
  4900.              OUT       The optional word OUT tells the processor to  move
  4901.                        not more that 0.010 away from the helix axis after
  4902.                        the final point on the helix floor is  calculated.
  4903.                        This  provides  clearance from the side of a  post
  4904.                        cut by the helical path.
  4905.  
  4906.              ON        The  optional  word  ON  tells  the  helical  bore
  4907.                        processor  to  remain at the final  point  of  the
  4908.                        helical  path.   This permits helical cutting of a
  4909.                        channel as wide as the end mill.
  4910.  
  4911.              <crad>    The  radius  of the  cutter.   By  including  this
  4912.                        parameter, the user may define a fictitious cutter
  4913.                        for the helical bore.
  4914.  
  4915.              <depth>   The depth of the bore along the tool axis from the
  4916.                        point at center of the circle.
  4917.  
  4918.              <toler>   The  tolerance  used to compute incremental  moves
  4919.                        along the helical path.
  4920.  
  4921.              <alpha>   The    starting    angle,     measured    positive
  4922.                        couterclockwise from a parallel to the positive  X
  4923.                        axis, for the helical path.
  4924.  
  4925.              <beta>    The  ramp angle,  or helix angle,  for the helical
  4926.                        path.
  4927.  
  4928.              <circle>  Either a symbol for a circle, or the definition of
  4929.                        a  circle.   Care must be taken that the point  at
  4930.                        the  center  of  the  circle  has  the  correct  Z
  4931.                        coordinate   for   beginning  the   helical   bore
  4932.                        sequence.   Z should represent the surface of  the
  4933.                        part plus any clearance that may be required.
  4934.  
  4935.              The  first move of a helical bore is to the defined point at
  4936.              circle  center.   Next is a move to the first point  on  the
  4937.              helical  path,  as  specified  by the  <alpha>  angle.   The
  4938.              helical path will ensue,  followed by a full 360 degree  cut
  4939.              around the bottom to clean out the bore.
  4940.  
  4941.  
  4942.         Page 81                                Standard Cutting Sequences
  4943.         May 20, 1993              CAMS Part Programmer's Reference Manual
  4944.  
  4945.  
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.  
  4958.  
  4959.  
  4960.  
  4961.  
  4962.  
  4963.  
  4964.  
  4965.  
  4966.  
  4967.  
  4968.  
  4969.  
  4970.  
  4971.  
  4972.  
  4973.  
  4974.  
  4975.  
  4976.  
  4977.  
  4978.  
  4979.  
  4980.  
  4981.  
  4982.  
  4983.  
  4984.  
  4985.  
  4986.  
  4987.  
  4988.  
  4989.  
  4990.  
  4991.  
  4992.  
  4993.  
  4994.  
  4995.  
  4996.  
  4997.  
  4998.  
  4999.  
  5000.  
  5001.  
  5002.  
  5003.         Page 82                                Standard Cutting Sequences
  5004.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5005.  
  5006.  
  5007.                              APPENDIX A - VOCABULARY
  5008.  
  5009.  
  5010.              The  complete  CAMS  vocabulary is shown  in  the  following
  5011.              tables.    Each   entry  shows  the  vocabulary  word,   its
  5012.              hexadecimal recognition code, the APT equivalent word (where
  5013.              appropriate), and a brief description of the word's usage.
  5014.  
  5015.              Not  all the vocabulary is needed for a given  installation.
  5016.              Many of the words are postprocessor words, and may not apply
  5017.              to  your machine tools.   Detailed descriptions of the usage
  5018.              of  postprocessor  vocabulary  words will be  found  in  the
  5019.              appropriate postprocessor manual.
  5020.  
  5021.              Vocabulary  words may be added from time to time to  support
  5022.              new  machine tools and/or new CAMS functions.   Those  words
  5023.              with the "***" at the right margin are reserved  words,  and
  5024.              are not in use by CAMS at this time.
  5025.  
  5026.  
  5027.                             ***  MAJOR WORD TABLE ***
  5028.  
  5029.         PNT    :00     POINT   Definition
  5030.         LIN    :01     LINE    Definition
  5031.         CIR    :02     CIRCLE  Definition
  5032.         VEC    :03     VECTOR  Definition
  5033.         MAT    :04     MATRIX  Definition
  5034.         SPL    :05     SPLINE  Definition
  5035.         CNC    :06     CONIC   Definition                            ***
  5036.         PLN    :07     PLANE   Definition
  5037.         REF    :08     REFSYS  Define Modal Reference System
  5038.         TRA    :09     TRACUT  Define Modal Path Transformation
  5039.         CPY    :0A     COPY    Specify Path Replication
  5040.         IDX    :0B     INDEX   Path Replication Delimiter
  5041.         GTO    :0C     GOTO    Specify Absolute Cutter Position
  5042.         GDL    :0D     GODLTA  Specify Incremental Cutter Position
  5043.         FROM   :0E     FROM    Specify Initial Cutter Position
  5044.         END    :0F     END     Terminate Post Processing
  5045.         IFO    :10     IFRO    AUX Internal Feedrate Override
  5046.         OPS    :11     OPSTOP  AUX Optional Program Stop
  5047.         RPD    :12     RAPID   AUX One-shot Rapid Traverse Move
  5048.         RTR    :13     RETRCT  AUX Spindle Retract
  5049.         STP    :14     STOP    AUX Mandatory Program Stop
  5050.         AUX    :15     AUXFUN  AUX Machine Auxilliary Function (M)
  5051.         PRE    :16     PREFUN  AUX Machine Preparatory Function (G)
  5052.         GO     :17     GO      Specify Relative Motion Startup
  5053.         GLF    :18     GOLFT   Specify Relative Motion LEFT
  5054.         GRT    :19     GORGT   Specify Relative Motion RIGHT
  5055.         GFW    :1A     GOFWD   Specify Relative Motion FORWARD
  5056.         GBK    :1B     GOBACK  Specify Relative Motion BACKWARD
  5057.         POC    :1C     POCKET  Specify Pocketing Path
  5058.         HLX    :1D      ----   Specify Helical Boring Motion
  5059.         SPN    :1E     SPINDL  AUX Spindle Control
  5060.         CLN    :1F     COOLNT  AUX Coolant Control
  5061.         TNO    :20     TOOLNO  AUX Machine Cutter Parameters
  5062.  
  5063.  
  5064.         Page 83                                   Appendix A - Vocabulary
  5065.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5066.  
  5067.  
  5068.         #      :21      ----   Scalar Definition
  5069.         PRT    :22     PRINT   Print Canonical Elements
  5070.         FIN    :23     FINI    Terminate CAMS
  5071.         PNO    :24     PARTNO  Program Identifier
  5072.         PPR    :25     PPRINT  Post Processor Comment
  5073.         MCH    :26     MACHIN  Specify Machine Post Processor
  5074.         FED    :27     FEDRAT  AUX Specify Cutting Feed Rate
  5075.         LDR    :28     LEADER  AUX Punched Tape Leader
  5076.         MCT    :29     MCHTOL  AUX Post Processor Path Tolerance
  5077.         SEQ    :2A     SEQNO   AUX Tape Sequence Number
  5078.         TLF    :2B     TLLFT   Tool Motion Condition LEFT
  5079.         TRG    :2C     RIGHT   Tool Motion Condition RIGHT
  5080.         TON    :2D     TLON    Tool Motion Condition ON
  5081.         CUTR   :2E     CUTTER  Specify Cutter Calculation Parameters
  5082.         PS     :2F     PSIS    Specify Part Surface
  5083.         OFST   :30     OFFSET  Tool Position Offset                  ***
  5084.         IDV    :31     INDIRV  In Direction Vector
  5085.         IDP    :32     INDIRP  In Direction Point
  5086.         PCH    :33     PUNCH                                         ***
  5087.         ARC    :34      ----   Specify Arc Motion
  5088.         CYL    :35     CYLNDR  Define A Right Circular Cylinder
  5089.         DWL    :36     DWELL   AUX Machine Time Delay
  5090.         LTL    :37     LOADTL  AUX Load Cutting Tool
  5091.         CYC    :38     CYCLE   AUX Calculated Or Machine Cycle
  5092.         JIG    :39      ----   AUX Accurate Position Approach
  5093.         OBT    :3A     OBTAIN  Obtain Values From Canonical Form
  5094.         CLP    :3B     CLPRNT  Print Cutter Location File
  5095.         PAT    :3C     PATERN  Define Point Pattern
  5096.         PLT    :3D     PLOT    Plot Cutter Location File
  5097.         REM    :3E     REMARK  Program Listing Remark
  5098.         INS    :3F     INSERT  Direct Insert Of Machine Control Data
  5099.         CCO    :40     CUTCOM  Cutter Compensation
  5100.         RTB    :41     ROTABL  Rotate Machine Table
  5101.         TMK    :42     TMARK   Tape Mark
  5102.         TLO    :43      ----   Tool Offset
  5103.         BMILL  :44      ----   Boundary Milling                      ***
  5104.         THK    :45     THICK   Stock Allowance
  5105.         GET    :46      ----   File Inclusion
  5106.  
  5107.  
  5108.  
  5109.                             *** MINOR WORD TABLE ***
  5110.  
  5111.         XL     :00     XLARGE  Directional Modifior
  5112.         XS     :01     XSMALL  Directional Modifior
  5113.         YL     :02     YLARGE  Directional Modifior
  5114.         YS     :03     YSMALL  Directional Modifior
  5115.         ZL     :04     ZLARGE  Directional Modifior
  5116.         ZS     :05     ZSMALL  Directional Modifior
  5117.         IO     :06     INTOF   Intersection Of
  5118.         TGT    :07     TANTO   Tangency Indicator
  5119.         CTR    :08     CENTER
  5120.         RGT    :09     RIGHT   Directional Modifior
  5121.         LFT    :0A     LEFT    Directional Modifior
  5122.         ANG    :0B     ATANGL  Angular Modifior
  5123.  
  5124.  
  5125.         Page 84                                   Appendix A - Vocabulary
  5126.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5127.  
  5128.  
  5129.         PERP   :0C     PERPTO  Perpendicularity Indicator
  5130.         PARL   :0D     PARLEL  Parallel Indicator
  5131.         RAD    :0E     RADIUS
  5132.         TRN    :0F     TRANSL  Translation Indicator
  5133.         ROT    :10     ROTABL  Rotate Table
  5134.         UNIT   :11     UNIT
  5135.         DOT    :12     DOTF    Vector Dot Product
  5136.         XYR    :13     XYROT   X-Y Rotation
  5137.         YZR    :14     YZROT   Y-Z Rotation
  5138.         ZXR    :15     ZXROT   Z-X Rotation
  5139.         SCL    :16     SCALE   Scale Factor
  5140.         ALL    :17     ALL
  5141.         LGE    :18     LARGE   Largest Item Indicator
  5142.         SMA    :19     SMALL   Smallest Item Indicator
  5143.         INV    :1A     INVERS  Inversion Operator
  5144.         PL3    :1B      ----   3-Plane Format
  5145.         PT3    :1C      ----   3-Point Format
  5146.         OFF    :1D     OFF
  5147.         ON     :1E     ON
  5148.         TO     :1F     TO
  5149.         CLW    :20     CLW     Clockwise
  5150.         CCW    :21     CCW     Counterclockwise
  5151.         PAST   :22     PAST
  5152.         CROS   :23     CROSS   Vector Cross Product
  5153.         ADD    :24     PLUS    Vector Addition Operator
  5154.         SUB    :25     MINUS   Vector Subtraction Operator
  5155.         MPY    :26     TIMES   Vector Multiplication Operator
  5156.         IN     :27     IN
  5157.         OUT    :28     OUT
  5158.         PEK    :29      ----   Peck Drill Cycle
  5159.         DRL    :2A     DRILL   Drill Cycle
  5160.         TAP    :2B     TAP     Tap Cycle
  5161.         BOR    :2C     BORE    Boring Cycle
  5162.         IPM    :2D     IPM     Inches Per Minute
  5163.         IPR    :2E     IPR     Inches Per Revolution
  5164.         CSS    :2F
  5165.         RPM    :30     RPM     Revolutions Per Minute
  5166.         CRC    :31     CIRCUL  Circular Interpolation
  5167.         VCR    :32     Vector
  5168.         CBOR   :33     CBORE   Counterbore
  5169.         DRAG   :34     DRAG    Cycle Bore Dragout
  5170.         OFS    :35             Offset
  5171.         REV    :36             Revolutions
  5172.         RET    :37             Cycle Retract
  5173.         DLY    :38     DELAY   Cycle Dwell
  5174.         UP     :39     UP
  5175.         DWN    :3A     DOWN
  5176.         SPS    :3B     STOPS   Spindle Stop
  5177.         HI     :3C     HIGH
  5178.         LO     :3D     LOW
  5179.         PCH    :3E     PCH     Punch
  5180.         CLAMP  :3F     CLAMP
  5181.         GRID   :40     GRID
  5182.         CAN    :41     CANON   Canonical Replacement
  5183.  
  5184.  
  5185.  
  5186.         Page 85                                   Appendix A - Vocabulary
  5187.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5188.  
  5189.  
  5190.  
  5191.  
  5192.                        *** SCIENTIFIC FUNCTION TABLE ***
  5193.  
  5194.         ABS    :00     ABSF    Absolute Value
  5195.         SQR    :01     SQRTF   Square Root
  5196.         SIN    :02     SINF    Sine
  5197.         COS    :03     COSF    Cosine
  5198.         ATN    :04     ATANF   Arctangent
  5199.         EXP    :05     EXPF    Exponential
  5200.         LGD    :06     Base 10 Logarithm
  5201.         LOG    :07     Natural Logarithm
  5202.         INT    :08     Greatest Integer
  5203.         SGN    :09     Sign
  5204.         MOD    :0A     Remainder
  5205.         MIN    :0B     Minimum
  5206.         MAX    :0C     Maximum
  5207.  
  5208.  
  5209.  
  5210.  
  5211.  
  5212.  
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.  
  5219.  
  5220.  
  5221.  
  5222.  
  5223.  
  5224.  
  5225.  
  5226.  
  5227.  
  5228.  
  5229.  
  5230.  
  5231.  
  5232.  
  5233.  
  5234.  
  5235.  
  5236.  
  5237.  
  5238.  
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.  
  5245.  
  5246.  
  5247.         Page 86                                   Appendix A - Vocabulary
  5248.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5249.  
  5250.  
  5251.                              APPENDIX B - SAMPLE PROGRAM
  5252.  
  5253.  
  5254.              This  appendix contains a sample part  program  illustrating
  5255.              CAMS  part programming techniques.   It should be noted that
  5256.              this  example does not show the only "right" way to  program
  5257.              the part.   Just one of the many ways.  The CAMS language is
  5258.              sufficiently rich to adapt to most machining techniques.
  5259.  
  5260.              The  "THINGAMAJIG" was selected in order to  illustrate  how
  5261.              the  contour machining techniques may be used.   A statement
  5262.              by  statement  account  of the sample  program  follows  the
  5263.              listed output.
  5264.  
  5265.  
  5266.  
  5267.  
  5268.  
  5269.  
  5270.  
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  
  5278.  
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.  
  5288.  
  5289.  
  5290.  
  5291.  
  5292.  
  5293.  
  5294.  
  5295.  
  5296.  
  5297.  
  5298.  
  5299.  
  5300.  
  5301.  
  5302.  
  5303.  
  5304.  
  5305.  
  5306.  
  5307.  
  5308.         Page 87                               Appendix B - Sample Program
  5309.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5310.  
  5311.  
  5312.  
  5313.  
  5314.                            ========================================
  5315.                                       C A M S   Section 1
  5316.                                        Version 3, Mod 00
  5317.  
  5318.                            Copyright  1987 by Computer Geometry Co.
  5319.                                       All Rights Reserved
  5320.                            ========================================
  5321.  
  5322.                                   Date: 07-Dec-87
  5323.                            Source File: THINGMJ.NC
  5324.  
  5325.            1 PNO/ CAMS TEST CASE #1 - THINGAMAJIG - 12/17/86
  5326.            2 #/S0=185
  5327.            3 #/R1=.25
  5328.            4 #/Z1=.625+.25
  5329.            5 #/Z2=-.05
  5330.            6 #/Y0=1.725-.4+2
  5331.            7 #/X0=3
  5332.            8 PLN/Q1=0,0,1,Z2
  5333.            9 LIN/L1=0,-Y0,1,-Y0
  5334.           10 LIN/L2=-X0,0,-X0,1
  5335.           11 LIN/L3=-X0,2-Y0,COS(15)-X0,SIN(15)+2-Y0
  5336.           12 LIN/L4=PARL,L1,YL,1.725
  5337.           13 LIN/L5=PARL,L2,XL,6
  5338.           14 CIR/C1=0,0,2
  5339.           15 REM/ ** COMPUTE SPINDLE RPM (S1) SUCH THAT 100 <= S1 <= 4000
  5340.           16 #/S1=MAX(100:MIN(4000:(S0*12/(3.1416*R1*2))))
  5341.           17 REM/ ** COMPUTE FEEDRATE; .004 PER EDGE FOR 2 FLUTE CUTTER
  5342.           18 #/F1=.004*S1*2
  5343.           19 PRT/S1,F1
  5344.  
  5345.  
  5346.         S1   2104 1413.29300
  5347.         F1   2104   11.30634
  5348.  
  5349.  
  5350.           20 FROM/P255=-(X0+1),-(Y0+1.125),Z1
  5351.           21 FED/F1
  5352.           22 CUTR/2*R1
  5353.           23 RPD
  5354.           24 PS/Q1
  5355.           25 GO/TO,L2,TO,L1
  5356.           26 GO/PAST,L3,TO,L2
  5357.           27 GO/PAST,C1,TO,L3
  5358.           28 REM/ *** GEOMETRY TO COMPUTE ARC END ANGLE USING A CIRCLE
  5359.           29 CIR/C100=YL,L4,XL,IN,C1,R1
  5360.           30 ARC/.003,CCW,CTR,C100,IN,C1
  5361.           31 GO/PAST,L5,TO,L4
  5362.           32 GO/PAST,L1,TO,L5
  5363.           33 GO/PAST,L2,TO,L1
  5364.           34 RPD
  5365.           35 GTO/P255
  5366.           36 PRT/ALL
  5367.  
  5368.  
  5369.         Page 88                               Appendix B - Sample Program
  5370.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5371.  
  5372.  
  5373.  
  5374.  
  5375.         S0   2104  185.00000
  5376.         R1   2104     .25000
  5377.         Z1   2104     .87500
  5378.         Z2   2104    -.05000
  5379.         Y0   2104    3.32500
  5380.         X0   2104    3.00000
  5381.         Q1   010A     .00000    .00000   1.00000   -.05000
  5382.         L1   010A     .00000  -1.00000    .00000   3.32500
  5383.         L2   010A    1.00000    .00000    .00000  -3.00000
  5384.         L3   010A     .25882   -.96593    .00000    .50339
  5385.         L4   010A     .00000  -1.00000    .00000   1.60000
  5386.         L5   010A    1.00000    .00000    .00000   3.00000
  5387.         C1   0210     .00000    .00000    .00000    .00000    .00000   1.00000
  5388.                      2.00000
  5389.         S1   2104 1413.29300
  5390.         F1   2104   11.30634
  5391.         P255 0008   -4.00000  -4.45000    .87500
  5392.         C100 0210    1.11355  -1.35000    .00000    .00000    .00000   1.00000
  5393.                       .25000
  5394.          37 FIN
  5395.          ****   0 ERRORS ****
  5396.         0
  5397.  
  5398.  
  5399.                            ========================================
  5400.                                       C A M S   Section 2
  5401.                                    Version 3,  Modification 00
  5402.  
  5403.                            Copyright  1987 by Computer Geometry Co.
  5404.                                       All Rights Reserved
  5405.                            ========================================
  5406.  
  5407.                                    Date: 07-Dec-87
  5408.                            CL Data File: THINGMJ.CLF
  5409.  
  5410.             1     1 PNO/ CAMS TEST CASE #1 - THINGAMAJIG - 12/17/86
  5411.             2    20 FROM/        -4.00000   -4.45000     .87500
  5412.             3    21 FED/  11.30634
  5413.             4    23 RPD/
  5414.             5    25 GTO/         -3.25000   -3.57500    -.05000
  5415.             6    26 GTO/         -3.25000   -1.13317    -.05000
  5416.             7    27 GTO/         -1.60697    -.69292    -.05000
  5417.             8    30 ARC/           .00000     .00000     .00000
  5418.                                    .00000     .00000    1.00000
  5419.                                   1.75000
  5420.             9    30 GTO/         -1.60697    -.69292    -.05000
  5421.                                  -1.51612    -.87401    -.05000
  5422.                                  -1.40494   -1.04338    -.05000
  5423.                                  -1.27493   -1.19877    -.05000
  5424.                                  -1.12784   -1.33809    -.05000
  5425.                                   -.96562   -1.45948    -.05000
  5426.                                   -.79047   -1.56130    -.05000
  5427.                                   -.60472   -1.64220    -.05000
  5428.  
  5429.  
  5430.         Page 89                               Appendix B - Sample Program
  5431.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5432.  
  5433.  
  5434.                                   -.41086   -1.70109    -.05000
  5435.                                   -.21150   -1.73717    -.05000
  5436.                                   -.00930   -1.74998    -.05000
  5437.                                    .19302   -1.73932    -.05000
  5438.                                    .39276   -1.70536    -.05000
  5439.                                    .58723   -1.64853    -.05000
  5440.                                    .77383   -1.56961    -.05000
  5441.                                    .95006   -1.46966    -.05000
  5442.                                   1.11355   -1.35000    -.05000
  5443.            10    31 GTO/          3.25000   -1.35000    -.05000
  5444.            11    32 GTO/          3.25000   -3.57500    -.05000
  5445.            12    33 GTO/         -3.25000   -3.57500    -.05000
  5446.            13    34 RPD/
  5447.            14    35 GTO/         -4.00000   -4.45000     .87500
  5448.            15    37 FIN/
  5449.  
  5450.         ****   0 ERRORS ****
  5451.         0
  5452.  
  5453.  
  5454.              What  follows  is  a statement-by-statement account  of  the
  5455.         THINGAMAJIG part program and its CAMS1 output...
  5456.  
  5457.  
  5458.  
  5459.            1 PNO/ CAMS TEST CASE #1 - THINGAMAJIG - 12/17/86
  5460.  
  5461.              Establishes  identifying  information about the program  and
  5462.              instructs the postprocessor to create an identifying  leader
  5463.              for the machine control tape.
  5464.  
  5465.            2 #/S0=185
  5466.  
  5467.              The  value  185 is assigned to the symbol S0.   185  is  the
  5468.              cutting  speed  chosen in  surface  feet/minute.   Assigning
  5469.              surface  speed  to a variable at the beginning of  the  part
  5470.              program,  subsequently using it to calculate spindle RPM, is
  5471.              good  programming  technique.   It allows all the feeds  and
  5472.              speeds  of the part program to be automatically  altered  by
  5473.              the simple expedient of changing this statement.
  5474.  
  5475.            3 #/R1=.25
  5476.  
  5477.              The  value  .25 is assigned to the symbol R1.   .25  is  the
  5478.              cutter  radius used in the contour operation.   Assigning  a
  5479.              symbol  to  this  value,   then  using  the  symbol  in  all
  5480.              subsequent  statements,  permits  the  cutter radius  to  be
  5481.              changed by altering only this one statement.
  5482.  
  5483.            4 #/Z1=.625+.25
  5484.  
  5485.              Establishes  the machine orientation point Z  coordinate  as
  5486.              .875.   Notice  that the part programmer used only blueprint
  5487.              dimensions and left the calculation for the computer.   This
  5488.              makes  checking  and  engineering  changes  much  easier  to
  5489.  
  5490.  
  5491.         Page 90                               Appendix B - Sample Program
  5492.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5493.  
  5494.  
  5495.              incorporate into the part program.
  5496.  
  5497.            5 #/Z2=-.05
  5498.  
  5499.              Establishes  the Z coordinate for depth of cut as .05  below
  5500.              the locating surface (Z=0) of the part.
  5501.  
  5502.            6 #/Y0=1.725-.4+2
  5503.  
  5504.              Establishes  the dimension from the 2.000 radius arc  center
  5505.              to the lower edge of the part.
  5506.  
  5507.            7 #/X0=3
  5508.  
  5509.              Establishes  the dimension from the 2.000 radius arc  center
  5510.              to the left edge of the part.
  5511.  
  5512.            8 PLN/Q1=0,0,1,Z2
  5513.  
  5514.              Defines a plane at Z=Z2.  This plane will later be used as a
  5515.              part surface in contour machining operations.
  5516.  
  5517.            9 LIN/L1=0,-Y0,1,-Y0
  5518.  
  5519.              Defines the line representing the bottom edge of the part.
  5520.  
  5521.           10 LIN/L2=-X0,0,-X0,1
  5522.  
  5523.              Defines the line representing the left edge of the part.
  5524.  
  5525.           11 LIN/L3=-X0,2-Y0,COS(15)-X0,SIN(15)+2-Y0
  5526.  
  5527.              Defines  the  15 degree angle line at the top  edge  of  the
  5528.              part.
  5529.  
  5530.           12 LIN/L4=PARL,L1,YL,1.725
  5531.  
  5532.              Defines the horizontal line at the top edge of the part.
  5533.  
  5534.           13 LIN/L5=PARL,L2,XL,6
  5535.  
  5536.              Defines the vertical line at the right edge of the part.
  5537.  
  5538.           14 CIR/C1=0,0,2
  5539.  
  5540.              Defines  the circle representing the 2.000 radius at the top
  5541.              of the part.
  5542.  
  5543.           15 REM/ ** COMPUTE SPINDLE RPM (S1) SUCH THAT 100 <= S1 <= 4000
  5544.  
  5545.              A comment used to describe the next calculation.
  5546.  
  5547.           16 #/S1=MAX(100:MIN(4000:(S0*12/(3.1416*R1*2))))
  5548.  
  5549.              The computation of spindle speed from surface  speed,  using
  5550.  
  5551.  
  5552.         Page 91                               Appendix B - Sample Program
  5553.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5554.  
  5555.  
  5556.              the  radius of the cutter.   Note the use of the MAX and MIN
  5557.              functions  to guarantee that the resulting spindle speed  is
  5558.              within  the  machine tool's range (100 <= spindle  speed  <=
  5559.              4000).   This is good programming practice,  since the  next
  5560.              computation  will  be  for feedrate,  and it will  need  the
  5561.              actual spindle speed to be effective.
  5562.  
  5563.           17 REM/ *** COMPUTE FEEDRATE; .004 PER EDGE FOR 2 FLUTE CUTTER
  5564.  
  5565.              A comment used to describe the next calculation.
  5566.  
  5567.           18 #/F1=.004*S1*2
  5568.  
  5569.              Establishes  the  symbol  F1 as  containing  the  calculated
  5570.              feedrate for the part program.
  5571.  
  5572.           19 PRT/S1,F1
  5573.  
  5574.              Prints  the  calculated spindle speed and  feedrate  at  the
  5575.              point in the program at which they are calculated.   This is
  5576.              good for debugging purposes, later.
  5577.  
  5578.           20 FROM/P255=-(X0+1),-(Y0+1.125),Z1
  5579.  
  5580.              Initializes   motion   for  both  CAMS   and   the   machine
  5581.              postprocessor.   Establishes  the pick-up point for the part
  5582.              program.   On  an  incremental  machine,  for  example,  the
  5583.              operator  would have had to manually set the machine at  the
  5584.              specified position before start-up.
  5585.  
  5586.           21 FED/F1
  5587.  
  5588.              Establishes  F1  as  the  feedrate  for  subsequent   motion
  5589.              statements.
  5590.  
  5591.           22 CUTR/2*R1
  5592.  
  5593.              Define  the  cutter  to be 2*R1 (.500)  in  diameter.   This
  5594.              value   is   used  on  all  subsequent   contouring   motion
  5595.              statements.
  5596.  
  5597.           23 RPD
  5598.  
  5599.              Over-rides the established feedrate on a one-shot basis, and
  5600.              establishes  the feed rate for the next motion statement  at
  5601.              maximum, or rapid traverse, for the machine tool.
  5602.  
  5603.           24 PS/Q1
  5604.  
  5605.              Establishes  the  part  surface plane as Q1  for  subsequent
  5606.              contouring motion.
  5607.  
  5608.           25 GO/TO,L2,TO,L1
  5609.  
  5610.              From the initial position (line 20, above), compute a cutter
  5611.  
  5612.  
  5613.         Page 92                               Appendix B - Sample Program
  5614.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5615.  
  5616.  
  5617.              offset  position  that is in contact with both L2 and L1  on
  5618.              the respective side nearest to the present cutter location.
  5619.  
  5620.           26 GO/PAST,L3,TO,L2
  5621.  
  5622.              From  the  most  recent cutter location,  compute  a  cutter
  5623.              offset position that is in contact with L3 on the far  side,
  5624.              and in contact with L2 on the near side.
  5625.  
  5626.           27 GO/PAST,C1,TO,L3
  5627.  
  5628.              From  the  most  recent cutter location,  compute  a  cutter
  5629.              offset position that is in contact with C1 on the far  side,
  5630.              and in contact with L3 on the near side.
  5631.  
  5632.           28 REM/ *** GEOMETRY TO COMPUTE ARC END ANGLE USING A CIRCLE
  5633.           29 CIR/C100=YL,L4,XL,IN,C1,R1
  5634.  
  5635.              Define a construction circle,  equivalent to a cross section
  5636.              of  the  cutter,  that is in contact with circle C1  at  the
  5637.              desired end angle of the upcoming ARC/ statement.
  5638.  
  5639.           30 ARC/.003,CCW,CTR,C100,IN,C1
  5640.  
  5641.              Contour   an  arc,   using  a  .003  tolerance  for   linear
  5642.              interpolation,   to   be  traversed  in  a  counterclockwise
  5643.              direction,  beginning at the present position of the  cutter
  5644.              (CTR),  ending  at  an angle coincident with the  center  of
  5645.              C100, and traversing inside of circle C1.
  5646.  
  5647.           31 GO/PAST,L5,TO,L4
  5648.  
  5649.              From  the  most  recent cutter location,  compute  a  cutter
  5650.              offset position that is in contact with L5 on the far  side,
  5651.              and in contact with L4 on the near side.
  5652.  
  5653.           32 GO/PAST,L1,TO,L5
  5654.  
  5655.              From  the  most  recent cutter location,  compute  a  cutter
  5656.              offset position that is in contact with L1 on the far  side,
  5657.              and in contact with L5 on the near side.
  5658.  
  5659.           33 GO/PAST,L2,TO,L1
  5660.  
  5661.              From  the  most  recent cutter location,  compute  a  cutter
  5662.              offset position that is in contact with L2 on the far  side,
  5663.              and in contact with L1 on the near side.
  5664.  
  5665.           34 RPD
  5666.           35 GTO/P255
  5667.  
  5668.              Return  to  the coordinate position of the "FROM"  point  at
  5669.              rapid traverse feed rate.
  5670.  
  5671.           36 PRT/ALL
  5672.  
  5673.  
  5674.         Page 93                               Appendix B - Sample Program
  5675.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5676.  
  5677.  
  5678.  
  5679.              Print all canonical forms computed in the part program.
  5680.  
  5681.           37 FIN
  5682.  
  5683.              Terminate the CAMS part program.
  5684.  
  5685.              We're done! (With CAMS1.)
  5686.  
  5687.  
  5688.  
  5689.              The  CAMS2 output listing contains a substantial  amount  of
  5690.         diagnostic  information  for the experienced user.   Each  record
  5691.         begins  with  its unique and sequential CL record number  at  the
  5692.         left  margin.
  5693.  
  5694.              The  number  second  from the left is  the  CAMS1  statement
  5695.         sequence number.   It is used to correlate the CL record with the
  5696.         source  statement that produced it.   You may note that some CAMS
  5697.         source  statements  are capable of generating more  than  one  CL
  5698.         record.
  5699.  
  5700.              Finally,   a   representation  of  the  CL  record  data  is
  5701.         reproduced in a man-readable form.  Notice that there are several
  5702.         classes  of CL record.   Some (e.g.  1,  2,  and 4) simply  carry
  5703.         forward  their data for later use by the postprocessor.   (In the
  5704.         case  of CL record number 4,  the feedrate computation  has  been
  5705.         resolved into a number.)  Others,  e.g. 2, 5, and 6) are resolved
  5706.         into point-to-point cutter motion.
  5707.  
  5708.              Still  others,  e.g.  8  and 9,  are  linked  records  which
  5709.         completely  specify a motion ARC.   Record 8 specifies the circle
  5710.         on  which  the arc is measured,  and record 9  contains  all  the
  5711.         linear  moves  necessary to cut the arc in  linear  interpolation
  5712.         while  maintaining  the  specified tolerance (0.003  as  seen  in
  5713.         statement number 30)
  5714.  
  5715.  
  5716.  
  5717.  
  5718.  
  5719.  
  5720.  
  5721.  
  5722.  
  5723.  
  5724.  
  5725.  
  5726.  
  5727.  
  5728.  
  5729.  
  5730.  
  5731.  
  5732.  
  5733.  
  5734.  
  5735.         Page 94                               Appendix B - Sample Program
  5736.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5737.  
  5738.  
  5739.                     APPENDIX C - GENERAL CONTOURING SAMPLE PROGRAM
  5740.  
  5741.  
  5742.              This  appendix  contains a sample part program  illustrating
  5743.              the CAMS general contouring techniques.   It should be noted
  5744.              that  this  example does not show the only  "right"  way  to
  5745.              program  the  part.   Just one of the many ways.   The  CAMS
  5746.              language  is  sufficiently rich to adapt to  most  machining
  5747.              techniques.
  5748.  
  5749.              To  show  the  different programming  techniques  used,  the
  5750.              "THINGAMAJIG" example from Appendix B is shown re-programmed
  5751.              here.  This will provide you with an illustration of  how
  5752.              the general contour machining techniques may be  used.   The
  5753.              resulting  cutter location file is not exactly the same  as,
  5754.              but is equivalent to,  that of Appendix B.  Those statements
  5755.              that differ from the example in Appendix B are described  in
  5756.              detail following the listed output.
  5757.  
  5758.  
  5759.  
  5760.  
  5761.  
  5762.                            ========================================
  5763.                                       C A M S   Section 1
  5764.                                        Version 3, Mod 00
  5765.  
  5766.                            Copyright  1987 by Computer Geometry Co.
  5767.                                       All Rights Reserved
  5768.                            ========================================
  5769.  
  5770.                                   Date: 03-May-88
  5771.                            Source File: THINGMJ.NC
  5772.  
  5773.          1 PNO/ CAMS GENERAL CONTOURING TEST CASE #1 - THINGAMAJIG
  5774.          3 #/S0=185
  5775.          4 #/R1=.25
  5776.          5 #/Z1=.625+.25
  5777.          6 #/Z2=-.05
  5778.          7 #/Y0=1.725-.4+2
  5779.          8 #/X0=3
  5780.          9 PLN/Q1=0,0,1,Z2
  5781.         10 LIN/L1=0,-Y0,1,-Y0
  5782.         11 LIN/L2=-X0,0,-X0,1
  5783.         12 LIN/L3=-X0,2-Y0,COS(15)-X0,SIN(15)+2-Y0
  5784.         13 LIN/L4=PARL,L1,YL,1.725
  5785.         14 LIN/L5=PARL,L2,XL,6
  5786.         15 CIR/C1=0,0,2
  5787.         16 REM/ ** COMPUTE SPINDLE RPM (S1) SUCH THAT 100 <= S1 <= 4000
  5788.         17 #/S1=MAX(100:MIN(4000:(S0*12/(3.1416*R1*2))))
  5789.         18 REM/ ** COMPUTE FEEDRATE; .004 PER EDGE FOR 2 FLUTE CUTTER
  5790.         19 #/F1=.004*S1*2
  5791.         20 PRT/S1,F1
  5792.  
  5793.  
  5794.  
  5795.  
  5796.         Page 95             Appendix C - General Contouring Sample Program
  5797.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5798.  
  5799.  
  5800.          S1   2104 1413.29300
  5801.          F1   2104   11.30634
  5802.  
  5803.  
  5804.         21 FROM/P255=-(X0+1),-(Y0+1.125),Z1
  5805.         22 FED/F1
  5806.         23 CUTR/2*R1
  5807.         24 RPD
  5808.         25 PS/Q1
  5809.         26 GO/TO,L2,TO,L1
  5810.         27 TLF
  5811.         28 GLF/L2,PAST,L3
  5812.         29 GRT/L3,PAST,C1
  5813.         30 GRT/C1,ON,L4
  5814.         31 IDV/0,1,0
  5815.         32 GRT/C1,PAST,L4
  5816.         33 GRT/L4,PAST,L5
  5817.         34 GRT/L5,PAST,L1
  5818.         35 GRT/L1,PAST,L2
  5819.         36 RPD
  5820.         37 GTO/P255
  5821.         38 PRT/ALL
  5822.  
  5823.  
  5824.          M1   041A    1.00000   .00000   .00000   .37500
  5825.                        .00000  1.00000   .00000  2.22500
  5826.                        .00000   .00000  1.00000  -.41250
  5827.          S0   2104  185.00000
  5828.          R1   2104     .25000
  5829.          Z1   2104     .87500
  5830.          Z2   2104    -.05000
  5831.          Y0   2104    3.32500
  5832.          X0   2104    3.00000
  5833.          Q1   010A     .00000   .00000  1.00000  -.05000
  5834.          L1   010A     .00000 -1.00000   .00000  3.32500
  5835.          L2   010A    1.00000   .00000   .00000 -3.00000
  5836.          L3   010A     .25882  -.96593   .00000   .50339
  5837.          L4   010A     .00000 -1.00000   .00000  1.60000
  5838.          L5   010A    1.00000   .00000   .00000  3.00000
  5839.          C1   0210     .00000   .00000   .00000   .00000   .00000  1.00000
  5840.                       2.00000
  5841.          S1   2104 1413.29300
  5842.          F1   2104   11.30634
  5843.          P255 0008   -4.00000 -4.45000   .87500
  5844.  
  5845.         39 FIN
  5846.  
  5847.         ****   0 ERRORS ****
  5848.  
  5849.         Return code 0
  5850.  
  5851.  
  5852.  
  5853.  
  5854.  
  5855.  
  5856.  
  5857.         Page 96             Appendix C - General Contouring Sample Program
  5858.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5859.  
  5860.  
  5861.                      ========================================
  5862.                                 C A M S   Section 2
  5863.                              Version 3,  Modification 00
  5864.  
  5865.                      Copyright  1987 by Computer Geometry Co.
  5866.                                 All Rights Reserved
  5867.                      ========================================
  5868.  
  5869.                              Date: 03-May-88
  5870.                      CL Data File: THINGMJ.CLF
  5871.  
  5872.          1  1 PNO/ CAMS GENERAL CONTOURING TEST CASE #1 - THINGAMAJIG
  5873.          2 21 FROM/        -4.00000   -4.45000     .87500
  5874.          3 22 FED/ 11.30634
  5875.          4 24 RPD/
  5876.          5 26 GTO/         -3.25000   -3.57500    -.05000
  5877.          6 28 GTO/         -3.25000   -1.13317    -.05000
  5878.          7 29 GTO/         -1.60697    -.69292    -.05000
  5879.          8 30 ARC/           .00000     .00000     .00000
  5880.                              .00000     .00000    1.00000
  5881.                             1.75000
  5882.          9 30 GTO/         -1.60697    -.69292    -.05000
  5883.                            -1.55628    -.80032    -.05000
  5884.                            -1.49841    -.90402    -.05000
  5885.                            -1.43365   -1.00357    -.05000
  5886.                            -1.36228   -1.09850    -.05000
  5887.                            -1.28464   -1.18836    -.05000
  5888.                            -1.20108   -1.27275    -.05000
  5889.                            -1.11199   -1.35128    -.05000
  5890.                            -1.01778   -1.42359    -.05000
  5891.                             -.91889   -1.48934    -.05000
  5892.                             -.81576   -1.54824    -.05000
  5893.                             -.70887   -1.60000    -.05000
  5894.         10 32 ARC/           .00000     .00000     .00000
  5895.                              .00000     .00000    1.00000
  5896.                             1.75000
  5897.         11 32 GTO/          -.70887   -1.60000    -.05000
  5898.                             -.59659   -1.64517    -.05000
  5899.                             -.48145   -1.68247    -.05000
  5900.                             -.36401   -1.71172    -.05000
  5901.                             -.24483   -1.73279    -.05000
  5902.                             -.12448   -1.74557    -.05000
  5903.                             -.00353   -1.75000    -.05000
  5904.                              .11743   -1.74606    -.05000
  5905.                              .23784   -1.73376    -.05000
  5906.                              .35710   -1.71318    -.05000
  5907.                              .47466   -1.68440    -.05000
  5908.                              .58994   -1.64756    -.05000
  5909.                              .70241   -1.60285    -.05000
  5910.                              .81151   -1.55047    -.05000
  5911.                              .91674   -1.49067    -.05000
  5912.                             1.01758   -1.42374    -.05000
  5913.                             1.11355   -1.35000    -.05000
  5914.         12 33 GTO/          3.25000   -1.35000    -.05000
  5915.         13 34 GTO/          3.25000   -3.57500    -.05000
  5916.  
  5917.  
  5918.         Page 97             Appendix C - General Contouring Sample Program
  5919.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5920.  
  5921.  
  5922.         14 35 GTO/         -3.25000   -3.57500    -.05000
  5923.         15 36 RPD/
  5924.         16 37 GTO/         -4.00000   -4.45000     .87500
  5925.         17 39 FIN/
  5926.  
  5927.         ****   0 ERRORS ****
  5928.  
  5929.         Return code 0
  5930.  
  5931.  
  5932.         What   follows   is  a  statement-by-statement  account  of   the
  5933.         THINGAMAJIG  part program statements that differ from the  sample
  5934.         program in Appendix B...
  5935.  
  5936.  
  5937.            :
  5938.            :
  5939.  
  5940.           27 TLF
  5941.  
  5942.              For  the upcoming motion sequence,  the tool will remain  on
  5943.              the left side of each drive surface during the drive.
  5944.  
  5945.           28 GLF/L2,PAST,L3
  5946.  
  5947.              Based  on the last preceeding motion,  the tool is to go  to
  5948.              the  left along the drive surface (L2) untill it moves  PAST
  5949.              the check surface (L3).
  5950.  
  5951.           29 GRT/L3,PAST,C1
  5952.  
  5953.              Based  on the last preceeding motion,  the tool is to go  to
  5954.              the  right along the new drive surface (L3) untill it  moves
  5955.              PAST  the  check surface (C1).   Notice that the  new  drive
  5956.              surface  was  the check surface for the  preceeding  motion.
  5957.              This is a common pattern.
  5958.  
  5959.           30 GRT/C1,ON,L4
  5960.  
  5961.              Based  on the last preceeding motion,  the tool is to go  to
  5962.              the  right along the new drive surface (L3) untill it  moves
  5963.              PAST the check surface (C1).  Our objective for the C1 drive
  5964.              surface  is to eventually go PAST L4.   However,  the cutter
  5965.              will  not fit into the space between L4 and C1,  so we  will
  5966.              first go ON L4,  then continue the motion in the next motion
  5967.              statement.
  5968.  
  5969.           31 IDV/0,1,0
  5970.  
  5971.              Since we are now ON the line L4, there are two possibilities
  5972.              for  a  PAST  condition for L4.   We must set up  a  forward
  5973.              motion sense for going PAST L4.   This is best  accomplished
  5974.              by  defining the forward direction for the next move with  a
  5975.              vector.   In this case, the vector pointing straight up will
  5976.              give us a PAST condition.
  5977.  
  5978.  
  5979.         Page 98             Appendix C - General Contouring Sample Program
  5980.         May 20, 1993              CAMS Part Programmer's Reference Manual
  5981.  
  5982.  
  5983.  
  5984.  
  5985.           32 GRT/C1,PAST,L4
  5986.  
  5987.              Based  on the last preceeding motion,  the tool is to go  to
  5988.              the right along the continuing drive surface (C1) untill  it
  5989.              moves PAST the check surface (L4).
  5990.  
  5991.           33 GRT/L4,PAST,L5
  5992.  
  5993.              Based  on the last preceeding motion,  the tool is to go  to
  5994.              the  right along the new drive surface (L4) untill it  moves
  5995.              PAST the check surface (L5).
  5996.  
  5997.           34 GRT/L5,PAST,L1
  5998.  
  5999.              Based  on the last preceeding motion,  the tool is to go  to
  6000.              the  right along the new drive surface (L5) untill it  moves
  6001.              PAST the check surface (L1).
  6002.  
  6003.           35 GRT/L1,PAST,L2
  6004.  
  6005.              Based  on the last preceeding motion,  the tool is to go  to
  6006.              the  right along the new drive surface (L1) untill it  moves
  6007.              PAST the check surface (L2).
  6008.  
  6009.            :
  6010.            :
  6011.  
  6012.  
  6013.              We're done! (Showing the differences in the part programs.)
  6014.  
  6015.  
  6016.         A  quick  examination of the CAMS2 output  will  demonstrate  the
  6017.         equivalence  of  the two methods in terms of the  generated  tool
  6018.         paths.  The general contouring method is the preferred method for
  6019.         several  reasons.   Since  no  additional geometry  needs  to  be
  6020.         calculated  in order to control the arc contour,  less effort  is
  6021.         needed  on the part of the parts programmer.   In  addition,  the
  6022.         generated  tool  path automatically accounts for the tool  radius
  6023.         offsets.   Dimensional  engineering changes in the shape  of  the
  6024.         part will have little or no effect on the motion statements.  The
  6025.         proper path will automatically be calculated despite the change.
  6026.  
  6027.  
  6028.  
  6029.  
  6030.  
  6031.  
  6032.  
  6033.  
  6034.  
  6035.  
  6036.  
  6037.  
  6038.  
  6039.  
  6040.         Page 99             Appendix C - General Contouring Sample Program
  6041.         May 20, 1993              CAMS Part Programmer's Reference Manual
  6042.  
  6043.  
  6044.                            APPENDIX D - POSTPROCESSORS
  6045.  
  6046.  
  6047.         Postprocessing  is  the  final computer  operation  in  the  CAMS
  6048.         system.   The  postprocessor is yet another computer program that
  6049.         converts   the  machine-independent  tool  path  and   auxilliary
  6050.         function  records  in the CL data file (as calculated  by  CAMS2)
  6051.         into  the machine-specific control instructions necessary to  cut
  6052.         out the workpiece.
  6053.  
  6054.         Cut vectors (i.e. motion command records in the CL file) together
  6055.         with  feedrates  are  utilized to establish  the  axial  motions,
  6056.         accelerations and velocities within the capability of the machine
  6057.         tool.    Where   necessary  (usually  on  older   NC   machines),
  6058.         accelerations and decelerations are calculated to avoid overshoot
  6059.         and/or undershoot of the axes,  thereby avoiding part and machine
  6060.         damage.
  6061.  
  6062.         Since  each  machine  control system has  its  own  language  and
  6063.         characteristics, it is necessary to treat seperately that portion
  6064.         of  the  CAMS  vocabulary which directly refers  to  the  machine
  6065.         control  system.   Therefore,  the  machine postprocessor  has  a
  6066.         seperate   manual.     Furthermore,   each   class   of   machine
  6067.         postprocessor frequently uses the vocabulary in different ways.
  6068.  
  6069.         Because  of  the  wide  diversity of machine  tool  /  controller
  6070.         combinations, postprocessing of CL data usually requires a unique
  6071.         program  to prepare the necessary machine control data.   Indeed,
  6072.         one of the most difficult aspects of setting up a computer  aided
  6073.         NC  system in your shop may be the specification and obtaining of
  6074.         the  appropriate  machine postprocessors,  regardless of  the  NC
  6075.         programming system you select.
  6076.  
  6077.         This  diversity  of machines/controller  combinations  makes  the
  6078.         preparation  of a library of postprocessors an order of magnitude
  6079.         larger task than the development of an NC programming system.  In
  6080.         other words, THIS IS WHERE ALL THE PRODUCT DEVELOPMENT WORK IS.
  6081.  
  6082.         A  class  of postprocessors designed to alleviate these  problems
  6083.         has been developed in recent years.  These are called the G-POSTs
  6084.         (for Generalized POSTprocessor).  Indeed, some of the G-POSTs are
  6085.         capable of supporting a good variety of machine tool controllers.
  6086.         In  general,  they  tend  to be very  large,  complex  beasts  as
  6087.         compared  to  the smaller "custom"  postprocessors.   Both  their
  6088.         output and their operation tend to be less efficient than that of
  6089.         a   "custom"   postprocessor  for  a   given   machine/controller
  6090.         combination.   Nevertheless,  in  those  shops that have a  large
  6091.         number  of  diverse machines and controllers,  they  have  proven
  6092.         their worth.
  6093.  
  6094.         It  is  expected that the average user of CAMS only has  a  small
  6095.         handfull  of  NC  machines  in  its  shop  inventory.   For  this
  6096.         situation,  the  "custom" postprocessor is most likely to be  the
  6097.         most effective and least costly solution to the dilemma.
  6098.  
  6099.  
  6100.  
  6101.         Page 100                               Appendix D - Postprocessors
  6102.         May 20, 1993              CAMS Part Programmer's Reference Manual
  6103.  
  6104.  
  6105.         COMPUTER GEOMETY'S POSTPROCESSOR POLICY
  6106.  
  6107.         Computer  Geometry  regards postprocessor development as a  major
  6108.         segment  of  our business.   It is our policy to apply  our  best
  6109.         efforts  to  providing  high  quality,  low  cost  postprocessing
  6110.         capability  to  all  of the CAMS users that  request  it.   If  a
  6111.         postprocessor is not currently available for a registered  user's
  6112.         need,  we  will bend every effort to prepare one in a timely  and
  6113.         cost-effective manner.
  6114.  
  6115.         As  a registered user with a need,  however,  you must  recognize
  6116.         that  you  have a responsibility to provide the  necessary  data,
  6117.         manuals,  and  acceptance  testing  necessary to produce  a  good
  6118.         postprocessor.   This team approach is necessary to preparing the
  6119.         best possible NC programming system for your machine shop.
  6120.  
  6121.         Please read the README.1ST file on your distribution diskette for
  6122.         a list of the machine postprocessors already available.
  6123.  
  6124.  
  6125.  
  6126.  
  6127.  
  6128.  
  6129.  
  6130.  
  6131.  
  6132.  
  6133.  
  6134.  
  6135.  
  6136.  
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142.  
  6143.  
  6144.  
  6145.  
  6146.  
  6147.  
  6148.  
  6149.  
  6150.  
  6151.  
  6152.  
  6153.  
  6154.  
  6155.  
  6156.  
  6157.  
  6158.  
  6159.  
  6160.  
  6161.  
  6162.         Page 101                               Appendix D - Postprocessors
  6163.         May 20, 1993              CAMS Part Programmer's Reference Manual
  6164.  
  6165.  
  6166.                              APPENDIX E - GLOSSARY
  6167.  
  6168.  
  6169.  
  6170.         alphanumeric code:            Code  using numbers,  letters,  and
  6171.                                       special characters.
  6172.  
  6173.         APT:                          (Automatic   Programmed  Tool)    A
  6174.                                       numerical    control    programming
  6175.                                       language.
  6176.  
  6177.         auxiliary function:           Numerical  control  function  other
  6178.                                       than  those  that  control   cutter
  6179.                                       motion (e.g., starting and stopping
  6180.                                       a spindle).
  6181.  
  6182.         batch processing:             Automatic  sequential execution  of
  6183.                                       computer  programs,  controlled  by
  6184.                                       the  facilities and dynamic demands
  6185.                                       of the computer system.
  6186.  
  6187.         BCD:                          (Binary Coded Decimal)  A character
  6188.                                       representation code, now obsolete.
  6189.  
  6190.         channel:                      The path in punch tape along  which
  6191.                                       holes  are punched,  also known  as
  6192.                                       tracks or levels.  Standard NC tape
  6193.                                       has eight channels.
  6194.  
  6195.         CL data:                      (Cutter    location   data)     The
  6196.                                       coordinate locations of the  cutter
  6197.                                       centerline  motion  as it moves  to
  6198.                                       machine the part.
  6199.  
  6200.         CL file:                      (Center location file)  A data  set
  6201.                                       containing CL data.
  6202.  
  6203.         CL path:                      (Cutter  location  path)  The  path
  6204.                                       taken by the center of the cutter.
  6205.  
  6206.         CL print:                     (Center location print)  A printout
  6207.                                       of the CL file data.
  6208.  
  6209.         CL tape:                      (Cutter  location  tape)  The  tape
  6210.                                       that contains CL file data.
  6211.  
  6212.         CNC:                          Computer Numerical Control.
  6213.  
  6214.         column binary:                The   binary   representation    of
  6215.                                       character punches as represented in
  6216.                                       columns  on  a punched card  image.
  6217.                                       As used in this manual, each row of
  6218.                                       the punched card image represents a
  6219.                                       channel on a punched tape.
  6220.  
  6221.  
  6222.  
  6223.         Page 102                                     Appendix E - Glossary
  6224.         May 20, 1993              CAMS Part Programmer's Reference Manual
  6225.  
  6226.  
  6227.         dataset:                      The major unit of data storage  and
  6228.                                       retrieval  in the operating  system
  6229.                                       consisting of a collection of data.
  6230.  
  6231.         DNC:                          Direct    Numerical   Control    or
  6232.                                       Distributed Numerical Control.
  6233.  
  6234.         EBCDIC:                       (Extended  Binary Coded Decimal for
  6235.                                       Interchange   Code)   A   character
  6236.                                       representation   code   still    in
  6237.                                       extensive use.
  6238.  
  6239.         FROM point:                   The   initializing   position   for
  6240.                                       CAMS' cutter path generator.   Many
  6241.                                       postprocessors require a FROM point
  6242.                                       before  generating  machine  motion
  6243.                                       commands.
  6244.  
  6245.         INDEX number:                 Number  used to mark the  beginning
  6246.                                       and  end of a part program  segment
  6247.                                       that is to be copied.
  6248.  
  6249.         interface:                    The   communication   between   two
  6250.                                       separate   elements,   as   between
  6251.                                       machine  control  unit and  machine
  6252.                                       tool.
  6253.  
  6254.         level:                        See CHANNEL.
  6255.  
  6256.         major word:                   The   CAMS  vocabulary  word   that
  6257.                                       immediately  preceeds the slash (/)
  6258.                                       in a statement.
  6259.  
  6260.         minor word:                   The  CAMS vocabulary  word(s)  that
  6261.                                       appear in a statement following the
  6262.                                       slash (/).
  6263.  
  6264.         NC:                           Numerical Control.
  6265.  
  6266.         NC data:                      NC part program data.
  6267.  
  6268.         Part program:                 A  complete set of machine  control
  6269.                                       data  used for manufacturing a part
  6270.                                       on an NC machine.
  6271.  
  6272.         POST:                         To post process an NC part program.
  6273.  
  6274.         post processing:              Transforming  the format of a  data
  6275.                                       file   (CL   FILE)  output   by   a
  6276.                                       processor   into   machine   motion
  6277.                                       commands  using the  proper  format
  6278.                                       required  by  a particular  machine
  6279.                                       control      unit/machine      tool
  6280.                                       combination.
  6281.  
  6282.  
  6283.  
  6284.         Page 103                                     Appendix E - Glossary
  6285.         May 20, 1993              CAMS Part Programmer's Reference Manual
  6286.  
  6287.  
  6288.         post processor:               A  computer  program that  takes  a
  6289.                                       generalized  or  centerline  output
  6290.                                       and  adapts  it to  the  particular
  6291.                                       machine control unit/machine.
  6292.  
  6293.         processor:                    A  computer program  that  performs
  6294.                                       the     compiling,      assembling,
  6295.                                       translating,  and related functions
  6296.                                       for    a    specific    programming
  6297.                                       language.
  6298.  
  6299.         record:                       A general term for any unit of data
  6300.                                       that  is  distinct from all  others
  6301.                                       when  considered  in  a  particular
  6302.                                       context.
  6303.  
  6304.         spline:                       The term used for a free-form curve
  6305.                                       generated  thru a defining sequence
  6306.                                       of coordinate data  (points).   The
  6307.                                       term originates from the long, thin
  6308.                                       wooden  beam  used by draftsmen  to
  6309.                                       draw curved lines.
  6310.  
  6311.         tool centerline data:         The  centerline of the cutter  path
  6312.                                       of  a cutting tool at the  tip  end
  6313.                                       (see  CL  FILE and CL  DATA).   The
  6314.                                       absolute  position of  the  machine
  6315.                                       tool at the cutter centroid.
  6316.  
  6317.         track:                        (See CHANNEL.)
  6318.  
  6319.         volume:                       Storage  media such as tape  reels,
  6320.                                       disk packs, and drums.
  6321.  
  6322.  
  6323.  
  6324.  
  6325.  
  6326.  
  6327.  
  6328.  
  6329.  
  6330.  
  6331.  
  6332.  
  6333.  
  6334.  
  6335.  
  6336.  
  6337.  
  6338.  
  6339.  
  6340.  
  6341.  
  6342.  
  6343.  
  6344.  
  6345.         Page 104                                     Appendix E - Glossary
  6346.  
  6347.