home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / CAMS304.ZIP / CAMSMAN.EXE / CAMSMAN.TXT next >
Encoding:
Text File  |  1990-03-01  |  194.0 KB  |  6,739 lines

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