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