{========================
{=Include file for
{=FANUCM, FANUCMD & FANUCSMD
{=message files.
{= 5/6/91
{
{          Help for M codes
{
{
|M00 A|
M00 Program Stop

 M00 waits for EOB to be pressed.
#Other M codes#M CODE B
#G codes#G CODE B
| M02 A |
M02 End Of Program

 M02 halts program execution.

 The spindle is turned off and the tool
 moves to the most positive position on
 the Z axis.
#Other M codes#M CODE B
#G codes#G CODE B
{
| M03 A |
M03 Start Spindle

 An M03 instruction starts forward spindle
 motion. It requires a speed within the range
 100 to 3000 rpm.

   Example:  M03 S2200

 The spindle should be switched on before any
 movement below the component surface.
#Other M codes#M CODE B
#G codes#G CODE B
{
| M04 A |
M04 Reverse Spindle

 An M04 instruction starts reverse spindle
 motion. It requires a speed within the range
 100 to 3000 rpm.

   Example:  M04 S2200

 The spindle should be switched on before any
 movement below the component surface.
#Other M codes#M CODE B
#G codes#G CODE B
{
| M05 A |
M05 Stop Spindle

 An M05 instruction stops spindle rotation.

 It is good programming practice to issue an M05
 before a tool change, and at the end of a
 program. However this will be done
 automatically should you omit this instruction.
#Other M codes#M CODE B
#G codes#G CODE B
{
| M06 A |
M06 Change Tool

 The M06 instruction causes the Fanuc to change
 to a different tool.

   Example:  M06 T1

 You can set tool lengths and diameters at the
 start of the program using the TOOLDEF
 directive.
#TOOLDEF directive#TOOL DEF A
#Other M codes#M CODE B
#G codes#G CODE B
{
|M08 A|
M08 Coolant On

  M08 turns the coolant on.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M09 A|
M09 Coolant Off

  M09 turns the coolant off.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M10/11 A|
M10/11 Work Clamp Open/Close

  M10 opens the work clamp.

  M11 closes the work clamp.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M13 A|
M13 Coolant, Spindle Fwd

  M13 turns the coolant on and starts forward
  spindle motion.

  Example : M13 S1000
#Other M codes#M CODE B
#G codes#G CODE B
{
|M14 A|
M14 Coolant, Spindle Rev

  M13 turns the coolant on and starts reverse
  spindle motion.

  Example : M14 S1000
#Other M codes#M CODE B
#G codes#G CODE B
{
|M19 A|
M19 Orientate Spindle

M19 orientates the spindle.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M20/21 A|
M20/21 ATC Arm In/Out

M20 moves the ATC arm in.

M21 moves the ATC arm out
#Other M codes#M CODE B
#G codes#G CODE B
{
|M22/23 A|
M22/23 ATC Arm Down/Up

M22 moves the ATC arm down.

M23 moves the ATC arm up.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M24/25 A|
M24/25 ATC Arm Clamping

M24 activates the ATC drawbar.

M25 releases the ATC drawbar.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M27 A|
M27 Reset Carousel

M27 can only be used in the control panel.

The current carousel position is treated
as position one.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M32/33 A|
M32/33 ATC Clw/Cclw

M32 rotates the ATC clockwise.

M33 rotates the ATC counter-clockwise.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M38/39 A|
M38/39 Door Open/Close

M38 opens the door.

M39 closes the door.
#M codes#M CODE B
{
|M62/63 A|
M62/63 Aux 1/2 On

 M62 sets auxillary output 1 on.

 M63 sets auxillary output 2 on.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M64/65 A|
M64/65 Aux 1/2 Off

 M64 sets auxillary output 1 off.

 M65 sets auxillary output 2 off.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M66/67 A|
M66/67 Wait for Aux 1/2

 M66 waits for auxillary input 1
 to become on.

 M67 waits for auxillary input 2
 to become on.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M70 A|
M70 X Mirror On

 M70 sets X axis mirroring about
 the current X axis position.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M71 A|
M71 Y Mirror On

 M71 sets Y axis mirroring about
 the current Y axis position.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M76/77 A|
M76/77 Wait for Aux 1/2 Low

 M76 waits for auxillary input 1
 to become off.

 M77 waits for auxillary input 2
 to become off.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M80 A|
M80 X Mirror Off

 M80 disables X axis mirroring.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M81 A|
M81 Y Mirror Off

 M81 disables Y axis mirroring.
#Other M codes#M CODE B
#G codes#G CODE B
{
|M98 A|
M98  Subprogram call 1 of 2

 M98 causes another program to be executed.

 The "P" value specifies the program number and
 the number of times to execute it.

 The rightmost 4 digits are the program number.

 The digits to the left are the number of
 repetitions.
#Other M codes#M CODE B
#Other CNC instructions#CNC A
|M98 B|
M98  Subprogram call 2 of 2

 There can be up to 999 repetitions, if the value
 is omitted it is called once.

   Examples:  M98 P12
        and   M98 P10012
   both execute cnc program 12 once.
{
{
|M99 A|
M99  Subprogram Exit  1 of 2

 Returns control to the program that called
 the current program.

 If a "P" value is specified then execution
 begins from the block with the same "N" number,
 otherwise it is from the block after the
 subprogram call.
#Other M codes#M CODE B
#Other CNC instructions#CNC A
{
|M99 B|
M99  Subprogram Exit  2 of 2

 If an M99 is specified in the main program then
 the execution is from the start of the program.

   Examples:  M99
   returns to the block following the call.

              M99 P10
   returns to the block with "N" value 10.
{  ----------------------------------------------------------
{
{          Help for G codes
{
{  ----------------------------------------------------------
{
| G00 A |
G00 Fast Traverse

 A G00 the tool to move to the specified
 position at the maximum speed.

   Example:  G00 X20 Y30 Z1

 Here the tool is moved to X 20mm, Y 30mm, and
 Z 1mm.
#Other G codes#G CODE B
#M codes#M CODE B
{
| G01 A |
G01 Linear Traverse

 A G01 causes linear motion to the given
 position.

   Example:  G21
             G01 X20 Y30 Z-1 F180

 Here the tool is moved to X 20mm, Y 30mm, and
 Z -1mm at a feedrate of 180mm per minute.
#Other G codes#G CODE B
#M codes#M CODE B
{
| G02 A |
G02 Clockwise Circular 1/2

 G02 causes clockwise circular motion.

 Arcs can be specified by either radius or by
 centre.

 If a positive radius is specified then the
 shorter arc is cut.  If it is negative then the
 longer arc is cut.
#Other G codes#G CODE B
#M codes#M CODE B
|G02 B|
G02 Clockwise Circular 2/2

   Example:  G02 X30 Y20 R15 F80

 In this example the tool is moved to X 30mm
 and Y 20mm. The arc has a radius of 15mm.

 "I" and "J" specify the arc centre relative
 to the arc start.  If the value is 0 then it
 needn't be specified.

   Example:  G02 X30 I15
{
| G03 A |
G03 Counter-Clockwise Circular 1/2

 G03 causes counter-clockwise circular motion.

 Arcs can be specified by either radius or
 arc centre.

 If a positive radius is specified then the
 shorter arc is cut. If it is negative then the
 longer arc is cut.
#Other G codes#G CODE B
#M codes#M CODE B
{
|G03 B|
G03 Counter-Clockwise Circular 2/2

   Example:  G03 X30 Y20 R15 F80

 In this example the tool is moved to X 30mm
 and Y 20mm.  The arc has a radius of 15mm.

 "I" and "J" specify the arc centre relative
 to the arc start.  If the value is 0 then it
 needn't be specified.

   Example:  G03 X30 I15
| G04 A |
G04 Dwell

 A Dwell of up to 500 seconds can be programmed.

   Example:  G04 X10

 This causes a delay in machining of 10 seconds.
#Other G codes#G CODE B
#M codes#M CODE B
{
{
| G20 A |
G20 Imperial Units

 All future instruction parameters will be taken
 as imperial values. That is, they will specify
 inches.
#G21 metric#G21 A
#Other G codes#G CODE B
#M codes#M CODE B
{
| G21 A |
G21 Metric Units

 All future instruction parameters will be taken
 as metric values. That is, they will specify
 millimetres.
#G20 imperial#G20 A
#Other G codes#G CODE B
#M codes#M CODE B
{
|G28 A|
G28  Goto Reference Point

 A G28 causes a fast traverse to the specified
 position and then to the machine datum.

   Example:  G28 X84.0 Y80.0 Z5.0
#Other G codes#G CODE B
#M codes#M CODE B
{
|G40 A|
G40 Cancel Tool Radius Compensation

 G40 switches off any tool radius compensation
 activated by a G41 or G42.
#Other G codes#G CODE B
#M codes#M CODE B
{
|G41 A|
G41 Left Hand Radius Compensation

 G41 causes future movement to take place to the
 left of the programmed path.

 The offset used is equal to the radius of the
 current tool.
#Other G codes#G CODE B
#M codes#M CODE B
{
|G42 A|
G42 Right Hand Radius Compensation

 G42 causes future movement to take place to the
 right of the programmed path.

 The offset used is equal to the radius of the
 current tool.
#Other G codes#G CODE B
#M codes#M CODE B
{
|G73 A|
G73 Fast Peck Drilling Cycle

   Example:
    G73 X1.0 Y1.0 Z-5.0 Q0.3 R1.0 K1

 "X" and "Y" are the next position to drill at.
 "Z" is the base of the hole.

 "Q" is the cut in value.
 "R" is the R point level.
 "K" is the number of repetitions,
     it defaults to 1.
#Other cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B

|G74 A|
G74 Counter Tapping Cycle

  Example:
   G74 X1.0 Y1.0 Z-6.0 R1.0 P750 K1

 "X" and "Y" are the next position to drill at.
 "Z" is the base of the hole.
 "R" is the R point level.
 "P" is 1000 times the delay in seconds.
 "K" is the number of repetitions,
     it defaults to 1.
#Other cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B
{
|G76 A|
G76 Fine Boring Cycle

  Example:
   G76 X1.0 Y1.0 Z-6.0 P700 Q0.6 K1

 "X" and "Y" are the next position to drill at.
 "Z" is the base of the hole.
 "P" is 1000 times the delay in seconds.
 "Q" is the shift value.
 "K" is the number of repetitions,
     it defaults to 1.
#Other cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B
{
| G80 A |
G80 Cancel Canned Cycle

 A G80 will cancel a canned cycle.

 A G00, G01, G02 or G03 will also cancel
 a canned cycle.
#Cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B
{
|G81 A|
G81 Spot Boring Cycle

  Example:
   G81 X1.0 Y1.0 Z-6.0 K1

 "X" and "Y" are the next position to drill at.
 "Z" is the base of the hole.
 "K" is the number of repetitions,
     it defaults to 1.
#Other cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B
{
|G82 A|
G82 Counter Boring Cycle

  Example:
   G82 X1.0 Y1.0 Z-6.0 P1000 K1

 "X" and "Y" are the next position to drill at.
 "Z" is the base of the hole.
 "P" is 1000 times the delay in seconds.
 "K" is the number of repetitions,
     it defaults to 1.
#Other cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B
{
| G83 A |
G83 Peck Drilling Cycle

   Example:
    G83 X1.0 Y1.0 Z-5.0 Q0.3 R1.0 K1

 "X" and "Y" are the next position to drill at.
 "Z" is the base of the hole.

 "Q" is the cut in value.
 "R" is the R point level.
 "K" is the number of repetitions,
     it defaults to 1.
#Other cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B
{
|G84 A|
G84 Tapping Cycle

  Example:
   G84 X1.0 Y1.0 Z-6.0 R1.0 P750 K1

 "X" and "Y" are the next position to drill at.
 "Z" is the base of the hole.
 "R" is the R point level.
 "P" is 1000 times the delay in seconds.
 "K" is the number of repetitions,
     it defaults to 1.
#Other cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B
{
|G85 A|
G85 Boring Cycle

  Example:
   G85 X1.0 Y1.0 Z-6.0 K1

 "X" and "Y" are the next position to drill at.
 "Z" is the base of the hole.
 "K" is the number of repetitions,
     it defaults to 1.
#Other cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B
{
|G86 A|
G86 Boring Cycle

  Example:
   G86 X1.0 Y1.0 Z-6.0 K1

 "X" and "Y" are the next position to drill at.
 "Z" is the base of the hole.
 "K" is the number of repetitions,
     it defaults to 1.
#Other cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B
{
|G87 A|
G87 Back Boring Cycle

  Example:
   G87 X1.0 Y1.0 Z-6.0 P300 Q0.7 K1

 "X" and "Y" are the next position to drill at.
 "Z" is the base of the hole.
 "P" is 1000 times the delay in seconds.
 "Q" is the shift value.
 "K" is the number of repetitions,
     it defaults to 1.
#Other cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B
{
|G89 A|
G89 Boring Cycle

  Example:
   G89 X1.0 Y1.0 Z-6.0 P1000 K1

 "X" and "Y" are the next position to drill at.
 "Z" is the base of the hole.
 "P" is 1000 times the delay in seconds.
 "K" is the number of repetitions,
     it defaults to 1.
#Other cycles#CYCLES A
#Other G codes#G CODE B
#M codes#M CODE B
{
| G90 A |
G90 Absolute Movement

 All future movement will be absolute until
 over-ridden by a G91 instruction.  This is
 the default setting.

   Example:  G90
             G01 X30 Y0
   The position becomes X30, Y0.
#G91 incremental#G91 A
#Other G codes#G CODE B
#M codes#M CODE B
{
| G91 A |
G91 Incremental Movement

 All future movement will be incremental until
 over-ridden by a G90 instruction.

   Example:  G90
             G01 X15
             G91
             G01 X2
  The position becomes X17.
#G90 absolute#G90 A
#Other G codes#G CODE B
#M codes#M CODE B
{
{
|G92 A|
G92 Set Datum

 G92 sets the datum relative to the
 current position.

 Example: G00 X30.0 Y40.0
          G92 X10.0 Y10.0
 makes the position that was X30 Y40
 become X-10 Y-10.
#Other G codes#G CODE B
#M codes#M CODE B
{
|G94 A|
G94 Per Minute Feed

 The "F" value specifies the feed rate in
 millimetres, or inches, per minute.
#Other G codes#G CODE B
{
|G95 A|
G95 Per Revolution Feed

 The "F" value is the ratio of feed rate
 to spindle speed.  The feed rate is changed
 whenever the spindle changes.

   Example:  G95 S1200
             G01 X10.0 F0.3

   This sets the feed rate to 360, (1200*0.3).
#Other G codes#G CODE B
{
|G98 A|
G98 Initial Level Return

 G98 sets the initial level return mode for
 drilling cycles.
#Other G codes#G CODE B
#M codes#M CODE B
{
|G99 A|
G99 R Point Return

 G99 sets the R point return mode for
 drilling cycles.
#Other G codes#G CODE B
#M codes#M CODE B
{
{==================
{
|BILLET DEF A|
Billet Definition 1 of 2

 This directive allows the billet in the
 simulation window to be given a size.

 The billet definition should be placed at the
 start of a program, after the measure has
 optionally been set.
#Other CNC instructions#CNC A
{
{
|BILLET DEF B|
Billet Definition 2 of 2

   Example:  G21
   sets the measure to metric.
             [BILLET X100.0 Y90.0 Z20.0
   defines the billet as 100mm by 90mm
   with a depth of 20mm.
{
{
|EDGEMOVE A|
Billet Edge Directive

 This directive sets up the required offset from
 the program zero position to the lower left
 hand corner of the billet. It is used by the
 on-screen simulation.

   Example:  G71
             [EDGEMOVE X0 Y-20

 This example moves the billet corner by 0mm
 on X and -20mm on Y.
#Other CNC instructions#CNC A
{
{
|SUBPROGRAM DIRECTIVE A|
Subprogram Directive

 This directive allows a program with a
 non numeric name to be called as a
 subprogram.

   Example:  [SUBPROGRAM 2 FRED
             M98 P2
#Other CNC instructions#CNC A
{
{
|CLEAR DIRECTIVE A|
Clear Directive

 This clears the tutorial messages window.

   Example:  [CLEAR
#Other CNC instructions#CNC A
{
{
|STEP DIRECTIVE A|
Step Directive

 This directive switches over to single step
 execution on-screen and when linked to the
 Fanuc machine.

   Example:  [STEP
#Other CNC instructions#CNC A
{
{
|NOSTEP DIRECTIVE A|
Single Step Off Directive

 This directive switches off single step
 execution on-screen and when linked to the
 Fanuc machine.

   Example:  [NOSTEP
#Other CNC instructions#CNC A
{
{
|SHOW DIRECTIVE A|
Enable Simulation

This directive allows the operations
to be simulated.

Example:  [SHOW
#Other CNC instructions#CNC A
{
{
|NOSHOW DIRECTIVE A|
Disable Simulation

This directive stops the operations
being simulated.

Example:  [NOSHOW
#Other CNC instructions#CNC A
{
{
|TUTOR A|
Tutorial Message

 Tutorial message instructions begin with the "!"
 exclamation mark which is followed by some text.

 When the CNC program is executed your text will
 appear in the "tutorial" window at the bottom
 of the screen.

   Example:  !Using tool 2 ....
#Tutorial pauses#TUTOR PAUSE A
#Other CNC instructions#CNC A
|TUTOR PAUSE A|
Tutorial Pause

 Tutorial pause instructions begin with the "?"
 question mark which is followed by some text.

 When the CNC program is executed your text will
 appear in the "tutorial" window at the bottom
 of the screen.  You will then be prompted to
 press a key to continue.

   Example:  ?Check the position
#Tutorial messages#TUTOR A
#Other CNC instructions#CNC A
{
|DIRECTIVES A|
Directives

 There are a selection of Directives used within
 the CNC program for
 controlling the
 Simulation and
 the Manual Control.

 Select one of them
 from the menu for
 more information.
#Billet definition#BILLET DEF A
#Billet position#EDGEMOVE A
#Tool definition#TOOL DEF A
#Clear messages#CLEAR DIRECTIVE A
#Single stepping on#STEP DIRECTIVE A
#Single stepping off#NOSTEP DIRECTIVE A
#Enable Simulation#SHOW DIRECTIVE A
#Disable Simulation#NOSHOW DIRECTIVE A
#Subprogram#SUBPROGRAM DIRECTIVE A
#Other CNC instructions#CNC A
{
| COMMENTS A |
Comments

 Use the ( as the first character to specify a
 comment.
{
| TUTORIAL A |
Tutorials

 Interactive lessons can be developed through
 the Tutorials facility. Messages and Questions
 can be embedded within the Cnc program.

   !Displays message without stopping.
   ?Displays message but stops for keypress.
#Tutorial messages#TUTOR A
#Tutorial pauses#TUTOR PAUSE A
{
| TOOL DEF A |
Tool Definition Directive 1/2

 This directive sets up the length and diameter
 of a tool.

 The length is the distance from the Spindle
 Nose to the bottom of the cutter.
#Other directives#DIRECTIVES A
#G codes#G CODE B
#M codes#M CODE B
| TOOL DEF B |
Tool Definition Directive 2/2

   Example:  G21
             [TOOLDEF T1 D8 Z65

 This example defines tool 1 as being 8mm in
 diameter, and 65mm long.
{
{
{   This is a list of the g/m descriptions for printing purposes
{
| GM DESCRIPTIONS |
FAST TRAVERSE
LINEAR TRAVERSE
CIRCULAR CLW
CIRCULAR CCLW
REFERENCE POINT RETURN
CANCEL TOOL LENGTH COMP
APPLY TOOL LENGTH COMP
RETURN TO INITIAL LEVEL
CANCEL MIRROR Y
IMPERIAL
METRIC
RE-ENABLE CYCLE
CANCEL CYCLE
CIRCULAR CYCLE
PECK DRILLING CYCLE
RECTANGULAR CYCLE
ABSOLUTE
INCREMENTAL
END OF PROGRAM
START SPINDLE
STOP SPINDLE
CHANGE TOOL
START LOOP
END LOOP
SUBROUTINE START
SUBROUTINE END
CALL SUBROUTINE
LEFT TOOL COMP
RIGHT TOOL COMP
NO TOOL COMP
{
{   These are the prefixes used in listing
{
| GM PREFIXES |
X
Y
Z
Feed
Dwell (secs)
Speed (rpm)
Tool
Radius
Cycles
Count
Label
H
Incr
Return
{
{   This is the main menu
{
| MAIN MENU |
Main Menu
Edit only
Edit and Simulate
Simulate only
Link to controller
CNC Files
Print
Remote link
Settings
Utilities
Quit
{
{   This is the cnc files sub-menu
{
| CNC FILES MENU |
CNC Files
Load
New
Save
Save As
Change dir
{
{   This is the print sub-menu
{
| PRINT MENU |
Printing
Line format with errors
Line format no errors
{
{   The fanuc link menu
{
| MACHINE LINK MENU |
Fanuc Link-up
Load from controller
Downfeed to controller
{
{   This is the settings sub-menu
{
| SETTINGS MENU |
Change Settings
Editor
Simulation
Print device
Print page layout
Controller link
Remote link
Miscellaneous
Load settings
Save settings
{
{   This menu allows changes to editor parameters
{
| EDIT SETTINGS MENU |
Change Editor Settings
Auto-error-check
Marking mode
Edit only mode
Editor on left
{
{   This is the simulation settings menu
{
| SIMULATION SETTINGS MENU |
Change Simulation Settings
Simulation window
Short cuts
Show 3D
Display fast-traverses
Tool motion
{
{   This is the print device settings menu
{
| PRINT SETTINGS MENU |
Change Print Device
Device: Type
        Name
RS232: Baudrate
       Parity
       Data bits
       Stop bits
       Protocol
{
{   This is the print layout sub-menu
{
| PRINT LAYOUT MENU |
Change Print Page Layout
Page width
Page depth
Left margin
Top margin
Bottom margin
Column width
Carriage return nulls
Line feed nulls
Form feed nulls
Print line feeds
{
{   Menu of settings for machine link
{
| MAC LINK SETTINGS MENU |
Change Machine Link
Device name
Baudrate
Parity
Data bits
Stop bits
{
{   This is the sub-menu used for setting up the computer link
{
| COMPUTER LINK SETTINGS MENU |
Change Remote Link
Device name
Baudrate
Parity
Data bits
Stop bits
Send line-feeds
End-of-file
Send XOFF at % full
{
{   This menu is for setting odds-and-ends
{
| MISC SETTINGS MENU |
Change Misc Settings
Global units
User's name
Screen text size
{
{   The edit & simulate options menu
{
| EDIT SIMULATION MENU |
Simulation
Check syntax
Run program
Dry run
Set datum
Set view
3D view
Postprocess
{
{   The edit only options menu
{
| SIMULATION MENU |
Simulation
Run program
Dry run
Set datum
Set view
3D view
Postprocess
{
{   Computer to computer link menu
{
| COMPUTER LINK MENU |
Remote Device Link
Load from device
Send to device
