English Mill NGC Operator's Manual 2018
English Mill NGC Operator's Manual 2018
English Mill NGC Operator's Manual 2018
i
This product uses Java Technology from Oracle Corporation and we request that you acknowledge that
Oracle owns the Java Trademark and all Java related Trademarks and agree to comply with the
trademark guidelines at www.oracle.com/us/legal/third-party-trademarks/index.html.
Any further distribution of the Java programs (beyond this appliance/machine) is subject to a legally
binding End User License Agreement with Oracle. Any use of the commercial features for production
purposes requires a separate license from Oracle.
ii
LIMITED WARRANTY CERTIFICATE
Haas Automation, Inc.
Covering Haas Automation, Inc. CNC Equipment
Effective September 1, 2010
Haas Automation Inc. (“Haas” or “Manufacturer”) provides a limited warranty on all new
mills, turning centers, and rotary machines (collectively, “CNC Machines”) and their
components (except those listed below under Limits and Exclusions of Warranty)
(“Components”) that are manufactured by Haas and sold by Haas or its authorized
distributors as set forth in this Certificate. The warranty set forth in this Certificate is a
limited warranty, it is the only warranty by Manufacturer, and is subject to the terms and
conditions of this Certificate.
Each CNC Machine and its Components (collectively, “Haas Products”) are warranted by
Manufacturer against defects in material and workmanship. This warranty is provided only
to an end-user of the CNC Machine (a “Customer”). The period of this limited warranty is
one (1) year. The warranty period commences on the date the CNC Machine is installed at
the Customer’s facility. Customer may purchase an extension of the warranty period from
an authorized Haas distributor (a “Warranty Extension”), any time during the first year of
ownership.
Manufacturer’s sole liability, and Customer’s exclusive remedy under this warranty, with
respect to any and all Haas products, shall be limited to repairing or replacing, at the
discretion of the Manufacturer, the defective Haas product.
Disclaimer of Warranty
This warranty is Manufacturer’s sole and exclusive warranty, and is in lieu of all other
warranties of whatever kind or nature, express or implied, written or oral, including, but not
limited to, any implied warranty of merchantability, implied warranty of fitness for a
particular purpose, or other warranty of quality or performance or noninfringement. All such
other warranties of whatever kind are hereby disclaimed by Manufacturer and waived by
Customer.
iii
Limits and Exclusions of Warranty
Components subject to wear during normal use and over time, including, but not limited to,
paint, window finish and condition, light bulbs, seals, wipers, gaskets, chip removal system
(e.g., augers, chip chutes), belts, filters, door rollers, tool changer fingers, etc., are excluded
from this warranty. Manufacturer’s specified maintenance procedures must be adhered to
and recorded in order to maintain this warranty. This warranty is void if Manufacturer
determines that (i) any Haas Product was subjected to mishandling, misuse, abuse,
neglect, accident, improper installation, improper maintenance, improper storage, or
improper operation or application, including the use of improper coolants or other fluids, (ii)
any Haas Product was improperly repaired or serviced by Customer, an unauthorized
service technician, or other unauthorized person, (iii) Customer or any person makes or
attempts to make any modification to any Haas Product without the prior written
authorization of Manufacturer, and/or (iv) any Haas Product was used for any
non-commercial use (such as personal or household use). This warranty does not cover
damage or defect due to an external influence or matters beyond the reasonable control of
Manufacturer, including, but not limited to, theft, vandalism, fire, weather condition (such as
rain, flood, wind, lightning, or earthquake), or acts of war or terrorism.
Without limiting the generality of any of the exclusions or limitations described in this
Certificate, this warranty does not include any warranty that any Haas Product will meet any
person’s production specifications or other requirements, or that operation of any Haas
Product will be uninterrupted or error-free. Manufacturer assumes no responsibility with
respect to the use of any Haas Product by any person, and Manufacturer shall not incur
any liability to any person for any failure in design, production, operation, performance, or
otherwise of any Haas Product, other than repair or replacement of same as set forth in the
warranty above.
Manufacturer will not be liable to Customer or any other person for any compensatory,
incidental, consequential, punitive, special, or other damage or claim, whether in an action
in contract, tort, or other legal or equitable theory, arising out of or related to any Haas
product, other products or services provided by Manufacturer or an authorized distributor,
service technician, or other authorized representative of Manufacturer (collectively,
“authorized representative”), or the failure of parts or products made by using any Haas
Product, even if Manufacturer or any authorized representative has been advised of the
possibility of such damages, which damage or claim includes, but is not limited to, loss of
profits, lost data, lost products, loss of revenue, loss of use, cost of down time, business
good will, any damage to equipment, premises, or other property of any person, and any
damage that may be caused by a malfunction of any Haas product. All such damages and
claims are disclaimed by Manufacturer and waived by Customer. Manufacturer’s sole
liability, and Customer’s exclusive remedy, for damages and claims for any cause
whatsoever shall be limited to repair or replacement, at the discretion of Manufacturer, of
the defective Haas Product as provided in this warranty.
iv
Customer has accepted the limitations and restrictions set forth in this Certificate, including,
but not limited to, the restriction on its right to recover damages, as part of its bargain with
Manufacturer or its Authorized Representative. Customer realizes and acknowledges that
the price of the Haas Products would be higher if Manufacturer were required to be
responsible for damages and claims beyond the scope of this warranty.
Entire Agreement
This Certificate supersedes any and all other agreements, promises, representations, or
warranties, either oral or in writing, between the parties or by Manufacturer with respect to
subject matter of this Certificate, and contains all of the covenants and agreements
between the parties or by Manufacturer with respect to such subject matter. Manufacturer
hereby expressly rejects any other agreements, promises, representations, or warranties,
either oral or in writing, that are in addition to or inconsistent with any term or condition of
this Certificate. No term or condition set forth in this Certificate may be modified or
amended, unless by a written agreement signed by both Manufacturer and Customer.
Notwithstanding the foregoing, Manufacturer will honor a Warranty Extension only to the
extent that it extends the applicable warranty period.
Transferability
This warranty is transferable from the original Customer to another party if the CNC
Machine is sold via private sale before the end of the warranty period, provided that written
notice thereof is provided to Manufacturer and this warranty is not void at the time of
transfer. The transferee of this warranty will be subject to all terms and conditions of this
Certificate.
Miscellaneous
This warranty shall be governed by the laws of the State of California without application of
rules on conflicts of laws. Any and all disputes arising from this warranty shall be resolved
in a court of competent jurisdiction located in Ventura County, Los Angeles County, or
Orange County, California. Any term or provision of this Certificate that is invalid or
unenforceable in any situation in any jurisdiction shall not affect the validity or enforceability
of the remaining terms and provisions hereof, or the validity or enforceability of the
offending term or provision in any other situation or in any other jurisdiction.
v
Customer Feedback
If you have concerns or questions regarding this Operator’s Manual, please contact us on
our website, www.HaasCNC.com. Use the “Contact Us” link and send your comments to
the Customer Advocate.
Join Haas owners online and be a part of the greater CNC community at these sites:
haasparts.com
Your Source for Genuine Haas Parts
www.facebook.com/HaasAutomationInc
Haas Automation on Facebook
www.twitter.com/Haas_Automation
Follow us on Twitter
www.linkedin.com/company/haas-automation
Haas Automation on LinkedIn
www.youtube.com/user/haasautomation
Product videos and information
www.flickr.com/photos/haasautomation
Product photos and information
vi
Customer Satisfaction Policy
Dear Haas Customer,
Your complete satisfaction and goodwill are of the utmost importance to both Haas
Automation, Inc. and the Haas distributor (HFO) where you purchased your equipment.
Normally, your HFO will rapidly resolve any concerns you have about your sales
transaction or the operation of your equipment.
However, if your concerns are not resolved to your complete satisfaction, and you have
discussed your concerns with a member of the HFO’s management, the General Manager,
or the HFO’s owner directly, please do the following:
Contact Haas Automation’s Customer Service Advocate at 805-988-6980. So that we may
resolve your concerns as quickly as possible, please have the following information
available when you call:
• Your company name, address, and phone number
• The machine model and serial number
• The HFO name, and the name of your latest contact at the HFO
• The nature of your concern
If you wish to write Haas Automation, please use this address:
Haas Automation, Inc. U.S.A.
2800 Sturgis Road
Oxnard CA 93030
Att: Customer Satisfaction Manager
email: [email protected]
Once you contact the Haas Automation Customer Service Center, we will make every effort
to work directly with you and your HFO to quickly resolve your concerns. At Haas
Automation, we know that a good Customer-Distributor-Manufacturer relationship will help
ensure continued success for all concerned.
International:
Haas Automation, Europe
Mercuriusstraat 28, B-1930
Zaventem, Belgium
email: [email protected]
vii
viii
Declaration of Conformity
Product: Mill (Vertical and Horizontal)*
*Including all options factory- or field-installed by a certified Haas Factory Outlet (HFO)
Manufactured By: Haas Automation, Inc.
2800 Sturgis Road, Oxnard, CA 93030
805-278-1800
We declare, in sole responsibility, that the above-listed products, to which this declaration
refers, comply with the regulations as outlined in the CE directive for Machining Centers:
• Machinery Directive 2006/42/EC
• Electromagnetic Compatibility Directive 2014/30/EU
• Additional Standards:
– EN 60204-1:2006/A1:2009
– EN 614-1:2006+A1:2009
– EN 894-1:1997+A1:2008
– CEN 13849-1:2015
RoHS2: COMPLIANT (2011/65/EU) by Exemption per producer documentation.
Exempt by:
a) Large scale stationary industrial tool.
b) Lead as an alloying element in steel, aluminum, and copper.
c) Cadmium and its compounds in electrical contacts.
Person authorized to compile technical file:
Jens Thing
Address:
Haas Automation Europe
Mercuriusstraat 28
B-1930 Zaventem
Belgium
ix
USA: Haas Automation certifies this machine to be in compliance with the OSHA and ANSI
design and manufacturing standards listed below. Operation of this machine will be
compliant with the below-listed standards only as long as the owner and operator continue
to follow the operation, maintenance, and training requirements of these standards.
All Haas CNC machine tools carry the ETL Listed mark,
certifying that they conform to the NFPA 79 Electrical
ETL LISTED
CONFORMS TO
Standard for Industrial Machinery and the Canadian
C
NFPA STD 79 equivalent, CAN/CSA C22.2 No. 73. The ETL Listed and
ANSI/UL STD 508
UL SUBJECT 2011 cETL Listed marks are awarded to products that have
CERTIFIED TO successfully undergone testing by Intertek Testing
CAN/CSA STD C22.2 N O.73
Services (ITS), an alternative to Underwriters'
Laboratories.
Original Instructions
x
User’s Operator Manual and other Online Resources
This manual is the operation and programming manual that applies to all Haas Mills.
An English language version of this manual is supplied to all customers and is marked
"Original Instructions".
For many other areas of the world, there is a translation of this manual marked
"Translation of Original Instructions".
This manual contains an unsigned version of the EU required "Declaration Of
Conformity". European customers are provided a signed English version of the
Declaration of Conformity with Model Name and Serial Number.
Besides this manual, there is a tremendous amount of additional information online at:
www.haascnc.com under the OWNERS section.
Both this manual and the translations of this manual are available online for machines up
to approximately 15 years old.
The CNC control of your machine also contains all of this manual in many languages and
can be found by pressing the [HELP] button.
Many machine models come with manual supplement that is also available online.
All machine options also have additional information online.
Maintenance and service information is available online.
The online "Installation Guide" contains information and check list for Air & Electrical
requirements, Optional Mist Extractor, Shipping Dimensions, weight, Lifting Instructions,
foundation and placement, etc.
Guidance on proper coolant and Coolant Maintenance is located in the Operators Manual
and Online.
Air and Pneumatic diagrams are located on the inside of the lubrication panel door and
CNC control door.
Lubrication, grease, oil and hydraulic fluid types are listed on a decal on the machine's
lubrication panel.
xi
How to Use This Manual
IMPORTANT: Before you operate the machine, read and understand the Operator’s
Manual Safety chapter.
Declaration of Warnings
Throughout this manual, important statements are set off from the main text with an icon
and an associated signal word: “Danger,” “Warning,” “Caution,” or “Note.” The icon and
signal word indicate the severity of the condition or situation. Be sure to read these
statements and take special care to follow the instructions.
Description Example
xii
Text Conventions Used in this Manual
Code Block text gives program examples. G00 G90 G54 X0. Y0.;
A File Path describes a sequence of file system Service > Documents and Software >...
directories.
User Input describes text that you should enter into G04 P1.;
the machine control.
Variable n indicates a range of non-negative integers Dnn represents D00 through D99.
from 0 to 9.
xiii
How to Use This Manual
xiv
Contents
Chapter 1 Safety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 General Safety Notes . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Summary of Types of Operation for Haas Automation
Machine Tools . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Read Before Operating . . . . . . . . . . . . . . . . . . 4
1.1.3 Machine Environmental Limits . . . . . . . . . . . . . . . 6
1.1.4 Machine Noise Limits . . . . . . . . . . . . . . . . . . . 7
1.2 Unattended Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Door Rules - Run / Setup Mode . . . . . . . . . . . . . . . . . . . . . 8
1.3.1 Robot Cells . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.2 Mist Extraction / Enclosure Evacuation . . . . . . . . . . 10
1.4 Modifications to the Machine . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Improper Coolants . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Safety Decals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6.1 Decal Symbols Reference . . . . . . . . . . . . . . . . . 12
1.6.2 Other Safety Information. . . . . . . . . . . . . . . . . . 16
1.6.3 More Information Online . . . . . . . . . . . . . . . . . . 16
Chapter 2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1 Vertical Mill Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 EC-1600 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 EC-400, EC-400PP Overview . . . . . . . . . . . . . . . 26
2.3 Control Pendant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.1 Pendant Front Panel . . . . . . . . . . . . . . . . . . . . 30
2.3.2 Pendant Right Side, Top, and Bottom Panels . . . . . . . 31
2.3.3 Keyboard. . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.4 Control Display. . . . . . . . . . . . . . . . . . . . . . . 44
2.3.5 Screen Capture . . . . . . . . . . . . . . . . . . . . . . 65
2.3.6 Error Report . . . . . . . . . . . . . . . . . . . . . . . . 66
2.4 Tabbed Menu Basic Navigation . . . . . . . . . . . . . . . . . . . . . 66
2.5 Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.5.1 Active Icon Help . . . . . . . . . . . . . . . . . . . . . . 67
2.5.2 Active Window Help . . . . . . . . . . . . . . . . . . . . 67
2.5.3 Active Window Commands . . . . . . . . . . . . . . . . 68
2.5.4 Help Index . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.5.5 More Information Online . . . . . . . . . . . . . . . . . . 68
xv
Chapter 3 Control Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.1 Next Generation Control Icon Guide . . . . . . . . . . . . . . . . . . 69
3.2 More Information Online . . . . . . . . . . . . . . . . . . . . . . . . . 83
Chapter 4 Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.1 Machine Power-On . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.2 Spindle Warm-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.3 Device Manager ([LIST PROGRAM]) . . . . . . . . . . . . . . . . . . 86
4.3.1 Device Manager Operation . . . . . . . . . . . . . . . . 87
4.3.2 File Display Columns . . . . . . . . . . . . . . . . . . . 88
4.3.3 Create a New Program . . . . . . . . . . . . . . . . . . 89
4.3.4 Select the Active Program . . . . . . . . . . . . . . . . . 90
4.3.5 Check Mark Selection . . . . . . . . . . . . . . . . . . . 90
4.3.6 Copy Programs . . . . . . . . . . . . . . . . . . . . . . 91
4.3.7 Edit a Program. . . . . . . . . . . . . . . . . . . . . . . 92
4.3.8 File Commands . . . . . . . . . . . . . . . . . . . . . . 93
4.4 Full Machine Backup . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.4.1 Selected Machine Data Backup . . . . . . . . . . . . . . 96
4.5 Restoring a Full Machine Backup . . . . . . . . . . . . . . . . . . . . 97
4.5.1 Restoring Selected Backups. . . . . . . . . . . . . . . . 98
4.6 Basic Program Search. . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.7 Tooling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.7.1 Tool Holders . . . . . . . . . . . . . . . . . . . . . . . . 99
4.7.2 Advanced Tool Management Introduction . . . . . . . . 100
4.8 Tool Changers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.8.1 Loading the Tool Changer . . . . . . . . . . . . . . . . 106
4.8.2 Umbrella Tool Changer Recovery . . . . . . . . . . . . 111
4.8.3 SMTC Programming Notes . . . . . . . . . . . . . . . 111
4.8.4 SMTC Recovery . . . . . . . . . . . . . . . . . . . . . 112
4.8.5 SMTC Door Switch Panel . . . . . . . . . . . . . . . . 112
4.9 Pallet Changer (EC-Series) - Introduction . . . . . . . . . . . . . . . 113
4.9.1 Pallet Changer Warnings and Cautions . . . . . . . . . 113
4.9.2 Maximum Pallet Loads . . . . . . . . . . . . . . . . . 114
4.9.3 Operator Load Station (EC-400). . . . . . . . . . . . . 114
4.9.4 Sub-Panel Controls . . . . . . . . . . . . . . . . . . . 114
4.9.5 Pallet Replacement . . . . . . . . . . . . . . . . . . . 115
4.9.6 Pallet Storage . . . . . . . . . . . . . . . . . . . . . . 116
4.10 Part Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.10.1 Setting Offsets . . . . . . . . . . . . . . . . . . . . . . 116
4.11 Run-Stop-Jog-Continue . . . . . . . . . . . . . . . . . . . . . . . . 119
4.12 Graphics Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.13 More Information Online . . . . . . . . . . . . . . . . . . . . . . . . 121
xvi
Chapter 5 Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
5.1 Create / Select Programs for Editing . . . . . . . . . . . . . . . . . 123
5.2 Program Edit Modes. . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.2.1 Basic Program Editing . . . . . . . . . . . . . . . . . . 123
5.2.2 Manual Data Input (MDI). . . . . . . . . . . . . . . . . 126
5.2.3 Background Edit . . . . . . . . . . . . . . . . . . . . . 127
5.2.4 Program Editor. . . . . . . . . . . . . . . . . . . . . . 127
5.3 Basic Programming . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.3.1 Preparation . . . . . . . . . . . . . . . . . . . . . . . 133
5.3.2 Cutting . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.3.3 Completion. . . . . . . . . . . . . . . . . . . . . . . . 135
5.3.4 Absolute vs. Incremental Positioning (G90, G91) . . . . 136
5.4 Tool and Work Offset Calls . . . . . . . . . . . . . . . . . . . . . . 140
5.4.1 G43 Tool Offset . . . . . . . . . . . . . . . . . . . . . 140
5.4.2 G54 Work Offsets . . . . . . . . . . . . . . . . . . . . 140
5.5 Miscellaneous Codes . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.5.1 Tool Functions (Tnn). . . . . . . . . . . . . . . . . . . 141
5.5.2 Spindle Commands . . . . . . . . . . . . . . . . . . . 142
5.5.3 Program Stop Commands . . . . . . . . . . . . . . . . 142
5.5.4 Coolant Commands . . . . . . . . . . . . . . . . . . . 143
5.6 Cutting G-codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
5.6.1 Linear Interpolation Motion . . . . . . . . . . . . . . . 143
5.6.2 Circular Interpolation Motion . . . . . . . . . . . . . . . 143
5.7 Cutter Compensation . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.7.1 General Description of Cutter Compensation . . . . . . 145
5.7.2 Entry and Exit from Cutter Compensation . . . . . . . . 148
5.7.3 Feed Adjustments in Cutter Compensation . . . . . . . 149
5.7.4 Circular Interpolation and Cutter Compensation. . . . . 151
5.8 Canned Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
5.8.1 Drilling Canned Cycles. . . . . . . . . . . . . . . . . . 154
5.8.2 Tapping Canned Cycles . . . . . . . . . . . . . . . . . 154
5.8.3 Boring and Reaming Cycles . . . . . . . . . . . . . . . 155
5.8.4 R Planes . . . . . . . . . . . . . . . . . . . . . . . . . 155
5.9 Special G-codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
5.9.1 Engraving . . . . . . . . . . . . . . . . . . . . . . . . 155
5.9.2 Pocket Milling . . . . . . . . . . . . . . . . . . . . . . 156
5.9.3 Rotation and Scaling. . . . . . . . . . . . . . . . . . . 156
5.9.4 Mirror Image . . . . . . . . . . . . . . . . . . . . . . . 156
5.10 Subprograms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
5.10.1 External Subprogram (M98) . . . . . . . . . . . . . . . 157
5.10.2 Local Subprogram (M97) . . . . . . . . . . . . . . . . 160
5.10.3 External Subprogram Canned Cycle Example (M98) . . 161
5.10.4 External Subprograms With Multiple Fixtures (M98) . . 163
xvii
5.10.5 Setting Up Search Locations . . . . . . . . . . . . . . 164
5.10.6 More Information Online . . . . . . . . . . . . . . . . . 165
xviii
6.14.6 Macro Variables . . . . . . . . . . . . . . . . . . . . . 206
6.14.7 Macro Variables Table . . . . . . . . . . . . . . . . . . 208
6.14.8 System Variables In-Depth . . . . . . . . . . . . . . . 214
6.14.9 Variable Usage . . . . . . . . . . . . . . . . . . . . . 226
6.14.10 Address Substitution . . . . . . . . . . . . . . . . . . . 227
6.14.11 Communication With External Devices - DPRNT[ ] . . . 237
6.14.12 G65 Macro Subprogram Call Option (Group 00) . . . . 239
6.14.13 Aliasing . . . . . . . . . . . . . . . . . . . . . . . . . 241
6.14.14 More Information Online . . . . . . . . . . . . . . . . . 243
xix
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
xx
Safety
Chapter 1: Safety
1.1 General Safety Notes
CAUTION: Only authorized and trained personnel may operate this equipment.
You must always act in accordance with the Operator's manual, safety
decals, safety procedures, and instructions for safe machine
operation. Untrained personnel present a hazard to themselves and
the machine.
IMPORTANT: Do not operate this machine until you have read all warnings, cautions,
and instructions.
CAUTION: The sample programs in this manual have been tested for accuracy,
but they are for illustrative purposes only. The programs do not define
tools, offsets, or materials. They do not describe workholding or other
fixturing. If you choose to run a sample program on your machine, do
so in Graphics mode. Always follow safe machining practices when
you run an unfamiliar program.
All CNC machines present hazards from rotating cutting tools, belts and pulleys, high
voltage electricity, noise, and compressed air. When you use CNC machines and their
components, you must always follow basic safety precautions to reduce the risk of personal
injury and mechanical damage.
The work area must be adequately illuminated to allow clear view and safe operation of the
machine. This includes the operator work area and all areas of the machine that might be
accessed during maintenance or cleaning. Adequate illumination is the responsibility of the
user.
Cutting tools, workholding, workpiece and coolant are beyond the scope and control of
Haas Automation, Inc. Each of these potential hazards associated with it (sharp edges,
heavy lifting considerations, chemical composition, etc) and it is the responsibility of the
user to take appropriate action (PPE, training, etc).
Cleaning of the machine is required during normal use and prior to maintenance or repair.
Optional equipment is available to aid cleaning such as washdown hoses, chip conveyors
and chip augers. Safe use of this equipment requires training and might require appropriate
PPE and is the responsibility of the user.
This operator’s manual is intended as a reference guide and is not to be the sole source of
training. Complete operator training is available from the authorized Haas distributor.
1
General Safety Notes
Operations of Haas Mills are separated into three areas. They are: Operations,
Maintenance, and Service. Operations and Maintenance are intended to be performed by
a trained and qualified machine operator. This Operator's Manual contains some of the
information necessary to operate the machine. All other machine operations are to be
considered Service. Service is only to be performed by specially trained service personnel.
1. Machine Setup
• Machine setup is done to initially set up the tools, offsets, and fixtures required
to perform a repetitive function that later is called machine operation. Some
machine setup functions can be done with the door open but are limited to
“hold to run”.
2. Machine operating in Automatic Mode
• Automatic operation is initiated with Cycle-Start and can only be done with the
doors closed.
3. Operator loading and unloading of materials (parts)
• Tool loading and unloading is done less often than setup. It is often required
when a tool has become worn and must be replaced.
2
Safety
2. Adding lubricants
• Adding lubricants for spindle and axes is required at regular intervals. These
are often months or years in length. This is a normal operator function and is
always done from a safe location outside of the work enclosure.
3. Cleaning chips out of the machine
• Any machine that is not operating correctly requires service by factory trained
personnel. This is never an operator function. It is not considered
maintenance. Installation and service instructions are provided separately
from the Operator’s Manual.
2. Machine moving, unpacking, and installation
• Haas machines are shipped to a user’s location almost ready to operate. They
still require a trained service person to complete the installation. Installation
and service instructions are provided separately from the Operator’s Manual.
3. Machine packing
• Machine packing for shipment requires the same packing material supplied by
Haas in the original shipment. Packing requires a trained service person to
complete the installation. Shipping instructions are provided separately from
the Operator’s Manual.
4. Decommission, dismantle and disposal
• End-of-life disposal must conform to the laws and regulations in the region the
machine is located. This is a jointly the responsibility of the owner and seller of
the machine. The risk analysis does not address this phase.
3
General Safety Notes
DANGER: Do not enter the machining area any time the machine is in motion, or
at any time that machine motion is possible. Severe injury or death
may result. Motion is possible when the power is on and the machine
is not in [EMERGENCY STOP].
Basic safety:
Electrical safety:
• The electrical power must meet the required specifications. Attempting to run the
machine from any other source can cause severe damage and will void the warranty.
• The electrical panel should be closed and the key and latches on the control cabinet
should be secured at all times, except during installation and service. At those times,
only qualified electricians should have access to the panel. When the main circuit
breaker is on, there is high voltage throughout the electrical panel (including the
circuit boards and logic circuits) and some components operate at high
temperatures; therefore, extreme caution is required. Once the machine is installed,
the control cabinet must be locked, with the key available only to qualified service
personnel.
• Do not reset a circuit breaker until the reason for the fault is investigated and
understood. Only Haas-trained service personnel should troubleshoot and repair
Haas equipment.
• Do not press [POWER UP] on the control pendant before the machine is fully
installed.
4
Safety
Operation Safety:
• Do not operate the machine unless the doors are closed and the door interlocks are
functioning correctly.
• Check for damaged parts and tools before you operate the machine. Any part or tool
that is damaged should be properly repaired or replaced by authorized personnel. Do
not operate the machine if any component does not appear to be functioning
correctly.
• Rotating cutting tools can cause severe injury. When a program runs, the mill table
and spindle head can move rapidly at any time.
• Improperly clamped parts machined at high speeds/feeds may be ejected and
puncture the enclosure. It is not safe to machine oversized or marginally clamped
parts.
• Of the chip conveyor - Follow the cleaning instructions on the Work on Your Haas (go
to www.haascnc.com click on the OWNERS link). If necessary, close the doors and
reverse the conveyor so the jammed part or material is accessible, and remove. Use
lifting equipment or get assistance for lifting heavy and awkward parts.
• Of a tool and material/part - Close the doors, press [RESET] to clear and displayed
alarms. Jog the axis so the tool and material are clear.
• Of the Automatic Tool Changer/tool and spindle - Press [RECOVER] and follow the
on-screen instructions.
• If the alarms do not reset or you are unable to clear a blockage, contact your Haas
Factory Outlet (HFO) for assistance.
• Normal operation - Keep the door closed and guards in place (for non-enclosed
machines) while the machine operates.
• Part loading and unloading – An operator opens the door, completes the task, closes
the door, and then presses [CYCLE START] (starting automatic motion).
• Machining job set-up – When set-up is complete, turn the set-up key to lock out
set-mode and remove the key.
• Maintenance / Machine Cleaner– Press [EMERGENCY STOP] or [POWER OFF] on
the machine before you enter the enclosure.
5
General Safety Notes
• Inspect the door interlock, verify the door interlock key is not bent, misaligned, and
that all fasteners are installed.
• Inspect the door interlock itself for any signs of obstruction or misalignment.
• Immediately replace an components of the Door Safety Interlock system that do not
meet this criteria.
• With the machine in run mode, close the machine door, run the spindle at 100 RPM,
pull the door and verify the door does not open.
Routine Maintenance:
• Visually inspect the enclosure and safety glass for any signs of distortion, breakage
or other damage.
• Replace the Lexan windows after 7 years or if they are damaged or severely
scratched.
• Keep all safety glass and machine windows clean to allow proper viewing of the
machine during operations.
• A daily visual inspection of the machine enclosure to verify all panels are in place
should be performed.
6
Safety
Minimum Maximum
Typical noise levels at the operator’s position during normal operation are as follows:
NOTE: Actual noise levels while cutting material are greatly affected by the
user’s choice of material, cutting tools, speeds and feeds, workholding
and other factors. These factors are application specific and are
controlled by the user, not Haas Automation Inc.
7
Unattended Operation
As it is the shop owner’s responsibility to set up the machine safely and use best practice
machining techniques, it is also the owner’s responsibility to manage the progress of these
methods. You must monitor your machining process to prevent damage, injury, or loss of
life if a hazardous condition occurs.
For example, if there is the risk of fire due to the material machined, then you must install
an appropriate fire suppression system to reduce the risk of harm to personnel, equipment,
and the building. Contact a specialist to install monitoring tools before machines are
allowed to run unattended.
Setup mode should be locked out (the keyswitch in the vertical, locked position) at most
times. In Run and in Setup mode, the enclosure doors are locked closed during CNC
program execution, spindle rotation or axis movement. The doors automatically unlock
when the machine is not in cycle. Many machine functions are unavailable with the door
open.
When unlocked, setup mode allows a skilled machinist more access to the machine to set
up jobs. In this mode, machine behavior is dependent on whether the doors are opened or
closed. The following charts summarize the modes and allowed functions.
NOTE: All these conditions follow assuming that the door is open and stays
open before, during and the actions occur.
8
Safety
Axis Jog using the RJH shuttle Not allowed. Not allowed.
knob
9
Door Rules - Run / Setup Mode
This open-door condition is allowed only while a robot communicates with the CNC
machine. Typically, an interface between the robot and the CNC machine addresses the
safety of both machines.
Robot cell setup is beyond the scope of this manual. Work with a robot-cell integrator and
your HFO to correctly set up a safe robot cell.
It is entirely up to the owner/operator to determine if and what type of mist extractor is best
suited for the application.
The owner/operator assumes all responsibility for the installation of the mist extraction
system.
10
Safety
Some parts or kits manufactured or sold by Haas Automation, Inc. are considered
user-installable. If you choose to install these parts or kits yourself, be sure to completely
read the accompanying installation instructions. Make sure you understand the procedure,
and how to do it safely, before you begin. If you have any doubts about your ability to
complete the procedure, contact your Haas Factory Outlet (HFO) for assistance.
Such damage can void your warranty, but it can also introduce hazardous conditions to
your shop. For example, coolant leaks through damaged seals could create a slipping
hazard.
Improper coolant use includes, but is not limited to, these points:
Ask your HFO or your coolant dealer if you have questions about the specific coolant that
you plan to use.
11
Safety Decals
Be sure to familiarize yourself with the symbols on the safety decals. The symbols are
designed to quickly tell you the type of information they give:
12
Safety
Symbol Description
The Regen is used by the spindle drive to dissipate excess power and will
get hot.
Always use care around the Regen.
There are high voltage components on the machine that can cause
electrical shock.
Always use care around high voltage components.
13
Safety Decals
Symbol Description
Long tools are dangerous, especially at spindle speeds higher than 5000
RPM. The tools can break and eject from the machine.
Remember that machine enclosures are intended to stop coolant and
chips. Enclosures may not stop broken tools or thrown parts.
Always check your setup and tooling before you start machining.
Symbol Description
14
Safety
Symbol Description
Do not attempt to load tools with the spindle dogs misaligned with the
cutouts in the toolholder V-Flange.
Do not use pure water as coolant. This will cause machine components to
rust.
Always use a rust-inhibitive coolant concentrate with water.
15
Safety Decals
Symbol Description
Always wear safety glasses or goggles when you are near a machine.
Airborne debris can cause eye damage.
Always wear hearing protection when you are near a machine.
Machine noise can exceed 70 dBA.
Make sure the spindle dogs are correctly aligned with the cutouts in the
toolholder V-flange.
Note the location of the tool release button. Press this button only when
you are holding the tool.
Some tools are very heavy. Handle these tools carefully; use both hands
and have someone press the tool release button for you.
16
Safety
Symbol Description
17
Safety Decals
18
Introduction
Chapter 2: Introduction
2.1 Vertical Mill Overview
The following figures show some of the standard and optional features of your Haas
Vertical Mill. Note that these figures are representative only; your machine’s appearance
may vary depending on the model and installed options.
19
Vertical Mill Overview
3
2
1
B
14 4
A
12 13
VF
5
11
6
7
10 9
C 8
1. Side Mount Tool Changer (optional) A. Umbrella Tool Changer (not shown)
2. Servo Auto Door (optional) B. Control Pendant
3. Spindle Assembly C. Spindle Head Assembly
4. Electrical Control Box
5. Work Light (2X)
6. Window Controls
7. Storage Tray
8. Air Gun
9. Front Work Table
10. Chip Container
11. Tool Holding Vise
12. Chip Conveyor (optional)
13. Tool Tray
14. High Intensity Lights (2X) (optional)
20
Introduction
6
5
4 3
3
5 4
21
Vertical Mill Overview
D
2
B
C
22
Introduction
23
Vertical Mill Overview
24
Introduction
1
NOTE: More details are shown on the
2 decals inside of the access door.
10
5
9
6
25
EC-1600 Overview
EC
1600 Z
T
11
2
3
10
4
9
5
B
6
8 A 7
1. Side Mount Tool Changer SMTC A Rotary Control
2. Control Pendant B Work Access Steps
3. Consolidated Air-Lubrication Module (CALM) C Secondary ATC Controls
4. Electrical Control Box
5. Operator Spindle Access Door
6. Tool Tray
7. Front Work Table
8. Work Access Doors
9. Air Gun Holder
10. Coolant Tank Assembly (movable)
11. Dual Chip Conveyor
12. Enclosure Exhaust System (optional)
26
Introduction
F2.11: Detail A
5 2
4 3
F2.12: Detail B
1. Chain to Enclosure
2. Floor Anchor Bolt
Secure the work platform with chains to the enclosure
or bolts to the floor.
1
27
EC-1600 Overview
F2.13: Detail C
3 2
28
Introduction
5
6
7
2
4
3
29
EC-1600 Overview
2 5
3
1. Lubrication Panel
2. Chip Conveyor
3. Tool Changer Access Door
4. Tool Changer Emergency Stop
5. Hydraulic Oil Refill
30
Introduction
11
10
12
9
13
7
6
3 4
2
31
Control Pendant
32
Introduction
Setup Mode In the locked position, this keyswitch enables all machine
safety features. Unlock allows setup (refer to “Setup
Mode” in the Safety section of this manual for details).
Servo Auto Door Override Press this button to open or close the Servo Auto Door (if
equipped).
Beacon Light
Provides quick visual confirmation of the machine’s current status. There are five different beacon states:
33
Control Pendant
Beacon Light
Flashing Yellow A tool has expired, and the Tool Wear warning icon is
shown.
Name Function
2.3.3 Keyboard
Keyboard keys are grouped into these functional areas:
1. Function
2. Cursor
3. Display
4. Mode
5. Numeric
6. Alpha
7. Jog
8. Overrides
34
Introduction
F2.17: Mill Keyboard: [1] Function Keys, [2] Cursor Keys, [3] Display Keys, [4] Mode Keys, [5]
Numeric Keys, [6] Alpha Keys, [7] Jog Keys, [8] Override Keys.
1 2 3 4
DISPLAY
RESET POWER UP RECOVER EDIT INSERT ALTER DELETE UNDO
CURRENT
PROGRAM POSITION OFFSET
COMMANDS
SINGLE OPTION BLOCK
MEMORY GRAPHICS
BLOCK STOP DELETE
F1 F2 F3 F4 ALARMS DIAGNOSTIC SETTING HELP
& @ :
SHIFT A B C D E 7 8 9
OVERRIDES
-10% 100% +10% HANDLE % $ !
FEEDRATE FEEDRATE FEEDRATE FEED F G H I J K 4 5 6
+ = #
FWD STOP REV SPINDLE
E R S T U V W - 0
8 7 6 5
Function Keys
T2.5: List of Function Keys and How They Operate
Power up [POWER UP] Zero returns all axes and initializes the
machine control.
35
Control Pendant
Tool Offset [TOOL OFFSET Records tool length offsets during part
Measure MEASURE] setup.
Next Tool [NEXT TOOL] Selects the next tool from the tool
changer.
Tool Release [TOOL RELEASE] Releases the tool from the spindle when
in MDI, ZERO RETURN, or HAND JOG
mode.
Part Zero Set [PART ZERO SET] Records work coordinate offsets during
part setup.
Cursor Keys
The cursor keys let you move between data fields, scroll through programs, and navigate
through tabbed menus.
Home [HOME] Moves the cursor to the top-most item on the screen; in
editing, this is the top left block of the program.
Cursor Arrows [UP], [DOWN], Moves one item, block, or field in the associated
[LEFT], [RIGHT] direction. The keys depict arrows, but this manual refers
to these keys by their spelled-out names.
Page Up, Page Down [PAGE UP] / [PAGE Used to change displays or move up/down one page
DOWN] when viewing a program.
End [END] Moves the cursor to the bottom-most item on the screen.
In editing, this is the last block of the program.
36
Introduction
Display Keys
You use the Display keys to see the machine displays, operational information, and help
pages.
Offsets [OFFSET] Displays the Tool Offset and Work Offset tabbed menu.
Current Commands [CURRENT Displays menus for Devices, Timers, Macros, Active
COMMANDS] Codes, Calculators, Advanced Tool Management (ATM),
Tool Table, and Media.
Mode Keys
Mode keys change the operational state of the machine. Each mode key is arrow shaped
and points to the row of keys that perform functions related to that mode key. The current
mode is always displayed in the top left of the screen, in Mode:Key display form.
NOTE: [EDIT] and [LIST PROGRAM] can also act as display keys, where you
can access program editors and the device manager without changing
the machine mode. For example, while the machine runs a program,
you can use the device manager ([LIST PROGRAM]) or background
editor ([EDIT]) without stopping the program.
37
Control Pendant
Edit [EDIT] Lets you edit programs in the editor. You can access the Visual
Programming System (VPS) from the EDIT tabbed menu.
Insert [INSERT] Enters text from the input line or the clipboard into the program at the
cursor position.
Alter [ALTER] Replaces the highlighted command or text with text from the input
line or the clipboard.
Delete [DELETE] Deletes the item that the cursor is on, or deletes a selected program
block.
Undo [UNDO] Undoes up to the last 40 edit changes, and deselects a highlighted
block.
Memory [MEMORY] Selects memory mode. You run programs in this mode, and the other
keys in the MEM row control the ways in which the program is run.
Shows OPERATION:MEM in upper left display.
Single Block [SINGLE Toggles single block on or off. When single block is on, the control runs
BLOCK] only one program block each time you press [CYCLE START].
Optional Stop [OPTION Toggles optional stop on or off. When optional stop is on, the machine
STOP] stops when it reaches M01 commands.
Block Delete [BLOCK Toggles Block Delete On or Off. When Block Delete is On, the control
DELETE] ignores (does not execute) the code following a Forward Slash (/), on
that same line.
38
Introduction
Manual Data Input [MDI] In MDI mode, you run unsaved programs or blocks of
code entered from the control. Shows EDIT:MDI in
upper left display.
Coolant [COOLANT] Turns the optional coolant on and off. Also, [SHIFT] +
[COOLANT] turns on and off the optional Auto Air Gun /
Minimum Quantity Lubrication functions.
Handle Scroll [HANDLE SCROLL] Toggles Handle Scroll mode. This lets you use the jog
handle to move the cursor in menus while the control is in
jog mode.
Automatic Tool [ATC FWD] Rotates the tool carousel to the next tool.
Changer Forward
Automatic Tool [ATC REV] Rotates the tool carousel to the previous tool.
Changer Reverse
T2.11: List of [HANDLE JOG] Mode Keys and How They Operate
.0001/.1 .001/1 .01/10 [.0001 /.1], [.001 / 1.], Selects the increment for each click of the jog handle.
.1/100 [.01 / 10.], [.1 / 100.] When the mill is in MM mode the first number is multiplied
by ten when jogging the axis (e.g., .0001 becomes 0.001
mm). The bottom number sets speed after you press
[JOG LOCK] and an axis jog key or you press and hold
an axis jog key. Shows SETUP:JOG in the upper left of
the display.
39
Control Pendant
T2.12: List of [ZERO RETURN] Mode Keys and How They Operate
Zero Return [ZERO RETURN] Selects Zero Return mode, which displays axis location
in four different categories: Operator, Work G54,
Machine, and Dist (distance) To Go. Select the tab to
switch between the categories. Shows SETUP:ZERO in
the upper-left display.
Single [SINGLE] Returns one axis to machine zero. Press the desired
axis letter on the Alpha keyboard and then press
[SINGLE].
Home G28 [HOME G28] Returns all axes to zero in rapid motion. [HOME G28]
will also home a single axis in the same manner as
[SINGLE].
T2.13: List of [LIST PROGRAM] Mode Keys and How They Operate
List Programs [LIST PROGRAM] Accesses a tabbed menu to load and save programs.
Select Programs [SELECT PROGRAM] Makes the highlighted program the active program.
Back [BACK ARROW], Navigates to the screen you were on before the
current one. This key operates like the BACK button
on a web browser.
40
Introduction
Forward [FORWARD ARROW], Navigates to the screen you went to after the current
screen, if you have used the back arrow. This key
operates like the FORWARD button on a web
browser.
Erase Program [ERASE PROGRAM] Deletes the selected program in List Program mode.
Deletes the entire program in MDI mode.
Numeric Keys
Use the numeric keys to type numbers, along with some special characters (printed in
yellow on the main key). Press [SHIFT] to enter the special characters.
Minus sign [-] Adds a minus (-) sign to the input line.
Special Characters Press [SHIFT], then a Inserts the yellow character on the upper-left of the key.
numeric key These characters are used for comments, macros, and
certain special features.
41
Control Pendant
Alpha Keys
Use the alpha keys to type the letters of the alphabet, along with some special characters
(printed in yellow on the main key). Press [SHIFT] to enter the special characters.
Alphabet [A]-[Z] Uppercase letters are the default. Press [SHIFT] and a
letter key for lowercase.
End-of-block (EOB) [;] This is the end-of-block character, which signifies the end
of a program line.
Parentheses [(], [)] Separate CNC program commands from user comments.
They must always be entered as a pair.
Special Characters Press [SHIFT], then Inserts the yellow character on the upper-left of the key.
an alpha key These characters are used for comments, macros, and
certain special features.
42
Introduction
Jog Keys
T2.16: List of Jog Keys and How They Operate
Chip Auger Forward [CHIP FWD] Starts the chip removal system in the
forward direction (out of the machine).
Chip Auger Stop [CHIP STOP] Stops the chip removal system.
Chip Auger [CHIP REV] Starts the chip removal system in the
Reverse "reverse" direction.
Axis Jog Keys [+X/-X, +Y/-Y, +Z/-Z, Jog axes manually. Press and hold the axis
+A/C/-A/C AND +B/-B button, or press and release to select an
(SHIFT +A/C/-A/C)] axis and then use the jog handle.
Jog Lock [JOG LOCK] Works with the axis jog keys. Press [JOG
LOCK], then an axis button, and the axis
moves until you press [JOG LOCK]
again.
Coolant Down [CLNT DOWN] Moves the optional P-Cool nozzle down.
Auxiliary Coolant [AUX CLNT] Press this key in MDI mode to toggle the
Through-Spindle Coolant (TSC) system
operation, if equipped. Press [SHIFT] +
[AUX CLNT] to toggle the Through Tool
Air Blast (TAB) function, if equipped. Both
functions also work in
Run-Stop-Jog-Continue mode.
43
Control Pendant
Override Keys
T2.17: List of Override Keys and How They Operate
Handle Control [HANDLE FEED] Lets you use the jog handle to adjust the feedrate
Feed Rate in 1% increments.
-10% Spindle [-10% SPINDLE] Decreases the current spindle speed by 10%.
100% Spindle [100% SPINDLE] Sets the overridden spindle speed back to the
programmed speed.
+10% Spindle [+10% SPINDLE] Increases the current spindle speed by 10%.
Handle Spindle [HANDLE Lets you use the jog handle to adjust the spindle
SPINDLE] speed in 1% increments.
Rapids [5% RAPID]/ [25% Limits machine rapids to the value on the key.
RAPID]/ [50%
RAPID] / [100%
RAPID]
44
Introduction
Override Usage
Overrides let you temporarily adjust the speeds and feeds in your program. For example,
you can slow down rapids while you prove out a program, or adjust the feedrate to
experiment with its effect on part finish, etc.
You can use Settings 19, 20, and 21 to disable the feedrate, spindle, and rapid overrides,
respectively.
[FEED HOLD] acts as an override that stops rapid and feed moves when you press it.
[FEED HOLD] also stops tool changes and part timers, but not tapping cycles or dwell
timers.
Press [CYCLE START] to continue after a [FEED HOLD]. When the Setup Mode key is
unlocked, the door switch on the enclosure also has a similar result but displays Door
Hold when the door is opened. When the door is closed, the control is in Feed Hold and
[CYCLE START] must be pressed to continue. Door Hold and [FEED HOLD] do not stop
any auxiliary axes.
You can override the standard coolant setting by pressing [COOLANT]. The coolant pump
remains either on or off until the next M-code or operator action (see Setting 32).
Use Settings 83, 87, and 88 to have M30 and M06 commands, or [RESET], respectively,
change overridden values back to their defaults.
45
Control Pendant
F2.18: Basic Control Display Layout in Operation:Mem Mode (While a Program Runs)
1 2 3 4 5 6
13 12 11 10 9 8 7
1. Mode, Network, and Time Status Bar 7. Timers, Counters / Tool Management
2. Program Display 8. Alarm Status
3. Main Display (size varies)/Program/Offsets/Current 9. System Status Bar
Commands/Settings/Graphics/Editor/VPS/Help 10. Position Display / Axis Load
4. Active Codes 11. Input Bar
5. Active Tool 12. Icon Bar
6. Coolant 13. Spindle Status
The active pane has a white background. You can work with data in a pane only when that
pane is active, and only one pane is active at a time. For example, when you select the
Tool Offsets tab, the offsets table background turns white. You can then make changes
to the data. In most cases, you change the active pane with the display keys.
46
Introduction
F2.19: The Mode, Network, and Time Status bar shows [1] the current machine mode, [2]
network status icons, and [3] the current time.
1 2 3
Mode [1]
The Haas control organizes machine functions into three modes: Setup, Edit, and
Operation. Each mode shows on one screen all of the information you need to do tasks
under that mode. For example, in Setup mode, you have access to the work offset table,
the tool offset table, and position information. Edit mode gives you access to the program
editor and optional systems like Visual Programming (VPS) (which contains Wireless
Intuitive Probing (WIPS)). Operation mode includes Memory (MEM), the mode in which you
run programs.
Setup [ZERO RETURN] SETUP: ZERO Provides all control features for
machine setup.
[HANDLE JOG] SETUP: JOG
Network [2]
47
Control Pendant
If you have networking installed on your Next Generation Control, icons in the center
networking partition of the bar give you networking status. See the table for meanings of
the networking icons.
The machine is connected to a wireless network, but it is not receiving data packets.
The machine is successfully registered with HaasConnect and is communicating with the
server.
The machine had previously registered with HaasConnect and has a problem connecting to
the server.
48
Introduction
Time [3]
The right side of the bar shows the current time in hh:mm:ss format. To set the time, refer
to the Time Adjustment section on page 50.
Offsets Display
To access the offset tables, press [OFFSET] and select the TOOL tab or the WORK tab.
Name Function
TOOL Display and work with tool numbers and tool length
geometry.
Current Commands
This section describes the Current Commands pages and the types of data they show. The
information from most of these pages also appears in other modes.
You also see these timers and counters in the lower-right section of the display in the
OPERATION:MEM, SETUP:ZERO, and EDIT:MDI modes.
Macros Display -This page shows a list of the macro variables and their values. The
control updates these variables as programs run. You can modify the variables in this
display; refer to the Variable Display Page on page 204.
Active Codes -This page lists the active program codes. A smaller version of this display
is included on the OPERATION:MEM and EDIT:MDI mode screens. Also when you press
[PROGRAM] in any Operation mode, you see the active program codes.
49
Control Pendant
Advanced Tool Management -This page contains information the control uses to predict
tool life. Here is where you create and manage tool groups, and where you enter the
maximum tool load percentage expected for each tool.
For more information, refer to the Advanced Tool Management section in the Operation
chapter of this manual.
Calculator -This page contains the Standard, Milling/Turning, and Tapping calculators.
TIP: You can reset the M30 counters independently to track finished parts
in two different ways; for example, parts finished in a shift and total
parts finished.
Time Adjustment
Follow this procedure to adjust the date or time.
50
Introduction
Active Codes
F2.20: Active Codes Display Example
This display gives read-only, real-time information about the codes that are currently active
in the program; specifically, the codes that define the current motion type (rapid vs linear
feed vs circular feed), positioning system (absolute vs incremental), cutter compensation
(left, right or off), active canned cycle, and work offset. This display also gives the active
Dnn, Hnn, Tnn, and most recent M-code. If an alarm is active, this shows a quick display
of the active alarm instead of the active codes.
51
Control Pendant
Advanced Tool Management -This page contains information the control uses to predict
tool life. Here is where you create and manage tool groups, and where you enter the
maximum tool load percentage expected for each tool.
Calculator
The calculator tab includes calculators for basic mathematical functions, milling, and
tapping.
52
Introduction
Standard Calculator
The standard calculator has functions like a simple desktop calculator; with available
operations such as addition, subtraction, multiplication, and division, as well as square root
and percentage. The calculator lets you easily transfer operations and results to the input
line so that you can put them into programs. You can also transfer results into the Milling
and Tapping calculators.
53
Control Pendant
• After you have entered data into the calculator input field, you can do any of the
following:
54
Introduction
Milling/Turning Calculator
The milling/turning calculator lets you automatically calculate machining parameters based
on given information. When you have entered enough information, the calculator
automatically displays results in the relevant fields. These fields are marked with an
asterisk ( * ).
Tapping Calculator
55
Control Pendant
The tapping calculator lets you automatically calculate tapping parameters based on given
information. When you have entered enough information, the calculator automatically
displays results in the relevant fields. These fields are marked with an asterisk ( * ).
Media Display
M130 Lets you display video with audio and still images during program execution. Some
examples of how you can use this feature are:
56
Introduction
The correct command format is M130(file.xxx), where file.xxx is the name of the
file, plus the path, if necessary. You can also add a second comment in parentheses to
appear as a comment at the top of the media window.
NOTE: M130 uses the subprogram search settings, Settings 251 and 252 in
the same way that M98 does. You can also use the Insert Media
File command in the editor to easily insert an M130 code that
includes the file path. Refer to page 131 for more information.
PNG - - -
JPEG - - -
NOTE: For the fastest loading times, use files with pixel dimensions divisible
by 8 (most unedited digital images have these dimensions by default),
and a maximum resolution of 1920 x 1080.
Your media appears in the Media tab under Current Commands. The media displays until
the next M130 displays a different file, or M131 clears the media tab contents.
57
Control Pendant
To use Graphics mode, select the GRAPHICS tab. Graphics shows an on-screen
representation of your part program. The axes do not move, so you do not risk tool or part
damage from programming errors.
Active Codes
F2.26: Active Codes Display Example
58
Introduction
This display gives read-only, real-time information about the codes that are currently active
in the program; specifically, the codes that define the current motion type (rapid vs linear
feed vs circular feed), positioning system (absolute vs incremental), cutter compensation
(left, right or off), active canned cycle, and work offset. This display also gives the active
Dnn, Hnn, Tnn, and most recent M-code. If an alarm is active, this shows a quick display
of the active alarm instead of the active codes.
Active Tool
F2.27: Active Tool Display Example
This display gives information about the current tool in the spindle. This information
includes:
59
Control Pendant
Coolant Display
F2.28: Coolant Level Display Example
The coolant display appears in the upper-right of the screen in OPERATION:MEM mode.
The next line shows the position number of the optional Programmable Coolant Spigot
(P-COOL). The positions are from 1 to 34. If the option is not installed, no position number
appears.
In the coolant gauge, a black arrow shows the coolant level. Full is 1/1 and empty is 0/1.
To avoid coolant flow problems, keep the coolant level above the red range. You can also
see this gauge in DIAGNOSTICS mode under the GAUGES tab.
60
Introduction
The timer section of this display gives information about cycle times (This Cycle, Last
Cycle, and Remaining).
The counter section has two M30 counters and a Loops Remaining display.
• M30 Counter #1: and M30 Counter #2: every time a program reaches an M30
command, the counters increase by one. If Setting 118 is on, the counters also
increment every time a program reaches an M99 command.
• If you have macros, you can clear or change M30 Counter #1 with #3901 and M30
Counter #2 with #3902 (#3901=0).
• Refer to page 50 for information on how to reset the timers and counters.
• Loops Remaining: shows the number of subprogram loops remaining to complete the
current cycle.
• The ACTIVE ALARM tab shows the alarms that currently affect machine operation.
Use [PAGE UP] and [PAGE DOWN] to see the other active alarms.
• The MESSAGES tab shows the messages page. The text you put on this page stays
there when you power the machine off. You can use this to leave messages and
information for the next machine operator, etc.
• The ALARM HISTORY tab shows a list of the alarms that have recently affected
machine operation. You can also search for an alarm number or alarm text. To do
this type in the alarm number or the desired text and press [F1].
61
Control Pendant
• The ALARM VIEWER tab shows a detailed description of all the alarms. You can also
search for an alarm number or alarm text. To do this type in the alarm number or the
desired text and press [F1].
• The KEY HISTORY tab shows up to the last 2000 keystrokes.
Add Messages
You can save a message in the MESSAGES tab. Your message stays there until you remove
it or change it, even when you turn the machine off.
1. Press [ALARMS], select the MESSAGES tab, and press the [DOWN] cursor arrow
key.
2. Type your message.
Press [CANCEL] to backspace and delete. Press [DELETE] to delete an entire line.
Press [ERASE PROGRAM] to delete the entire message.
Alarm Notifications
Haas machines include a basic application to send an alert to an email address or cellular
telephone when an alarm occurs. You need to know some information about your network
to set up this application. Ask your system administrator or Internet Service Provider (ISP)
if you do not know the correct settings.
To set up alarm alerts, press [SETTING] and choose the NOTIFICATIONS tab.
62
Introduction
Position Display
The Position display shows the current axis position relative to four reference points (Work,
Distance-to-go, Machine, and Operator). In any mode, press [POSITION] and use cursor
keys to access the different reference points displayed in tabs.The last tab display shows
all the reference points on the same screen.
Coordinate
Display Function
WORK (G54) This tab displays the axis positions relative to part zero. On power-up, this position
uses work offset G54 automatically. It displays the axis positions relative to the most
recently-used work offset.
DIST TO GO This tab displays the distance remaining before the axes reach their commanded
position. When in SETUP:JOG mode, you can use this position display to show a
distance moved. Change modes (MEM, MDI) and then switch back to SETUP:JOG
mode to zero this value.
MACHINE This tab displays the axis positions relative to machine zero.
OPERATOR This tab shows the distance you have jogged the axes. This does not necessarily
represent the actual distance the axis is from machine zero, except when the machine
is first powered on.
ALL This tab displays all reference points on the same screen.
You can add or remove axes in the Positions displays. While a Positions display tab is
active, press [ALTER]. The axis display selection window comes in from the right side of
the screen.
63
Control Pendant
Use the cursor arrow keys to highlight an axis, and press [ENTER] to toggle it on and off
for display. The positions display will show axes that have a check mark. Press [ALTER]
to close the axis display selector.
Input Bar
F2.31: Input Bar
The input bar is the data entry section located in the bottom-left corner of the screen. This
is where your input appears as you type it.
64
Introduction
Symbol Name
_ underscore
^ caret
~ tilde
\ backslash
| pipe
65
Control Pendant
1. Highlight the directory with the name that you want to change.
2. Type MY.
66
Introduction
3. Press [F3].
4. Select SPECIAL SYMBOLS and press [ENTER].
5. Press [1].
6. Type DIRECTORY.
7. Press [F3].
8. Select RENAME and press [ENTER].
The first column of this display gives you information about feedrate, spindle, and rapid
overrides.
The second column displays the current spindle speed in rpm and spindle load in kW. The
spindle load value reflects the actual spindle power to the tool. The next values presented
are linked: surface speed of the rotating tool in fpm, the actual chip load in in/tth, and the
programmed feed rate in in/min. Active feed rate displays the actual feed rate including any
manual overrides.
The spindle load meter indicates the spindle load as a percentage of motor capacity.
67
Tabbed Menu Basic Navigation
1. Press [SHIFT].
2. Press [F1].
NOTE: The control uses the default filename snapshot#.png. The # starts
from 0 and increments each time you capture a screen. This counter
resets at power off. Screen captures that you take after a power cycle
overwrite previous screen captures that have the same filename on
the User Data memory.
The control saves the screen capture to your USB device or control memory. The message
Snapshot saved to USB or Snapshot saved to User Data appears when the
process finishes.
1. Press [SHIFT].
2. Press [F3].
NOTE: Be sure to always generate the error report with the alarm or the error
is active.
The control saves the error report to your USB device or control memory.The error report
is a zip file that includes a screen capture, the active program, and other information used
for diagnostics. Generate this error report when an error or an alarm occurs. E-mail the
error report to your local Haas Factory Outlet.
NOTE: If the cursor is at the top of the menu screen, you can also press the
[UP] cursor arrow key to select a different tab.
NOTE: You cannot make the tabs active in the POSITIONS tabbed display.
5. Press a different display or mode key to work with a different tabbed menu.
2.5 Help
Use the [HELP] key on the control when you need to access information about machine
functions, commands, or programming printed in this manual.
1. Press [HELP]. You are presented with icon options for different help information.
(Press [HELP] again to exit the Help window.)
2. Use the cursor arrows or [HANDLE JOG] control to highlight an icon option, then
press [ENTER]. Press the [UP] or [DOWN] cursor arrows or turn the [HANDLE
JOG] control to scroll through pages larger than the screen.
3. Press [HOME] to go to the top directory level or top of a page.
4. To search for help content by keyword, type your search term in the input field, then
press [F1] to execute the search. Search results for the keyword appear in the HELP
window.
5. Press the [LEFT]/[RIGHT] cursor arrow keys to go to the previous/next page on the
contents pages.
69
Help
70
Control Icons
The icon bar is near the bottom of the control pendant display, above the input and status
bars.
71
Next Generation Control Icon Guide
Setup Setup mode is locked; the control is in Run mode. Most machine
functions are disabled or limited while the machine doors are open.
Setup Setup mode is unlocked; the control is in Setup mode. Most machine
functions are available, but may be limited while the machine doors
are open.
Cycle Door The door must be cycled at least once to ensure that the door sensor
is working. This icon appears after [POWER UP] If the user has not
yet cycled the door.
72
Control Icons
Power Saving The power-saving servos-off feature is active. Setting 216, SERVO
AND HYDRAULIC SHUTOFF, designates the time period allowed
before this feature activates. Press a key to activate the servos.
Jog This icon appears while the control returns to the workpiece during a
run-stop-jog-continue operation.
Jog You have pressed [FEED HOLD] during the return portion of a
run-stop-jog-continue operation.
Feed Hold The machine is in feed hold. Axis motion has stopped, but the
spindle continues to turn.
73
Next Generation Control Icon Guide
Restart The control scans the program before a restart if Setting 36 is ON.
Singbk Stop SINGLE BLOCK mode is active, and the control needs a
command to continue.
74
Control Icons
Jog Lock Jog lock is active. If you press an axis key, that axis moves at the
current jog rate until you press [JOG LOCK] again, or the axis
reaches its limit.
Vector Jog For five-axis machines, the tool will jog along the vector defined by
the rotary positions.
Low Gearbox This icon appears when low gearbox oil flow persists for 1 minute.
Oil Flow
75
Next Generation Control Icon Guide
Rotary Lube Check and fill the rotary table lubrication oil reservoir.
FILTER
Low Coolant Fill the concentrate reservoir for the coolant refill system.
Concentrate
Low Lube The spindle lubrication oil system detected a low oil condition, or the
axis ball screw lubrication system detected a low grease or low
pressure condition.
MIST
FILTER
76
Control Icons
Low Air Flow Inch Mode - Air flow is not sufficient for correct machine operation.
CFM
Low Air Flow Metric Mode - Air flow is not sufficient for correct machine operation.
l/min
Spindle When you press [HANDLE SPINDLE], the jog handle varies the
spindle override percentage.
Feed When you press [HANDLE FEED], the jog handle varies the feed
rate override percentage.
Handle Scroll When you press [HANDLE SCROLL], the jog handle scrolls
through the text.
77
Next Generation Control Icon Guide
HPU Oil Low The HPU oil level is low. Check the oil level and add the
recommended oil for the machine.
HPU Oil The oil temperature is too high to reliably operate the HPU.
Temperature
(Warning)
78
Control Icons
Spindle Fan This icon appears when the spindle fan stops operating.
Failed
Electronics This icon appears when the control has detected cabinet
Overheat temperatures are approaching levels that are potentially dangerous
(Warning) to the electronics. If the temperature reaches or exceeds this
recommended level alarm 253 ELECTRONICS OVERHEAT will be
generated. Inspect the cabinet for clogged air filters and correctly
operating fans.
Electronics This icon appears when the electronics remains in the overheat state
Overheat for too long. The machine will not operate until the condition is
(Alarm) corrected. Inspect the cabinet for clogged air filters and correctly
operating fans.
Transformer This icon appears when the transformer remains in the overheat
Overheat state for too long. The machine will not operate until the condition is
(Alarm) corrected.
79
Next Generation Control Icon Guide
Low Voltage The PFDM detects low incoming voltage. If the condition continues,
(Warning) the machine cannot continue operation.
Low Voltage The Power Fault Detect Module (PDFM) detects incoming voltage
(Alarm) that is too low to operate. The machine will not operate until the
condition is corrected.
High Voltage The PFDM detects incoming voltage above a set limit, but still within
(Warning) operating parameters. Correct the condition to prevent damage to
machine components.
High Voltage The PFDM detects incoming voltage that is too high to operate and
(Alarm) could cause damage to the machine. The machine will not operate
until the condition is corrected.
High Air The air pressure to the machine is too high to reliably operate
(Warning) pneumatic systems. Correct this condition to prevent damage to or
incorrect operation of pneumatic systems. You may need to install a
regulator at the machine’s air input.
Low Air The air pressure to the machine is too low to operate pneumatic
(Alarm) systems. The machine will not operate until the condition is
corrected. You may need a higher-capacity air compressor.
80
Control Icons
Low Air The air pressure to the machine is too low to reliably operate
(Warning) pneumatic systems. Correct this condition to prevent damage to or
incorrect operation of pneumatic systems.
High Air The air pressure to the machine is too high to operate pneumatic
(Alarm) systems. The machine will not operate until the condition is
corrected. You may need to install a regulator at the machine’s air
input.
APC E-Stop [EMERGENCY STOP] on the pallet changer has been pressed.
This icon disappears when [EMERGENCY STOP] is released.
Tool Changer [EMERGENCY STOP] on the tool changer cage has been
E-Stop pressed. This icon disappears when [EMERGENCY STOP] is
3 released.
81
Next Generation Control Icon Guide
Single Blk SINGLE BLOCK mode is active. The control executes programs
(1) block at a time. Press [CYCLE START] to execute the next
block.
Tool Life The tool life remaining is below Setting 240, or the current tool is the
(Warning) last one in its tool group.
Tool Life The tool or tool group has expired, and no replacement tools are
(Alarm) available.
Opt Stop OPTIONAL STOP is active. The control stops the program at each
M01 command.
Blk Delete BLOCK DELETE is active. When Block Delete is On, the control
ignores (does not execute) the code following a Forward Slash (/),
on that same line.
82
Control Icons
TC Manual This icon appears when the tool carousel is in manual mode via the
Mode auto/manual switch. This swich is only on machines with tool cages.
83
Next Generation Control Icon Guide
84
Control Icons
HIL Light Indicates the optional High Intensity Lights (HIL) are turned ON and
the doors are open. Duration is determined by Setting 238.
85
More Information Online
86
Operation
Chapter 4: Operation
4.1 Machine Power-On
This section tells you how to power-on a new machine for the first time.
1. Press [POWER ON] until you see the Haas logo on the screen. After a self-test and
boot sequence, the display shows the startup screen.
The startup screen gives basic instructions to start the machine. Press [CANCEL] to
dismiss the screen.
WARNING: Before you do the next step, remember that automatic motion begins
immediately when you press [POWER UP]. Make sure the motion
path is clear. Stay away from the spindle, machine table, and tool
changer.
After the first [POWER UP], the axes move toward their home positions. The axes
then move slowly until the machine finds the home switch for each axis. This
establishes the machine home position.
6. Press any of the following:
a. [CANCEL] to dismiss the screen.
b. [CYCLE START] to run current program.
c. [HANDLE JOG] for manual operation.
87
Spindle Warm-Up
Your machine includes a 20-minute warm-up program (O09220) in the program list. If you
use the spindle at consistent high speeds, you should run this program every day.
In the tabbed menu at the top of the display, the device manager ([LIST PROGRAM])
shows you only the available memory devices. For example, if you do not have a USB
memory device connected to the control pendant, the tabbed menu does not show a USB
tab. For more information on navigating tabbed menus, refer to page 68.
The device manager ([LIST PROGRAM]) shows you the available data in a directory
structure. At the root of the CNC control are the available memory devices in a tabbed
menu. Each device can contain combinations of directories and files, many levels deep.
This is similar to the file structure you find in common personal computer operating
systems.
88
Operation
F4.1: Device Manager Initial Screen Example: [1] Available Device Tabs, [2] Search Box, [3]
Function Keys, [4] File Display, [5] File Comments (only available in Memory).
1
2
4 3
• Use the [UP] and [DOWN] cursor arrow keys to highlight and interact with a file or a
directory in the current root or directory.
• Roots and directories have a right-hand arrow character (>) in the far-right column of
the file display. Use the [RIGHT] cursor arrow key to open a highlighted root or
directory. The display then shows the contents of that root or directory.
• Use the [LEFT] cursor arrow key to return to the previous root or directory. The
display then shows the contents of that root or directory
• The CURRENT DIRECTORY message above the file display tells you where you are
in the directory structure; for example: MEMORY/CUSTOMER 11/NEW PROGRAMS
shows that you are in the subdirectory NEW_PROGRAMS inside the directory
CUSTOMER 11, in the root of MEMORY.
89
Device Manager ([LIST PROGRAM])
• File selection check box (no label): Press ENTER to toggle a check mark on and off
in the box. A check mark in a box indicates that the file or directory selected for
operations on multiple files (usually copy or delete).
• Program O Number (O #): This column lists the program numbers of the programs
in the directory. The letter ‘O’ is omitted in the column data. Only available in the
Memory tab.
• File comment (Comment): This column lists the optional program comment that
appears in the first line of the program. Only available in the Memory tab.
• File Name (File Name): This is an optional name that the control uses when you
copy the file to a memory device other than the control. For example, if you copy
program O00045 to a USB memory device, the filename in the USB directory is
NEXTGENtest.nc.
• File Size (Size): This column shows the amount of storage space that the file takes
up. Directories in the list have the designation <DIR> in this column.
NOTE: This column is hidden by default, press the [F3] button and select
Show File Details to display this column.
• Date Last Modified (Last Modified): This column shows the last date and time
when the file was changed. The format is YYYY/MM/DD HR:MIN.
90
Operation
NOTE: This column is hidden by default, press the [F3] button and select
Show File Details to display this column.
• Other Information (no label): This column gives you some information about a file’s
status. The active program has an asterisk (*) in this column. A letter E in this column
means that the program is in the program editor. A greater-than symbol (>) indicates
a directory. A letter S indicates that a directory is part of Setting 252 (refer to page
407 for more information). Use the [RIGHT] or [LEFT] cursor arrow keys to enter or
exit the directory.
F4.3: Create New Program Popup Menu Example: [1] Program O number field, [2] File Name
field, [3] File comment field.
Enter the new program information in the fields. The Program O number field is required;
the File Name and File comment are optional. Use the [UP] and [DOWN] cursors to
move between the menu fields.
• Program O number (required for files created in Memory): Enter a program number
up to (5) digits long. The control adds the letter O automatically. If you enter a number
shorter than (5) digits, the control adds leading zeros to the program number to make
it (5) digits long; for example, if you enter 1, the control adds zeros to make it 00001.
91
Device Manager ([LIST PROGRAM])
NOTE: Do not use O09XXX numbers when you create new programs. Macro
programs often use numbers in this block, and overwriting them may
cause machine functions to malfunction or stop working.
• File Name (optional): Type a filename for the new program. This is the name the
control uses when you copy the program to a storage device other than memory.
• File comment (optional): Type a descriptive program title. This title goes into the
program as a comment in the first line with the O number.
Press [ENTER] to save your new program. If you specified an O number that exists in the
current directory, the control gives the message File with O Number nnnnn already
exists. Do you want to replace it? Press [ENTER] to save the program and
overwrite the existing program, press [CANCEL] to return to the program name popup, or
press [UNDO] to cancel.
The active program has an asterisk (*) in the far-right column in the file display. It is the
program that runs when you press [CYCLE START] in OPERATION:MEM mode. The
program is also protected from deletion while it is active.
Press [ENTER] to place a check mark in a file’s check box. Highlight another file and press
[ENTER] again to put a check mark in that file’s check box. Repeat this process until you
have selected all of the files you want to select.
You can then do an operation (usually copy or delete) on all of those files at the same time.
Each file that is part of your selection has a check mark in the check box. When you choose
an operation, the control does that operation on all of the files with check marks.
For example, if you want to copy a set of files from the machine memory to a USB memory
device, you would put a check mark on all of the files that you want to copy, then press [F2]
to start the copy operation.
To delete a set of files, put a check mark on all of files you want to delete, then press
[DELETE] to start the delete operation.
NOTE: A check-mark selection only marks the file for further operation; it does
not make the program active.
92
Operation
NOTE: If you have not selected multiple files with check marks, the control
does operations only on the currently highlighted directory or file. If you
have selected files, the control does operations only on the selected
files and not on the highlighted file, unless it is also selected.
1. To copy a single program, highlight it in the device manager program list and press
[ENTER] to assign a check mark. To copy multiple programs, check-mark all the
programs you want to copy.
2. Press [F2] to start the copy operation.
The Select Device popup appears.
F4.4: Select Device
3. Use the cursor arrow keys to select the destination directory. [RIGHT] cursor to enter
the chosen directory.
The Insert Directory: Copy popup menu appears.
93
Device Manager ([LIST PROGRAM])
4. Press [ENTER] to complete the copy operation, or press [CANCEL] to return to the
device manager.
The program has the designation E in the far-right column of the file display list when it is
in the editor, unless it is also the active program.
You can use this function to edit a program while the active program runs. You can edit the
active program, but your changes do not take effect until you save the program and then
select it again in the device manager menu.
94
Operation
• Make Directory: creates a new subdirectory in the current directory. Type a name
for the new directory, and then press [ENTER].
• Rename: changes the name of a program. The Rename popup menu has the same
options as the new program menu (File Name, O Number, and File Title).
• Delete: deletes files and directories. When you confirm the operation, the control
deletes the highlighted file, or all of the files with check-mark selection.
• Duplicate Program: makes a copy of a file in the current location. The Save As
popup menu asks you to specify a new program name before you can complete this
operation.
• Select All: adds check-marks to all of the files/directories in the Current
Directory.
• Clear Selections: removes check-marks from all of the files/directories in the
Current Directory.
• Sort By O Number: sorts the program list by O number. Use this menu item again
to sort by filename. By default, the program list is sorted by filename. Only available
in the Memory tab.
• Setting 252 add / Setting 252 remove: adds or removes a custom
sub-program search location to the list of locations. See Setting Up Search Locations
section for more information.
• Setting 262 DPRNT: adds a custom destination file path for DPRNT.
95
Full Machine Backup
• Get File Path: places the path and the name of the selected file in parenthesis
on the input bar.
• Special Symbols: accesses text symbols that are not available on the keyboard.
Enter the number of the character you want to use to put it in the input bar. The
special characters are: _ ^ ~ { } \ | < >
You create and load backup files with the System [F4] drop-down menu.
96
Operation
5. Highlight the data to back up and press [ENTER] to apply a check mark. Press [F2]
to select all data. Press [F3] to clear all check marks.
6. Press [F4].
The control saves the backup you selected in a zip file labeled
HaasBackup(mm-dd-yyyy).zip where mm is the month, dd is the day, and yyyy
is the year.
Selected
Backup Data Saved Name of File (Folder)
97
Full Machine Backup
1. If a USB is used, insert a USB memory device into the [USB] port on the right side
of the control pendant. If Net Share is used, make sure Net Share is correctly set
up.
2. Using the [LEFT] and [RIGHT] cursors navigate to USB in the Device Manager.
3. Open the destination directory. If you want to create a new directory for your backup
data, refer to page 95 for instructions.
4. Press [F4].
5. Select the menu option for the data you want to back up, and press [ENTER].
6. Type a filename in the Save As pop-up menu. Press [ENTER]. The message SAVED
is displayed after saving is complete. If the name exists you can overwrite or type a
new name.
The file types for backups are listed in the following table.
F4 Menu
Selection Save Load Created File
98
Operation
NOTE: When you back up settings, the Control does not prompt for a file
name. It saves the file in a subdirectory:
1. Insert the USB memory device with the backup files into the USB port on the right
side of the control pendant.
2. Navigate to USB in the Device Manager.
3. Press [EMERGENCY STOP].
4. Open the directory that contains the backup you want to restore.
5. Highlight the HaasBackup zip file to load.
6. Press [F4].
7. Select Restore Machine and press [ENTER].
The Restore Machine pop-up window shows what types of data can be selected to
restore.
F4.8: Restore Machine Pop-up menu (example shows an all data backup)
8. Highlight the data to restore and press [ENTER] to apply a check mark. Press [F2]
to select all data. Press [F3] to clear all selectors.
99
Restoring a Full Machine Backup
9. Press F4.
Each data area restored is checked-off and initialized.
1. Insert the USB memory device with the backup files into the USB port on the right
side of the control pendant.
2. Navigate to USB in the Device Manager.
3. Press [EMERGENCY STOP].
4. Open the directory that contains the files you want to restore.
5. Highlight or type in the name of the file to be restored. Typed file name takes
precedence over highlighted file name.
NOTE: Type the backup name with or without a file extension (e.g., MACROS
or MACROS.VAR)
6. Press [F4].
7. Highlight the backup type to load and press [ENTER].
The highlighted file or the typed name file is loaded on the machine. The message
Disk Done displays after loading is complete.
NOTE: Settings load the moment you pick Settings from the System [F4]
drop-down menu. Highlighting or typing is not required.
100
Operation
NOTE: This is a quick-search function that finds the first match in the search
direction that you specify. You can use the Editor for a more
full-featured search. Refer to page 129 for more information on the
Editor search function.
The [UP] cursor arrow key searches from the cursor position to the start of the program.
The [DOWN] cursor arrow key searches to the end of the program. The control highlights
the first match.
4.7 Tooling
This section describes tool management in the Haas control: commanding tool changes,
loading tools into holders, and Advanced Tool Management.
1 2
2. Clean the tool holder taper body (the part that goes into the spindle) with a lightly
oiled rag to leave a film, which helps prevent rusting.
101
Tooling
Pull Studs
A pull stud (sometimes called a retention knob) secures the tool holder into the spindle. Pull
studs are threaded into the top of the tool holder and are specific to the type of spindle.
Refer to the 30, 40, and 50-taper spindle and tooling information on the Haas Service
website for descriptions of the pull studs you need.
ATM classifies duplicate or backup tools into specific groups. In your program, you specify
a group of tools instead of a single tool. ATM tracks the tool use in each tool group and
compares it to your defined limits. When a tool reaches a limit, the control considers it
“expired.” The next time your program calls that tool group, the control chooses a
non-expired tool from the group.
To use ATM, press [CURRENT COMMANDS], and then select ATM in the tabbed menu.
The ATM window has two sections: Allowed Limits and Tool Data.
102
Operation
F4.10: Advanced Tool Management Window: [1] Active window label, [2] Allowed Limits window,
[3] Tool Group window, [4] Tool Data window, [5] Help text
1
2
Allowed Limits
This table gives data about all of the current tool groups, including default groups and
user-specified groups. ALL is a default group that lists all of the tools in the system. EXP is
a default group that lists all of the tools that are expired. The last row in the table shows all
of the tools that are not assigned to tool groups. Use the cursor arrow keys or [END] to
move the cursor to the row and see these tools.
For each tool group in the ALLOWED LIMITS table, you define limits that determine when
a tool expires. The limits apply to all tools assigned to this group. These limits affect every
tool in the group.
• GROUP - Displays the tool group’s ID number. this is the number you use to specify
the tool group in a program.
• EXP # - Tells you how many tools in the group are expired. If you highlight the ALL
row, you see a list of all of the expired tools in all groups.
• ORDER - Specifies the tool to use first. If you select ORDERED, ATM uses the tools in
tool number order. You can also have ATM automatically use the NEWEST or OLDEST
tool in the group.
• USAGE - The maximum number of times the control can use a tool before it expires.
• HOLES - The maximum number of holes a tool is allowed to drill before it expires.
103
Tooling
• WARN - The minimum value for tool life remaining in the group before the control gives
a warning message.
• LOAD - The allowed load limit for tools in the group before the control does the
ACTION that the next column specifies.
• ACTION - The automatic action when a tool reaches its maximum tool load
percentage. Highlight the tool action box to change and press [ENTER]. Use the
[UP] and [DOWN] cursor keys to select the automatic action from the pull down
menu (ALARM, FEEDHOLD, BEEP, AUTOFEED, NEXT TOOL).
• FEED - The total amount of time, in minutes, that the tool can be in a feed.
• TOTAL TIME - The total amount of time, in minutes, that the control can use a tool.
Tool Data
This table gives information about each tool in a tool group. To look at a group, highlight it
in the ALLOWED LIMITS table, and then press [F4].
NOTE: By default, the H- and D-codes in Advanced Tool Management are set
to equal the tool number that is added to the group.
104
Operation
1. Highlight the group you want to work with in the ALLOWED LIMITS table.
2. Press [F4] to switch to the TOOL DATA table.
3. Use the cursor arrow keys to highlight an empty row.
4. Type an available tool number between 1 and 200.
5. Press [ENTER].
6. To change a tool number assigned to a group, use the cursor keys to highlight the
tool number you want to change.
7. Type a new tool number.
NOTE: You can type 0 if you want to delete the tool from the tool group.
8. Press [ENTER].
Example:
%
O30001 (Tool change ex-prog);
(G54 X0 Y0 is top right corner of part) ;
(Z0 is on top of the part) ;
(Group 1000 is a drill) ;(T1000 PREPARATION BLOCKS) ;
T1000 M06 (Select tool group 1000) ;
G00 G90 G40 G49 G54 (Safe startup) ;
X0 Y0 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H1000 Z0.1 (Tool group offset 1000 on) ;
M08 (Coolant on) ;
(T1000 CUTTING BLOCKS) ;
G83 Z-0.62 F15. R0.1 Q0.175 (Begin G83);
X1.115 Y-2.75 (2nd hole);
X3.365 Y-2.87 (3rd hole);
G80 ;
G00 Z1. M09 (Rapid retract, coolant off) ;
G53 G49 Z0 M05 (Z home, spindle off) ;
M01 (Optional stop) ;
105
Tooling
Macro variables 8500 - 8515 enable a G code program to obtain tool group information.
When you specify a tool group ID number with macro 8500, the control returns the tool
group information in macro variables #8501 through #8515. Refer to the variables #8500
- #8515 in the Macros chapter for the macro variable data label information.
Macro variables #8550 - #8564 let a G-code program obtain information about individual
tools. When you specify an individual tool ID number with macro #8550, the control returns
the individual tool information in macro variables #8551 - #8564. You can also specify an
ATM group number with macro 8550. In this case, the control returns the individual tool
information for the current tool in the specified ATM tool group in macro variables 8551 -
8564. Refer to the description for variables #8550 - #8564 in the Macros chapter. The
values in these macros provide data that is also accessible from macros starting at 1601,
1801, 2001, 2201, 2401, 2601, 3201, and 3401 and for macros starting at 5401, 5501,
5601, 5701, 5801, and 5901. These first 8 sets provide access for tool data for tools
1-200; the last 6 sets provide data for tools 1-100. Macros 8551 - 8564 give access to the
same data, but for tools 1-200 for all data items.
106
Operation
1. Make sure the machine is zero returned. If it is not, press [POWER UP].
2. Use [TOOL RELEASE], [ATC FWD], and [ATC REV] to manually command the tool
changer. There are (2) tool release buttons; one on the spindle head cover and
another on the keyboard.
107
Tool Changers
NOTE: Low air pressure or insufficient volume reduces the pressure applied
to the tool release piston and will slow down tool change time or will
not release the tool.
WARNING: Stay away from the tool changer during power up, power down, and
during tool changer operations.
Always load tools into the tool changer from the spindle. Never load a tool directly into the
tool changer carousel. Some mills have remote tool changer controls to let you inspect and
replace tools at the carousel. This station is not for initial loading and tool assignment.
CAUTION: Tools that make a loud noise when released indicate a problem and
should be checked before serious damage occurs to the tool changer
or spindle.
1. Make sure your tool holders have the correct pull stud type for the mill.
2. Press [CURRENT COMMANDS] then navigate to the TOOL TABLE tab and press
the [DOWN] cursor.
3. Clear the Large or Heavy tool designations from the pocket tool table by:
a. Scroll to a tool pocket with an L or H next to it.
b. Press [SPACE], then [ENTER] to clear the designation.
108
Operation
c. Or, press [ENTER] and select CLEAR CATEGORY FLAG from the pulldown
menu.
d. To clear all designations, press [ORIGIN] and select the CLEAR CATEGORY
FLAGS option.
F4.11: A Large and Heavy Tool (left), and a Heavy (not Large) Tool (right)
1 2
4. Press [ORIGIN]. Select Sequence All Pockets to reset the tool pocket table to
default values. This places tool 1 in the spindle, tool 2 in pocket 1, tool 3 in pocket 2,
etc. This clears the previous tool pocket table settings, and it resets the tool pocket
table for the next program.
NOTE: You cannot assign a tool number to more than one pocket. If you enter
a tool number that is already defined in the tool pocket table, you see
an Invalid Number error.
5. Determine if your program needs any large tools. A large tool has a diameter of
greater than 3" for 40-taper machines and greater than 4" for 50-taper machines. If
your program does not need large tools, skip to Step 7.
6. Organize the tools to match your CNC program. Determine the numerical positions
of large tools and designate those pockets as Large in the tool pocket table. To
designate a tool pocket as Large:
a. Scroll to the pocket of interest.
b. Press [L].
c. Press [ENTER]
109
Tool Changers
CAUTION: You cannot place a large tool in the tool changer if one or both of the
surrounding pockets already contain tools. Doing so causes the tool
changer to crash. Large tools must have the surrounding pockets
empty. However, large tools can share adjoining empty pockets.
8. Turn the tool so that the two cutouts in the tool holder line up with the tabs of the
spindle.
9. Push the tool upward and press the tool release button.
10. When the tool is fitted into the spindle, release the tool release button.
As a safety precaution, the tool changer will run at a maximum of 25% of the normal speed
when it changes a heavy tool. The pocket up/down speed is not slowed down. The control
restores the speed to the current rapid when the tool change is complete. Contact your
HFO for assistance if you have problems with unusual or extreme tooling.
H - Heavy, but not necessarily large (large tools require empty pockets on either side).
h - Heavy small diameter tool in a pocket designated for a large tool (must have empty
pocket on both sides). The lower case “h” and “l” is placed by the control; never enter a
lower case “h” or “l” into the tool table.
110
Operation
l - Small diameter tool in a pocket reserved for a large tool in the spindle.
You cannot use a zero to designate the tool in the spindle. The spindle must always have
a tool number designation.
CAUTION: Plan the reorganization of the tools in the carousel ahead of time. To
reduce the potential for tool changer crashes, keep tool movement to
a minimum. If there are large or heavy tools currently in the tool
changer, ensure that they are only moved between tool pockets
designated as such.
Moving Tools
The tool changer pictured has an assortment of normal-sized tools. For the purposes of this
example, we need to move tool 12 to pocket 18 to make room for a large-sized tool in
pocket 12.
F4.13: Making Room for Large Tools: [1] Tool 12 to Pocket 18, [2] Large Tool in Pocket 12.
1
2
111
Tool Changers
1. Select MDI mode. Press [CURRENT COMMANDS] and navigate to the TOOL
TABLE display. Identify the tool number that is in pocket 12.
2. Type Tnn (where nn is the tool number from step 1). Press [ATC FWD]. This places
the tool from pocket 12 into the spindle.
3. Type P18 then press [ATC FWD] to put the tool in the spindle into pocket 18.
4. Scroll to pocket 12 in the TOOL TABLE and press L then [ENTER] to designate
pocket 12 as large.
5. Enter the tool number into SPINDLE on the TOOL TABLE. Insert the tool into the
spindle.
6. Enter P12 into the control and press [ATC FWD]. The tool is placed into pocket 12.
1. Ensure the tools loaded have the correct pull stud type for the mill.
2. Press [MDI/DNC] for MDI mode.
3. Organize the tools to match to the CNC program.
4. Take tool in hand and insert the tool (pull stud first) into the spindle. Turn the tool so
that the two cutouts in the tool holder line up with the tabs of the spindle. Push the
tool upward while pressing the Tool Release button. When the tool is fitted into the
spindle, release the Tool Release button.
5. Press [ATC FWD].
6. Repeat Steps 4 and 5 with the remaining tools until all the tools are loaded.
112
Operation
WARNING: Never put your hands near the tool changer unless there is an alarm
displayed first.
To save time, the control looks ahead as far as 80 lines into your program to process and
prepare machine motion and tool changes. When look-ahead finds a tool change, the
control puts the next tool in your program into position. This is called “tool pre-call.”
Some program commands stop look-ahead. If your program has these commands before
the next tool change, the control does not pre-call the next tool. This can cause your
program to run slower, because the machine must wait for the next tool to move into
position before it can change tools.
To make sure that the control pre-calls the next tool without look-ahead, you can command
the carousel to the next tool position immediately after a tool change command, as in this
code snippet:
113
Tool Changers
F4.14: Tool Changer Door Switch Panel Symbols: [1] Rotate Tool changer Carousel
Counter-Clockwise, [2] Rotate Tool Changer Carousel Clockwise, [3] Tool Change Switch
- Automatic Operation, [4] Tool Change Switch - Manual Operation Selection.
1 2
4 3
114
Operation
If the switch is turned to manual while a tool carousel is in motion, the tool carousel stops
and resumes when the switch is turned back to automatic. The next tool change will not
execute until the switch is turned back. Any machining operations that are in progress
remain uninterrupted.
During tool changer recovery, if the cage door is open or the Tool Change switch is in the
manual position and [RECOVER] is pressed, a message is displayed telling the operator
the door is open or is in manual mode. The operator must close the door and set the switch
to the automatic position in order to continue.
The pallet changer is provided with an audible signaling device to alert nearby personnel
when a pallet change is taking place. However, do not depend on the signal to avoid
mishaps.
115
Pallet Changer (EC-Series) - Introduction
Part Ready: used to indicate the pallet is ready. It also contains a light that 1) blinks when
the control is waiting for the operator or 2) is on when the operator is ready for a pallet
change.
116
Operation
NOTE: On 2 pallet machines the engraved arrow points towards the operator
(out) when in the home position. On a pallet pool machine, the arrow
points away from the operator (in).
2. Attach a suitable lifting device to the top of the fixture or use eye bolts threaded into the
pallet holes.
0.25”
(6.35mm)
117
Part Setup
3. Lift the pallet approximately 0.25” (6.35mm) to position it above the load station pins, but
below the load station lock plate. Pull the pallet towards you until it has cleared the load
station.
F4.17: Part Setup Examples: [1] Toe clamp, [2] Chuck, [3] Vise.
2
1 3
118
Operation
Jog Mode
Jog mode lets you jog the machine axes to a desired location. Before you can jog an axis,
the machine must establish its home position. The control does this at machine power-up.
1
2
9
J I H G
119
Part Setup
9. Select between the X and Y axes [I] and jog the tool to the upper left corner of the
part (see illustration [9]).
10. Navigate to the [OFFSET]>WORK [C] tab and press the [DOWN] cursor key [H] to
activate the page. You can press [F4] to toggle between Tool offsets and Work
offsets.
11. Navigate to the G54 X Axis location.
CAUTION: In the next step, do not press [PART ZERO SET] a third time; this
loads a value into the Z AXIS column. This causes a crash or a Z-Axis
alarm when the program is run.
12. Press [PART ZERO SET] [B] to load the value into the X Axis column. The second
press of [PART ZERO SET] [B] loads the value into the Y Axis column.
F4.19: Setting Tool Offset. With the Z Axis at its home position, Tool Length Offset is measured
from the tip of the tool [1] to the top of the part [2].
A B C D E F G
K J I H
120
Operation
CAUTION: The next step causes the spindle to move rapidly in the Z Axis.
4.11 Run-Stop-Jog-Continue
This feature lets you stop a running program, jog away from the part, and then start the
program again.
CAUTION: When you start the program again, the control uses the previous
offsets for the return position. Therefore, it is unsafe and not
recommended to change tools and offsets when you interrupt a
program.
121
Graphics Mode
6. Press [CYCLE START]. The control rapids X, Y, and rotary axes at 5% to the
position where you pressed [FEED HOLD]. It then returns the Z Axis. If you press
[FEED HOLD] during this motion, axis motion pauses and the control gives the
message Jog Return Hold. Press [CYCLE START] to resume the Jog Return
motion. The control goes into a feed hold state again when the motion is finished.
CAUTION: The control does not follow the same path that you used to jog away.
CAUTION: If Setting 36 is ON, the control scans the program to make sure the
machine is in the correct state (tools, offsets, G- and M-codes, etc.) to
safely continue the program. If Setting 36 is OFF, the control does not
scan the program. This can save time, but it could cause a crash in an
unproven program.
• Key Help Area The lower-left part of the graphics display pane is the function key
help area. This area shows you the function keys that you can use, and a description
of what they do.
• Locator Window The lower-right part of the pane displays the simulated machine
table area, and it shows where the simulated view is zoomed and focused.
• Tool Path Window The large window in the center of the display gives a simulated
view of the work area. It displays a cutting tool icon and simulated tool paths.
NOTE: Feed motion appears as a black line. Rapid moves appear as a green
line. Drill cycle locations appear with an X.
NOTE: If Setting 253 is ON, the tool diameter is shown as a thin line. If it is OFF,
the tool diameter specified in the Tool Offsets Diameter Geometry
table is used.
122
Operation
• Zoom Press [F2] to display a rectangle (zoom window) that shows the area that the
zoom operation will move to. Use [PAGE DOWN] to decrease the size of the zoom
window (zoom in), and use [PAGE UP] to increase the size of the zoom window
(zoom out). Use the cursor arrow keys to move the zoom window to the location you
want to zoom, and press [ENTER] to complete the zoom. The control scales the tool
path window to the zoom window. Run the program again to display the tool path.
Press [F2] and then [HOME] to expand the Tool Path window to cover the entire work
area.
• Z-Axis Part Zero Line The horizontal line on the Z-Axis bar at the top-right corner of
the graphics screen gives the position of the current Z-axis work offset plus the length
of the current tool. While a program simulation runs, the shaded portion of the bar
indicates the depth of the simulated Z-Axis motion relative to the Z-Axis work zero
position.
• Position PaneThe position pane displays axis locations just as it would during a live
part run.
NOTE: Graphics mode does not simulate all machine functions or motions.
123
More Information Online
124
Programming
Chapter 5: Programming
5.1 Create / Select Programs for Editing
You use the Device Manager ([LIST PROGRAM]) to create and select programs for
editing. Refer to page 91 to create a new program. Refer to page 92 to choose an existing
program to edit.
The Haas control screen has (2) program edit panes: The Active Program / MDI pane, and
the Program Generation pane. The Active Program / MDI pane is on the left side of the
screen in all display modes. The Program Generation pane appears only in EDIT mode.
F5.1: Example Edit Panes. [1] Active Program / MDI Pane, [2] Program Edit Pane, [3] Clipboard
Pane
1 2
125
Program Edit Modes
2. To highlight code:
a. Use the cursor arrow keys or the jog handle to move the highlight cursor
through the program.
b. You can interact with single pieces of code or text (cursor highlighting), blocks
of code, or multiple blocks of code (block selection). Refer to the Block
Selection section for more information.
4. To replace code:
a. Highlight the code you want to replace.
b. Type the code you want to replace the highlighted code with.
c. Press [ALTER]. Your new code takes the place of the code you highlighted.
NOTE: You cannot use [UNDO] to reverse changes that you made if you exit
EDIT:EDIT mode.
NOTE: In EDIT:EDIT mode, the control does not save the program as you
edit. Press [MEMORY] to save the program and load it into the Active
Program pane.
126
Programming
Block Selection
When you edit a program, you can select single or multiple blocks of code. You can then
copy and paste, delete, or move those blocks in one step.
To select a block:
1. Use the cursor arrow keys to move the highlight cursor to the first or last block in your
selection.
NOTE: You can start a selection at the top block or the bottom block, and then
move up or down as appropriate to complete your selection.
NOTE: You cannot include the program name block in your selection. The
control gives the message GUARDED CODE.
NOTE: These instructions assume you have already made a block selection
as described in the Block Selection section.
NOTE: These are actions available in MDI and the Program Editor. You
cannot use [UNDO] to reverse these actions.
The control puts a copy of the selection on the next line after the cursor location.
127
Program Edit Modes
NOTE: The control does not copy the text to the clipboard when you use this
function.
The control removes the text from its current location and puts it in the line after the
current line.
3. Press [DELETE] to delete the selection.
4. Press [ERASE PROGRAM] to delete everything from the MDI input page.
128
Programming
The program appears in the PROGRAM GENERATION pane on the right-hand side of
the screen.
3. Edit the program.
4. The changes that you make to the active program do not affect the program while it
runs.
5. If you background edit the active program, after the program finishes running, when
you attempt to leave the screen, a popup gives the option to overwrite the program
or discard your changes.
• Pick the first item, Overwrite After End of Program, in the popup and press
[ENTER] to overwrite the active program with your changes.
• Pick the second item, Discard Changes, in the popup and press [ENTER] to
discard all of your changes.
Press [EDIT] to enter edit mode and use the Program Editor.
129
Program Edit Modes
F5.3: Example Program Editor Screen. [1] Main Program Display, [2] Menu Bar, [3] Clipboard
130
Programming
4. Use the [UP] and [DOWN] cursor arrow keys to select an option inside of the current
category.
5. Press [ENTER] to execute the command.
Some menu commands require further input or confirmation. In these cases, an input
window or confirmation pop-up appears on the screen. Type your input in the field(s) where
applicable, and then press [ENTER] to confirm the action or [UNDO] to close the popup
and cancel the action.
File Menu
The File menu has these options:
• New: Creates a new program. In the pop-up menu fields, type an O number
(required), a filename (optional), and a file title (optional). For more information about
this menu, refer to “Create a New Program” in the Operation section of this manual.
• Set To Run: Saves the program and puts it in the active program pane on the
left-hand side of the screen. You can also press [MEMORY] to use this function.
• Save: Saves the program. The program’s filename and path change from red to
black to show that the changes are saved.
• Save As: You can save the file under any filename. The program’s new filename
and path will change from red to black to show that the changes are saved.
• Discard Changes: Reverts any changes you’ve made since the file was last
saved.
Edit Menu
The Edit menu has these options:
• Undo: Reverses the last edit operation, up to the last (40) edit operations. You can
also press [UNDO] to use this function.
• Redo: Reverses the last undo operation, up to the last (40) undo operations.
• Cut Selection To Clipboard: Removes the selected lines of code from the
program and puts them in the clipboard. Refer to “Block Selection” to learn how to
make a selection.
• Copy Selection To Clipboard: Puts the selected lines of code in the clipboard.
This operation does not remove the original selection from the program.
• Paste From Clipboard: Puts a copy of the clipboard contents below the current
line. This does not remove the clipboard contents.
• Insert File Path (M98): Lets you select a file from a directory and creates the
path with the M98.
• Insert Media File (M130): Lets you select a media file from a directory and
creates the path with the M130.
• Special Symbols: Inserts a special symbol.
131
Program Edit Modes
Search Menu
The Search menu gives you access to the Find And Replace Text function. This
function lets you quickly find code in the program and optionally replace it. To use it:
NOTE: This function searches for program code, not text. You cannot use this
function to find text strings (like comments).
F5.4: Find and Replace Menu Example: [1] Text to Find, [2] Replacement Text, [3] Search
Direction, [4] Find Option, [5] Replace Option, [6] Find and Replace Option, [7] Replace all
Option
1. Press [ENTER] in the editor pull-down menu to open the Find And Replace Text
menu. Use the cursor arrow keys to move between the fields in the menu.
2. In the Find field, Type the code you want to search for.
3. If you want to replace some or all of the found code, type the replacement code in the
Replace field.
4. Use the [LEFT] and [RIGHT] cursor arrow keys to choose the search direction.
Forward searches the program below the cursor position, Backward searches the
program above the cursor position.
After you specify at least the code that you want to search for and the direction you want to
search, press the function key for the search mode that you want to use:
132
Programming
The control searches the program in the specified direction and highlights the first
occurrence of the search term. Each time you press [F1], the control searches for the next
occurrence of the search term, in the search direction that you specified, until it reaches the
end of the program.
After the search function finds an occurrence of your search term, you can press [F2] to
replace that code with the contents of the Replace field.
NOTE: If you press [F2] with no text in the Replace field, the control deletes
that occurrence of your search term.
Press [F3] instead of [F1] to start the find and replace operation. For each occurrence of
your search term, press [F3] if you want to replace it with the text in the Replace field.
Press [F4] to replace all of the search term occurrences in (1) step. You cannot undo this.
MODIFY Menu
The Modify menu has commands that let you make quick changes to an entire program, or
to selected lines within a program.
NOTE: You cannot use [UNDO] to reverse Modify operations. The operations
also automatically save the program. If you are not sure you want to
keep the changes that you make, be sure to save a copy of the original
program.
• Remove All Line Numbers: Automatically removes all N-code line numbers from
the program or the selected program blocks.
• Renumber All Lines: Automatically adds N-code line numbers to the program or
the selected program blocks. Enter the line number you want to start with and the
increment to use between line numbers, then press [ENTER] to continue or press
[UNDO] to cancel and to return to the editor.
• Reverse + And - Signs: Changes positive values for selected address codes to
negative, or negative values to positive. Press the letter key for the address codes
that you want to reverse to toggle selections in the pop-up menu. Press [ENTER] to
execute the command or [CANCEL] to return to the editor.
133
Basic Programming
1. Preparation: This portion of the program selects the work and tool offsets, selects
the cutting tool, turns on the coolant, sets spindle speed, and selects absolute or
incremental positioning for axis motion.
2. Cutting: This portion of the program defines the tool path and feed rate for the cutting
operation.
3. Completion: This portion of the program moves the spindle out of the way, turns off
the spindle, turns off the coolant, and moves the table to a position from where the
part can be unloaded and inspected.
This is a basic program that makes a 0.100" (2.54 mm) deep cut with Tool 1 in a piece of
material along a straight line path from X = 0.0, Y = 0.0 to X = - 4.0, Y = - 4.0.
134
Programming
NOTE: A program block can contain more than one G-code, as long as those
G-codes are from different groups. You cannot place two G-codes
from the same group in a program block. Also note that only one
M-code per block is allowed.
%
O40001 (Basic program) ;
(G54 X0 Y0 is top right corner of part) ;
(Z0 is on top of the part) ;
(T1 is a 1/2" end mill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G17 G40 G49 G54 (Safe startup) ;
X0 Y0 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Tool offset 1 on) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G01 F20. Z-0.1 (Feed to cutting depth) ;
X-4. Y-4. (linear motion) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z0.1 M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
5.3.1 Preparation
These are the preparation code blocks in the sample program O40001:
O40001 (Basic program) ; O40001 is the name of the program. Program naming
convention follows the Onnnnn format: The letter “O”,
or “o” is followed by a 5-digit number.
135
Basic Programming
T1 M06 (Select tool 1) ; Selects tool T1 to be used. M06 commands the tool
changer to load Tool 1 (T1) into the spindle.
G00 G90 G17 G40 G49 G54 (Safe This is referred to as a safe startup line. It is good
startup) ; machining practice to place this block of code after
every tool change. G00 defines axis movement
following it to be completed in Rapid Motion mode.
G90 defines axis movements following it to be
completed in absolute mode (refer to page 138 for
more information).
G17 defines the cutting plane as the XY plane. G40
cancels Cutter Compensation. G49 cancels tool length
compensation. G54 defines the coordinate system to
be centered on the Work Offset stored in G54 on the
Offset display.
S1000 M03 (Spindle on CW) ; M03 turns the spindle on in a clockwise direction. It
takes the address code Snnnn, where nnnn is the
desired spindle RPM.
On machines with a gearbox, the control automatically
selects high gear or low gear, based on the
commanded spindle speed. You can use an M41 or
M42 to override this. Refer to page 364 for more
information on these M-codes.
G43 H01 Z0.1 (Tool offset 1 on) ; G43 H01 turns on Tool Length Compensation +. The
H01 specifies to use the length stored for Tool 1 in the
Tool Offset display. Z0.1 commands the Z Axis to
Z=0.1.
136
Programming
5.3.2 Cutting
These are the cutting code blocks in the sample program O40001:
G01 F20. Z-0.1 (Feed to cutting depth) G01 F20. defines axis movements after it to be
; completed in a straight line. G01 requires the address
code Fnnn.nnnn. The address code F20. specifies
that the feed rate for the motion is 20" (508 mm) / min.
Z-0.1 commands the Z Axis to Z = - 0.1.
X-4. Y-4. (linear motion) ; X-4. Y-4. commands the X Axis to move to X = - 4.0
and commands the Y Axis to move to Y = - 4.0.
5.3.3 Completion
These are the completion code blocks in the sample program O40001:
G00 Z0.1 M09 (Rapid retract, Coolant G00 commands the axis motion to be completed in
off) ; rapid motion mode. Z0.1 Commands the Z Axis to Z =
0.1. M09 commands the coolant to turn off.
G53 G49 Z0 M05 (Z home, Spindle off) G53 defines axis movements after it to be with respect
; to the machine coordinate system. G49 cancels tool
length compensation. Z0 is a command to move to Z =
0.0. M05 turns the spindle off.
M30 (End program) ; M30 ends the program and moves the cursor on the
control to the top of the program.
137
Basic Programming
When you command axis motion after a G90 code, the axes move to that position relative
to the origin of the coordinate system currently in use.
When you command axis motion after a G91, the axes move to that position relative to the
current position.
Figure F5.6 shows a part with 5 equally spaced Ø0.25" (13 mm) diameter holes. The hole
depth is 1.00" (25.4 mm) and the spacing is 1.250" (31.75 mm) apart.
F5.6: Absolute / Incremental Sample Program. G54 X0. Y0. for Incremental [1], G54 for
Absolute [2]
1 2
7.500
1.000
0.500
0.
25
Below are two example programs that drill the holes as shown in the drawing, with a
comparison between absolute and incremental positioning. We start the holes with a center
drill, and finish drilling the holes with a 0.250" (6.35 mm) drill bit. We use a 0.200" (5.08 mm)
depth of cut for the center drill and 1.00" (25.4 mm) depth of cut for the 0.250" drill. G81,
Drill Canned Cycle, is used to drill the holes.
138
Programming
X0. Y0.
1.2
50
TYP
%
O40002 (Incremental ex-prog) ;
N1 (G54 X0 Y0 is center left of part) ;
N2 (Z0 is on top of the part) ;
N3 (T1 is a center drill) ;
N4 (T2 is a drill) ;
N5 (T1 PREPARATION BLOCKS) ;
N6 T1 M06 (Select tool 1) ;
N7 G00 G90 G40 G49 G54 (Safe startup) ;
N8 X0 Y0 (Rapid to 1st position) ;
N9 S1000 M03 (Spindle on CW) ;
N10 G43 H01 Z0.1(Tool offset 1 on) ;
N11 M08(Coolant on) ;
N12 (T1 CUTTING BLOCKS) ;
N13 G99 G91 G81 F8.15 X1.25 Z-0.3 L5 ;
N14 (Begin G81, 5 times) ;
N15 G80 (Cancel G81) ;
N16 (T1 COMPLETION BLOCKS) ;
N17 G00 G90 G53 Z0. M09 (rapid retract, clnt off);
N18 M01 (Optional stop) ;
N19 (T2 PREPARATION BLOCKS) ;
N20 T2 M06 (Select tool 2) ;
N21 G00 G90 G40 G49 (Safe startup) ;
N22 G54 X0 Y0 (Rapid to 1st position) ;
N23 S1000 M03 (Spindle on CW) ;
139
Basic Programming
X0. Y0.
1.2
50
2.5
00
3.7
50
5.0
00
6.2
50
%
O40003 (Absolute ex-prog) ;
N1 (G54 X0 Y0 is center left of part) ;
N2 (Z0 is on top of the part) ;
N3 (T1 is a center drill) ;
N4 (T2 is a drill) ;
N5 (T1 PREPARATION BLOCKS) ;
N6 T1 M06 (Select tool 1) ;
N7 G00 G90 G40 G49 G54 (Safe startup) ;
N8 X1.25 Y0 (Rapid to 1st position) ;
N9 S1000 M03 (Spindle on CW) ;
N10 G43 H01 Z0.1 (Tool offset 1 on) ;
N11 M08 (Coolant on) ;
N12 (T1 CUTTING BLOCKS) ;
140
Programming
The absolute program method needs more lines of code than the incremental program. The
programs have similar preparation and completion sections.
Look at line N13 in the incremental programming example, where the center drill operation
begins. G81 uses the loop address code, Lnn, to specify the number of times to repeat the
cycle. The address code L5 repeats this process (5) times. Each time the canned cycle
repeats, it moves the distance that the optional X and Y values specify. In this program, the
incremental program moves 1.25" in X from the current position with each loop, and then
does the drill cycle.
For each drill operation, the program specifies a drill depth 0.1" deeper than the actual
depth, because motion starts from 0.1" above the part.
In absolute positioning, G81 specifies the drill depth, but it does not use the loop address
code. Instead, the program gives the position of each hole on a separate line. Until G80
cancels the canned cycle, the control does the drill cycle at each position.
141
Tool and Work Offset Calls
The absolute positioning program specifies the exact hole depth, because the depth starts
at the part surface (Z=0).
CAUTION: The tool length nn value should match the nn value from the M06 Tnn
tool change command to avoid a possible collision.
Setting 15 - H & T Code Agreement controls whether the nn value needs to match in the
Tnn and Hnn arguments. If Setting 15 is ON and the Tnn and Hnn do not match, Alarm
332 - H and T Not Matched is generated.
%
O40005 (Work offsets ex-prog) ;
(G54 X0 Y0 is center left of part) ;
(Z0 is on top of the part) ;
(T1 is a drill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54(Safe startup) ;
X0 Y0 ;
(Move to first work coordinate position-G54) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Tool offset 1 on) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
142
Programming
Refer to the M-code section of this manual, starting on page 355, for a list of all M-codes
with descriptions.
NOTE: You can use only one M-code on each line of the program.
143
Miscellaneous Codes
You can command a tool change with the X, Y, and Z Axes in any position. The control will
bring the Z Axis up to the machine zero position. The control moves the Z Axis to a position
above machine zero during a tool change, but it never moves below machine zero. At the
end of a tool change, the Z Axis is at machine zero.
NOTE: The Snnnn address commands the spindle to turn at nnnn RPM, up
to the maximum spindle speed.
NOTE: When you command an M05, the control waits for the spindle to stop
before the program continues.
• M30 - Program End and Rewind ends the program and resets to the beginning of the
program. This is the most common way to end a program.
• M02 - Program End ends the program and remains at the location of the M02 block
of code in the program.
• M99 - Subprogram Return or Loop exits the subprogram and resumes the program
that called it.
NOTE: If your subprogram does not end with M99, the control gives Alarm
312 - Program End.
144
Programming
If your machine has Through-Spindle Coolant (TSC), useM88 to command it on, and M89
to command it off.
Corners can be chamfered using the optional argument Cnn.nnnn to define the chamfer.
Corners can be rounded using the optional address code Rnn.nnnn to define the radius of
the arc. Refer to page 259 for more information on G01.
Arcs can be defined using two different methods. The preferred method is to define the
center of the arc or circle with I, J and/or K and to define the end point [3] of the arc with an
X, Y and/or Z. The I J K values define the relative X Y Z distances from the starting point
[2] to the center of the circle. The X Y Z values define the absolute X Y Z distances from
the starting point to the end point of the arc within the current coordinate system. This is
also the only method to cut a circle. Defining only the I J K values and not defining the end
point X Y Z values will cut a circle.
The other method to cut an arc is to define the X Y Z values for the end point and to define
the radius of the circle with an R value.
145
Cutting G-codes
Below are examples of using the two different methods to cut a 2" (or 2 mm) radius, 180
degree, counter-clockwise arc. The tool starts at X0 Y0 [1], moves to the starting point of
the arc [2], and cuts the arc to the end point [3]:
(G03)
R 2.0
(X0. Y2.) 3 2
(I-2. J0.)
(X4. Y2.)
1 X+
(G54)
Method 1:
%
T01 M06 ;
...
G00 X4. Y2. ;
G01 F20.0 Z-0.1 ;
G03 F20.0 I-2.0 J0. X0. Y2. ;
...
M30 ;
%
Method 2:
%
T01 M06 ;
...
G00 X4. Y2. ;
G01 F20.0 Z-0.1 ;
G03 F20.0 X0. Y2. R2. ;
...M30 ;
%
146
Programming
T01 M06 ;
...
G00 X4. Y2. ;
G01 F20.0 Z-0.1 ;
G02 F20.0 I2.0 J0. ;
...
M30 ;
%
A G41 or G42 command must have a Dnnn value to select the correct offset number from
the radius / diameter offset column. The number to use with D is in the far-left column of the
tool offsets table.The value that the control uses for cutter compensation is in the
GEOMETRY column under D (if Setting 40 is DIAMETER) or R (if Setting 40 is RADIUS).
If the offset value is negative, cutter compensation operates as though the program
specifies the opposite G code. For example, a negative value entered for a G41 will behave
as if a positive value was entered for G42. Also, when cutter compensation is active (G41
or G42), you may use only the X-Y plane (G17) for circular motions. Cutter compensation
is limited to compensation in only the X-Y plane.
G40 cancels cutter compensation and is the default condition when you power on your
machine. When cutter compensation is not active, the programmed path is the same as the
center of the cutter path. You may not end a program (M30, M00, M01, or M02) with cutter
compensation active.
147
Cutter Compensation
The control operates on one motion block at a time. However, it will look ahead at the next
(2) blocks that have X or Y motions. The control checks these (3) blocks of information for
interference. Setting 58 controls how this part of cutter compensation works. Available
Setting 58 values are Fanuc or Yasnac.
If Setting 58 is set to Yasnac, the control must be able to position the side of the tool along
all of the edges of the programmed contour without overcutting the next two motions. A
circular motion joins all of the outside angles.
If Setting 58 is set to Fanuc, the control does not require that the tool cutting edge be placed
along all edges of the programmed contour, preventing overcutting. However the control
will generate an alarm if the cutter’s path is programmed so that it will overcut. The control
joins outside angles less than or equal to 270 degrees with a sharp corner. It joins outside
angles of more than 270 degrees with an extra linear motion.
These diagrams show how cutter compensation works for the possible values of Setting
58. Note that a small cut of less than the tool radius and at a right angle to the previous
motion will work only with the Fanuc setting.
F5.10: Cutter Compensation, YASNAC Style,G41 with a Positive Tool Diameter or G42 with a
Negative Tool Diameter: [1] Tool Path Actual Center, [2] Programmed Tool Path, [3] Start
Point, [4] Cutter Compensation. G41 / G42 and G40 are commanded at the start and end
of the tool path.
G41 / 1
G42
2
S G40 3 S
148
Programming
F5.11: Cutter Compensation, YASNAC Style, G42 with a Positive Tool Diameter or G41 with a
Negative Tool Diameter: [1] Tool Path Actual Center, [2] Programmed Tool Path, [3] Start
Point, [4] Cutter Compensation. G41 / G42 and G40 are commanded at the start and end
of the tool path.
1
G40 2
3 S
S G41 / G42
4
F5.12: Cutter Compensation, FANUC Style, G41 with a Positive Tool Diameter or G42 with a
Negative Tool Diameter: [1] Tool Path Actual Center, [2] Programmed Tool Path, [3] Start
Point, [4] Cutter Compensation. G41 / G42 and G40 are commanded at the start and end
of the tool path.
1
G41 /
G42 2
3 S
S G40 4
149
Cutter Compensation
F5.13: Cutter Compensation, FANUC Style, G42 with a Positive Tool Diameter or G41 with a
Negative Tool Diameter: [1] Tool Path Actual Center, [2] Programmed Tool Path, [3] Start
Point, [4] Cutter Compensation. G41 / G42 and G40 are commanded at the start and end
of the tool path.
1
G40
2
3 S
S G41 /
G42 4
In the block that turns off cutter compensation, the starting point is offset and the ending
point is not offset. Similarly, when changing from left to right or right to left side
compensation, the starting point of the move needed to change cutter compensation
direction will be offset to one side of the programmed path and end at a point that is offset
to the opposite side of the programmed path. The result of all this is that the tool moves
through a path that may not be the same as the intended path or direction.
If cutter compensation is turned on or off in a block without any X-Y move, there is no
change made to cutter compensation until the next X or Y move is encountered. To exit
from cutter compensation, you must specify G40.
You should always turn off cutter compensation in a move that clears the tool away from
the part being cut. If a program is terminated with cutter compensation still active, an alarm
is generated. In addition, you cannot turn cutter compensation on or off during a circular
move (G02 or G03); otherwise an alarm will be generated.
150
Programming
An offset selection of D0 will use zero as the offset value and have the same effect as
turning off cutter compensation. If a new D value is selected while cutter compensation is
already active, the new value will take effect at the end of the proceeding move. You cannot
change the D value or change sides during a circular motion block.
1
2
NOTE: A small cut of less than tool radius and at a right angle to the previous
motion will only work with the Fanuc setting. A cutter compensation
alarm will be generated if the machine is set to the Yasnac setting.
When the cut is on the outside of a circular motion, there is no speed-up adjustment made
to the feed rate.
151
Cutter Compensation
1 r 1
r r
2 2
G42 G42
1
1 r
r r
2 2
152
Programming
r 1
1 r
r
r
2 r 2
G42 G42
r
1 r 1
r r
2 2
r
Using G02 and G03, we can program the machine to cut circular moves and radii.
Generally, when programming a profile or a contour, the easiest way to describe a radius
between two points is with an R and a value. For complete circular moves (360 degrees),
an I or a J with a value must be specified. The circle section illustration will describe the
different sections of a circle.
By using cutter compensation in this section, the programmer will be able to shift the cutter
by an exact amount and be able to machine a profile or a contour to the exact print
dimensions. By using cutter compensation, programming time and the likelihood of a
programming calculation error is reduced due to the fact that real dimensions can be
programmed, and part size and geometry can be easily controlled.
153
Cutter Compensation
Here are a few rules about cutter compensation that you must follow closely for successful
machining operations. Always refer to these rules when you write your programs.
1. Cutter compensation must be turned ON during a G01 X,Y move that is equal to or
greater than the cutter radius, or the amount being compensated.
2. When an operation using cutter compensation is done, the cutter compensation will
need to be turned OFF, using the same rules as the turn ON process, i.e., what is put
in must be taken out.
3. In most machines, during cutter compensation, a linear X,Y move that is smaller than
the cutter radius may not work. (Setting 58 - set to Fanuc - for positive results.)
4. Cutter compensation cannot be turned ON or OFF in a G02 or G03 arc movement.
5. With cutter compensation active, machining an inside arc with a radius less than what
is defined by the active D value causes the machine to alarm. Can not have too big
of a tool diameter if the radius of arc is too small.
F5.17: Circle Sections
This illustration shows how the tool path is calculated for the cutter compensation. The
detail section shows the tool in the starting position and then in the offset position as the
cutter reaches the workpiece.
154
Programming
F5.18: Circular Interpolation G02 and G03: [1] 0.250" diameter endmill, [2] Programmed path, [3]
Center of Tool, [4] Start Position, [5] Offset Tool Path.
R .3437
R .500
R .375
R .375
1
R .5625
X0. Y0.
X0. Y0.
5
X1. Y1. 2
4 3
This program uses cutter compensation. The toolpath is programmed to the centerline of
the cutter. This is also the way the control calculates for cutter compensation.
%
O40006 (Cutter comp ex-prog) ;
(G54 X0 Y0 is at the lower left of part corner) ;
(Z0 is on top of the part) ;
(T1 is a .250 dia endmill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
X-1. Y-1. (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1(Tool offset 1 on) ;
M08(Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G01 Z-1. F50. (Feed to cutting depth) ;
G41 G01 X0 Y0 D01 F50. (2D Cutter Comp left on) ;
Y4.125 (Linear motion) ;
G02 X0.25 Y4.375 R0.375 (Corner rounding) ;
G01 X1.6562 (Linear motion) ;
G02 X2. Y4.0313 R0.3437 (Corner rounding) ;
G01 Y3.125 (Linear motion) ;
G03 X2.375 Y2.75 R0.375 (Corner rounding) ;
155
Canned Cycles
• The G81 Drill Canned Cycle is the basic drilling cycle. It is used for drilling shallow
holes or for drilling with Through Spindle Coolant (TSC).
• The G82 Spot Drill Canned Cycle is the same as the G81 Drill Canned Cycle except
that it can dwell at the bottom of the hole. The optional argument Pn.nnn specifies
the duration of the dwell.
• The G83 Normal Peck Drilling Canned Cycle is typically used for drilling deep holes.
Peck depth can be variable or constant and always incremental. Qnn.nnn. Do not use
a Q value when programming with I, J, and K.
• The G73 High-Speed Peck Drilling Canned Cycle is the same as the G83 Normal
Peck Drilling Canned Cycle except that tool peck retraction is specified with Setting
22 - Can Cycle Delta Z. Peck drilling cycles are advised for hole depths greater than
3 times the diameter of the drill bit. The initial peck depth, defined by I, should
generally be a depth of 1 tool diameter.
• The G84 Tapping Canned Cycle is the normal tapping cycle. It is used for tapping
right-hand threads.
• G74 Reverse Tap Canned Cycle is the reverse thread tapping cycle. It is used for
tapping left-hand threads.
156
Programming
• The G85 Boring Canned Cycle is the basic boring cycle. It will bore down to the
desired height and return to the specified height.
• The G86 Bore and Stop Canned Cycle is the same as the G85 Boring Canned Cycle
except that the spindle will stop at the bottom of the hole before returning to the
specified height.
• The G89 Bore In, Dwell, Bore Out Canned Cycle is the same as G85 except that there
is a dwell at the bottom of the hole, and the hole continues to be bored at the specified
feed rate as the tool returns to the specified position. This differs from other boring
canned cycles where the tool either moves in Rapid Motion or hand jog to return to
the return position.
• The G76 Fine Boring Canned Cycle bores the hole to the specified depth and after
boring the hole, moves to clear the tool from hole before retracting.
• The G77 Back Bore Canned Cycle works similar to G76 except that before beginning
to bore the hole, it moves the tool to clear the hole, moves down into the hole, and
bores to the specified depth.
5.8.4 R Planes
R Planes, or return planes, are G-code commands that specify the Z-Axis return height
during canned cycles. The R Plane G-codes remain active for the duration of the canned
cycle it is used with. G98 Canned Cycle Initial Point Return moves the Z axis to the height
of the Z axis prior to the canned cycle. G99 Canned Cycle R Plane Return moves the Z axis
to the height specified by the Rnn.nnnn argument specified with the canned cycle. For
additional information, refer to the G and M-code section.
• Engraving (G47)
• Pocket Milling (G12, G13, and G150)
• Rotation and Scaling (G68, G69, G50, G51)
• Mirror Image (G101 and G100)
5.9.1 Engraving
The G47 Text Engraving G-code lets you engrave text (including some ASCII characters)
or sequential serial numbers with a single block of code.
157
Subprograms
• Circular Pocket Milling is performed with the G12 Clockwise Circular Pocket Milling
Command and the G13 Counter-Clockwise Circular Pocket Milling Command
G-codes.
• The G150 General Purpose Pocket Milling uses a subprogram to machine
user-defined pocket geometries.
Make sure that the subprogram geometry is a fully closed shape. Make sure that the X-Y
starting point in the G150 command is within the boundary of the fully closed shape. Failure
to do so may cause Alarm 370 - Pocket Definition Error.
Refer to page 270 for more information on the pocket milling G-codes.
NOTE: You must purchase the rotation and scaling option to use these
features. A 200-hour option tryout is also available.
G68 Rotation is used to rotate the coordinate system in the desired plane. You can use this
feature together with G91 Incremental Programming mode to machine symmetrical
patterns. G69 cancels rotation.
G51 applies a scaling factor to the positioning values in blocks after the G51 command. G50
cancels scaling. You can use scaling together with rotation, but be sure to command
scaling first.
Refer to page 292 for more information on the rotation and scaling G-codes.
Refer to page 316 for more information on the mirror image G-codes.
5.10 Subprograms
Subprograms:
• Are usually a series of commands that are repeated several times in a program.
158
Programming
• Are written in a separate program, instead of repeating the commands many times
in the main program.
• Are called in the main program with an M97 or M98 and a P code.
• Can include an L for repeat count. The subprogram call repeats L times before the
main program continues with the next block.
• The P code (nnnnn) is the same as the block number (Nnnnnn) of the local
subprogram.
• The subprogram must be within the main program
• The P code (nnnnn) is the same as the program number (Onnnnn) of the
subprogram.
• If the subprogram is not in memory, the file name must be Onnnnn.nc. The file name
must contain the O, leading zeros and .nc for the machine to find the subprogram.
• The subprogram must reside in the active directory, or in a location specified in
Settings 251/252. Refer to page 407 for more information on subprogram search
locations.
Canned Cycles are the most common use of subprograms. For example, you might put the
X and Y locations of a series of holes in a separate program. Then you can call that program
as a subprogram with a canned cycle. Instead of writing the locations once for each tool,
you write the locations only once for any number of tools.
When your program calls an M98 subprogram, the control looks for the subprogram in the
main program’s directory. If the control cannot find the subprogram in the main program’s
directory, it then looks in the location specified in Setting 251. Refer to page406 for more
information. An alarm occurs if the control cannot find the subprogram.
In this example, the subprogram (program O40008) specifies (8) positions. It also includes
a G98 command at the move between positions 4 and 5. This causes the Z Axis to return
to the initial starting point instead of the R plane, so the tool passes over the workholding.
The main program (Program O40007) specifies (3) different canned cycles:
Each canned cycle calls the subprogram and does the operation at each position.
159
Subprograms
%
O40007 (External subprogram ex-prog) ;
(G54 X0 Y0 is center left of part) ;
(Z0 is on top of the part) ;
(T1 is a spot drill) ;
(T2 is a drill) ;
(T3 is a tap) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X1.5 Y-0.5 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z1. (Tool offset 1 on) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G81 G99 Z-0.14 R0.1 F7. (Begin G81) ;
M98 P40008 (Call external subprogram) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z1. M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
M01 (Optional stop) ;
(BEGIN PREPARATION BLOCKS) ;
T2 M06 (Select tool 2) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X1.5 Y-0.5 (Rapid to 1st position) ;
S2082 M03 (Spindle on CW) ;
G43 H02 Z1. (Tool offset 1 on) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G83 G99 Z-0.75 Q0.2 R0.1 F12.5 (Begin G83) ;
M98 P40008 (Call external subprogram) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z1. M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
M01 (Optional stop) ;
(BEGIN PREPARATION BLOCKS) ;
T3 M06 (Select tool 3) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X1.5 Y-0.5 (Rapid to 1st position) ;
S750 M03 (Spindle on CW) ;
G43 H03 Z1. (Tool offset 3 on) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G84 G99 Z-0.6 R0.1 F37.5 (Begin G84) ;
M98 P40008 (Call external subprogram);
(BEGIN COMPLETION BLOCKS) ;
G00 Z1. M09 (Rapid retract, Coolant off) ;
160
Programming
2x 0.500
2x 1.500
2x 3.500
2x 4.500
X0.
Y0.
2x 0.500
2x 0.750 1 8
2 7
G98
2x 2.250 3 4 5 6
2x 2.500
G98
G99
1 8 7
2
5 6
3 4
Subprogram
%
O40008 (Subprogram) ;
X0.5 Y-0.75 (2nd position) ;
Y-2.25 (3rd position) ;
G98 X1.5 Y-2.5 (4th position) ;
(Initial point return) ;
G99 X3.5 (5th position) ;
(R plane return) ;
X4.5 Y-2.25 (6th position);
Y-0.75 (7th position) ;
X3.5 Y-0.5 (8th position) ;
M99 (sub program return or loop) ;
%
161
Subprograms
The local subprogram format is to end the main program with an M30 then enter the local
subprograms after the M30. Each subprogram must have an N line number at the start and
a M99 at the end that will send the program back to the next line in the main program.
162
Programming
163
Subprograms
Subprogram
%
O40011 (M98_Subprogram X,Y Locations) ;
X1.115 Y-2.75 (2nd position) ;
X3.365 Y-2.875 (3rd position) ;
X4.188 Y-3.313 (4th position) ;
X5. Y-4. (5th position) ;
164
Programming
M99 ;
%
The figure shows what this setup would look like on the machine table. For an example,
each of these six parts will need to be drilled at the center, X and Y zero.
Main Program
%
O40012 (M98_External sub multi fixture);
(G54-G59 X0 Y0 is center of each part) ;
(G54-G59 Z0 is on top of the part) ;
(T1 is a drill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54(Safe startup) ;
X0 Y0 (Rapid to 1st position) ;
S1500 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Tool offset 1 on) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
M98 P40013 (Call external subprogram) ;
G55 (Change work offset) ;
M98 P40013 (Call external subprogram) ;
G56 (Change work offset) ;
M98 P40013 (Call external subprogram) ;
G57 (Change work offset) ;
M98 P40013 (Call external subprogram) ;
G58 (Change work offset) ;
M98 P40013 (Call external subprogram) ;
G59 (Change work offset) ;
M98 P40013 (Call external subprogram) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z0.1 M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
165
Subprograms
Subprogram
%
O40013 (M98_Subprogram) ;
X0 Y0 (Move to zero of work offset) ;
G83 Z-1. Q0.2 R0.1 F15. (Begin G83) ;
G00 G80 Z0.2 M09 (Cancel canned cycle) ;
M99 ;
%
1. In the Device Manager ([LIST PROGRAM]), select the directory that you want to add
to the list.
2. Press [F3].
3. Highlight the SETTING 252 option in the menu, and then press [ENTER].
The control adds the current directory to the list of search locations in Setting 252.
To see the list of search locations, look at the values of Setting 252 on the Settings page.
166
Programming
167
Subprograms
168
Options Programming
You can contact your HFO to purchase most of these options, if your machine did not come
equipped with them.
169
Rotation and Scaling
1. Press [DIAGNOSTIC].
2. Navigate to the Parameters and then the Features tab. (Purchased options are
marked in green and their status is set as PURCHASED.)
NOTE: If an option does not have a tryout, the Status column shows FEATURE
DISABLED, and you must purchase the option to use it.
To start tryout:
170
Options Programming
F6.2: VPS Starting Screen. [1] Recently Used Templates, [2] Template Directory Window, [3]
[ENTER] to Load a Template, [4] [F4] to Switch Between Recently Used and Template
Directory.
4
3
In the template directory window, you can choose from the VPS or CUSTOM directories.
Highlight a directory name and press the [RIGHT] cursor arrow to see the directory’s
contents.
The VPS starting screen also lets you choose templates you have recently used. Press [F4]
to change to the Recently Used window and highlight a template from the list. Press
[ENTER] to load the template.
171
Visual Programming System (VPS)
In this example, we use a VPS template to program the engraving cycle from the G47
program example in this manual. The G47 description starts on page 281. VPS templates
all work in the same way: You first fill in values for the template variables, and you then
output a program.
6
5
7
172
Options Programming
4. In the Program Generation window, use the [UP] and [DOWN] cursor arrow keys to
highlight the variable rows.
5. Type a value for the highlighted variable and press ENTER. The control will display
an asterisk (*) next to variable if the default value is changed. To set the variable back
to default press the [ORIGIN] button. Press the DOWN cursor arrow key to move to
the next variable.
To generate the example engraving cycle, we use these variable values. Note that
all of the position values are given in work coordinates.
T Tool Number 1
F Feedrate 15.
X Starting X Position 2.
Y Starting Y Position 2.
Z Z Depth -0.005
6. With all of the variables entered, you can press [CYCLE START] to immediately run
the program in MDI, or F4 to output the code to either the clipboard or MDI without
running the program.
This VPS template creates a program with the specified variables to engrave the text:
173
Rigid Tapping
%
O11111 ;
(Engraving) ;
( TOOL 1 ) ;
( SPINDLE 1000 RPM / FEED 15. ) ;
( DEPTH -0.005 ) ;
T1 M06 ;
G00 G90 G54 X2. Y2. S1000 M03 ;
G43 Z0.05 H1 ;
M08 ;
G00 G90 G54 X2. Y2. ;
( TEXT ENGRAVING : TEXT TO ENGRAVE ) ;
G47 E7.5000 F15. I45. J.5 P0 R0.05 Z-0.005 (TEXT TO ENGRAVE) ;
G0 Z0.05 M09 ;
M05 ;
G91 G28 Z0. ;
G91 G28 Y0. ;
M01 ( END ENGRAVING ) ;
%
174
Options Programming
6.9 Probing
You can use an optional probe system to set offsets, check work, measure tools, and check
tools. This section describes basic probe use and troubleshooting.
175
Probing
1 3
1. Select the work probe with a tool change, or manually insert the work probe into the
spindle.
2. In MDI mode, run M69 P2 ;
This starts communication with the work probe.
3. in MDI mode: run M59 P3 ;
The probe LED flashes green [1].
4. Touch the stylus [2].
The machine makes a "beep" sound and the LED becomes red [3]. This tells you that
the work probe is started.
5. Press [RESET] to deactivate the probe.
The work probe LED turns off [1].
176
Options Programming
1. After a tool change, home, and adding tool length compensation, the system turns
on the work probe and moves to a safe start location.
2. The probe stylus moves adjacent to the surface at the required Z-Axis point to
provide a central start position [1].
3. The cycle makes two measurements, symmetrically about the start position, to
establish the surface angle [2], [3].
4. Finally, the probe stylus moves to its safe out position, tuns off the probe, and returns
home.
F6.6: Check for Square: [1] Safe Move Position, [2] First Measurement, [3] Second
Measurement
Z
X
2
1
(0.0,-0.25,-0.5)
(0.0,-0.5,-0.5) 3
(0.0,-0.75,-0.5)
Example:
%
O00010 (CHECK FOR SQUARE) ;
T20 M06 (PROBE) ;
G00 G90 G54 X0. Y0. ;
177
Probing
Macro
M-Code System Variable Value Probe
If you assign the system variable to a viewable global variable, you can see the macro value
change in the Macro Vars tab under [CURRENT COMMANDS].
For example,
M59 P3 ;
#10003=#12003 ;
The global variable #10003 shows the output from M59 P3 ; as 1.000000. This means
that either the tool probe or work probe is on.
178
Options Programming
179
Maximum Spindle Speed
3. . Press [CYCLE START] to run the program, or F4 to generate the code to the
clipboard or MDI.
1. In [MDI] mode, run M69 P2 ; to select the spindle work probe or M59 P2 ; to select
the table tool probe.
2. Run M59 P3 ; to make the probe flash.
3. To check the I/O values for the probe, press [DIAGNOSTIC] and select the
Diagnostics tab, then the I/O tab.
4. Type PROBE and press [F1] to search for I/O items that contain the word “probe.”
5. Check the table for proper probe values. For example, Output 2 with a value of 0
selects the work probe.
Numbe
Type r M-code Name Value Probe
6. If you are using the correct I/O values in your programs, but the probe does not flash
or beep, check the batteries in the probes, and then check the wired connections to
the control.
180
Options Programming
F6.8: Remote Jog Handle [1] Function Keys, [2] Cycle Start Key, [3] Cursor Keys, [4] Feed Hold
Key, [5] Screen, [6] Holster, [7] Shuttle Jog Knob, [8] Pulse Jog Knob, [9] Axis Select Knob
1
5
2 4
6
3
9 7
8
1. Function Soft Keys. These keys have different functions in different modes. The
current label appears on the screen above each key. Press the key that corresponds
to the function you want to use.
2. Cycle Start. Has the same function as [CYCLE START] on the control pendant.
3. Cursor Arrow Keys. Use these keys to navigate menus and choose jog rates.
4. Feed Hold. Has the same function as [FEED HOLD] on the control pendant.
5. Color LCD display.
6. Holster. To activate the RJH, lift it out of the holster. To deactivate the RJH, put it
back into the holster.
7. Shuttle Jog Knob. This spring-loaded knob returns to center when you let it go. The
farther from center you move the knob, the faster the selected axis moves.
8. Pulse Jog Knob. This knob works like the jog handle on the control pendant. Each
click of the knob moves the selected axis one unit of the selected jog rate.
9. Axis Selector Knob. This knob selects the axis to jog. Each position of the knob
selects a different axis. Move the knob all the way to the right to access the auxiliary
menu.
181
Remote Jog Handle
Most RJH functions are available in Handle Jog mode. In other modes, the RJH screen
displays information about the active or MDI program.
Press the [MENU] function key in most RJH modes to access this menu.
BACK
Use the [UP] and [DOWN] cursor arrow keys on the RJH to highlight a menu option, and
then press the [RIGHT] cursor arrow key to go to that option. The menu options are:
• MANUAL - JOGGING puts the RJH and the machine control in HANDLE JOG mode.
• TOOL OFFSETS puts the RJH and the machine control in TOOL OFFSET mode.
• WORK OFFSETS puts the RJH and the machine control in WORK OFFSETS mode.
• AUXILIARY MENU brings up the Auxiliary Menu for the RJH.
• UTILITY MENU brings up the Utility Menu for the RJH. This menu contains only
diagnostic information.
Press the [SPNDL] function key to access spindle controls. You can use the function keys
to command the spindle to turn clockwise, counterclockwise, or stop.
182
Options Programming
AUXILIARY MENU
To access this function on the RJH, press [OFFSET] on the control pendant and select the
Tool Offsets page, or select TOOL OFFSETS from the RJH operation mode menu (refer
to page 182).
183
Remote Jog Handle
COOLANT POS: 1
Z: 0.0000
SETL ADJST NEXT M08 MENU
• Use the [LEFT] and [RIGHT] cursor arrow keys to select the jog rate.
• Use the [UP] and [DOWN] cursor arrow keys to highlight menu options.
• Press the [NEXT] function key to change to the next tool.
• To change the tool offset, highlight the TOOL OFFSET field and use the pulse jog
knob to change the value.
• Use the jog knobs and axis selector knob to touch off the tool. Press the [SETL]
function key to record the tool length.
• To adjust the tool length, for example, if you want to subtract from the tool length the
thickness of the paper you used to touch off the tool:
184
Options Programming
To access this function on the RJH, press [OFFSET] on the control pendant and select the
Work Offsets page, or select WORK OFFSETS from the RJH operation mode menu (refer
to page 182).
X 0.0000
Y 0.0000
Z 0.0000
X 0.0000
SET ADJST WORKN MENU
• Use the [LEFT] and [RIGHT] cursor arrow keys to select the jog rate.
• To change the work offset number, press the [WORKN] function key and use the
pulse jog knob to select a new offset number. Press the [ENTER] function key to set
the new offset.
• Use the jog knobs and the axis selector knob to move the axes. When you reach the
offset position in an axis, press the [SET] function key to record the offset position.
• To adjust an offset value:
185
4th and 5th Axis Programming
- + +
360º -
±120º
• Designate the correct rotary model so that the machine control can load the correct
parameters.
• Assign an axis letter (A, B, or C) to each new axis.
• Tell the machine which physical connection (4th or 5th axis) to use for each axis.
1. Press [SETTING].
2. Select the Rotary tab.
NOTE: Make sure the machine is not in Hand Jog mode when you go to the
Rotary Selection page. The control does not allow changes to rotary
configuration in Hand Jog mode.
When you go to the Rotary Selection page to install a rotary unit for the first time, both the
4th and 5th axes are disabled and have no rotary model selections. This process assigns
a rotary model axis, and an axis letter, to the 4th and 5th axes.
186
Options Programming
NOTE: To use Tool Center Point Control (TCPC) and Dynamic Work Offsets
(DWO), your axis definitions and rotary installation must match the
ANSI standard, where the A, B, and C Axes each rotate about the X,
Y, and Z Axes, respectively. Refer to page 345 for more information
about TCP. Refer to page 345 for more information about DWO.
F6.14: Rotary Selections Page. [1] Current Rotary Selections, [2] Select New Rotaries Table.
We want to configure both the rotary (platter) and tilt (trunnion) axes. The rotary axis is
physically connected to the 5th axis at the control cabinet. We want to designate the rotary
axis C. The tilt axis is physically connected to the 4th axis at the control cabinet. We want
to designate the tilt axis A.
1. Find the nameplate on your rotary unit. Record the values in the “MODEL NO.”
(model number) and “VER” (version) fields. On our example nameplate, we find that
the model number is TR160, and the version is P4.
F6.15: Example rotary nameplate. [1] Model Number, [2] Version
TR160 1
P4 2
187
4th and 5th Axis Programming
2. On the Rotary Selection page, use the [CURSOR] keys or the jog handle to browse
the list of rotary models to find your model.
Dual-axis rotary units have two entries in the list: one for the rotary axis (ROT), and
one for the tilt axis (TLT). Be sure to select the rotary model that matches both the
model number and version on the nameplate. In the example below, the cursor
highlights the rotary axis of the model that matches our example nameplate
(TR160-P4-ROT).
F6.16: Rotary Selection Example. [1] Model Column, [2] Name Column, [3] Fifth Axis Column, [4]
Fourth Axis Column, [5] Current Selection (Highlighted).
1
2
3
4
2
3
4
188
Options Programming
5. Press [F4] to toggle the physical connection setting between 4th and 5th.
6. Press [ENTER] to save the configuration to the Select New Rotaries table, or
press [UNDO] to cancel.
7. Repeat steps 2-6 for the tilt axis, if applicable. In this example, we would now set up
the TR160 tilt axis (TR160-P4-TLT).
8. After you complete the axis configuration, press [EMERGENCY STOP], and then
press [F3] to apply the rotary parameters.
9. Cycle power.
The control keeps the default values in the base configuration and makes your custom
configuration an option in the list of available rotaries. After you define a custom
configuration for an axis, the control saves future changes to the same custom
configuration name.
F6.18: Custom Rotary Configurations [1] In the Current Rotary Selections Table, and [2]
in the Select New Rotaries Table.
The custom rotary configurations appear as options in the Select New Rotaries table. You
can select them in the same way you would select a base rotary configuration. You can also
save more than one custom configuration for the same rotary unit:
189
4th and 5th Axis Programming
You can also transfer custom rotary configurations to other machines. The control saves
custom rotary files in the User Data / My Rotary folder in the Device Manager ([LIST
PROGRAM]). You can transfer these files to the User Data / My Rotary folder on a
different machine to make those configurations available in the Select New Rotaries
table on that machine.
1. In Handle Jog mode, jog the axes to make the platter face perpendicular to its defined
axis. Use an indicator to verify perpendicularity.
2. Press [SETTING] and select the Rotary tab.
3. Highlight one of the axes in the Current Rotary Selections table.
4. Press [INSERT] to define the current axis position as the tool change offset position.
5. Type a name for your custom configuration, if prompted. You will see a prompt for a
configuration name only when you make changes to a base configuration for the first
time. Otherwise, the control saves your changes to the current custom configuration.
1. In Handle Jog mode, jog the axes to the positions you want to use as the offset
positions.
2. Press [SETTING] and select the Rotary tab.
3. Highlight one of the axes in the Current Rotary Selections table.
4. Press [ALTER] to define the current axis positions as the grid offset positions.
5. Type a name for your custom configuration, if prompted. You will see a prompt for a
configuration name only when you make changes to a base configuration for the first
time. Otherwise, the control saves your changes to the current custom configuration.
190
Options Programming
NOTE: You can also disable and enable built-in rotary axes this same way.
Enabled rotary axes appear with a filled-in checkbox in the Current Rotary
Selections table.
1
2
NOTE: The control must not be in Jog mode when you disable an axis. If you
get a Wrong Mode message, press [MEMORY] to change modes,
and then press [SETTING] to return to the Rotary page.
191
4th and 5th Axis Programming
NOTE: To use Tool Center Point Control (TCPC) and Dynamic Work Offsets
(DWO), your axis definitions and rotary installation must match the
ANSI standard, where the A, B, and C Axes each rotate about the X,
Y, and Z Axes, respectively. When you activate TCPC/DWO, you must
confirm that your configuration is correct.
F6.21: Confirm TCPC/DWO Configuration Pop-up Window. [1] A- and C-Axis Configuration, [2]
B- and C-Axis Configuration
1 2
2. If your rotary configuration matches the diagram, press [ENTER] to confirm so. This
activates TCPC/DWO.
192
Options Programming
If your configuration does not match the diagram, you must adjust it to match; for
example, you may need to redefine the axis letters or change the rotary unit’s
orientation.
3. After you activate TCPC/DWO, press F3 to save the rotary configuration. If you do
not save the configuration, then TCPC/DWO is deactivated when you turn off the
machine.
The value stored in each of these settings is the distance from the home position of a linear
axis to the center of rotation of a rotary axis. The units are in current machine units (as
defined by Setting 9).
NOTE: In machines with built-in 4th and 5th axes, such as the UMC-750, the
initial MRZP offsets are set at the factory. You do not have to set initial
values for these machines.
• You install a new rotary unit in a mill, and you want to use TCPC/DWO.
• The machine has been crashed.
• The machine’s level has changed.
• You want to make sure that the MRZP settings are correct.
MRZP adjustment consists of (2) stages: rough and finish. The rough stage establishes
MRZP values that the control uses for the finish stage. Generally, you do the rough stage
only at new installations, or when you are not sure if the current MRZP settings are close
enough to correct for the finish set procedure.
Both the rough and finish MRZP procedures use the work probe to generate values in
macro variables, which you then transfer to the correct settings. You must change the
values manually because the setting values cannot be set via macro. This protects them
from accidental change in the middle of a program.
193
4th and 5th Axis Programming
NOTE: These instructions assume that the probe system is installed and
correctly calibrated.
NOTE: You should do this procedure only at new rotary installations, or when
you are unsure if your current MRZP values are close enough to do
the finish set procedure.
To do this procedure, you need to know the diameter of the center bore in your rotary
platter.
7. Press [CYCLE START] to immediately run the probe program in MDI, or press [F4]
to choose to output the probing program to the clipboard or MDI to run later.
8. When the probing program runs, it automatically places values in macro variables
#10121, #10122, and #10123. These variables show the machine rotary zero point
axis travel distance from the home position in the X, Y, and Z Axes. Record the
values.
194
Options Programming
NOTE: Press [CURRENT COMMANDS] and select the Macro Vars tab to
view the variables. When the cursor is in the window, you can type a
macro variable number and press the [DOWN] cursor arrow key to
jump to that variable.
9. Enter the values from macro variables #10121, #10122, and #10123 into Settings
255, 256, and 257, respectively.
10. Do the Finish MRZP Set procedure.
If you want to use this procedure to check your current setting values, make sure that the
setting values you start with are close to correct to begin with. Values of zero generate an
alarm. If the settings are too far off, the probe will not contact the gauge ball when it rotates
positions during the cycle. The MRZP rough set process establishes appropriate starting
values, so if you are unsure of the current values, you should do the MRZP rough set
process first.
IMPORTANT: So that the gauge ball post does not interfere with the probe, position
the ball post at an angle of approximately 45 degrees to the X Axis.
195
4th and 5th Axis Programming
NOTE: Press [CURRENT COMMANDS] and select the Macro Vars tab to
view the variables. When the cursor is in the variable list, you can type
a macro variable number and press the [DOWN] cursor arrow key to
jump to that variable.
9. Enter the values from macro variables #10121, #10122, and #10123 into Settings
255, 256, and 257, respectively.
196
Options Programming
Offsets
1. Press [OFFSET] and select the WORK tab.
2. Jog the axes to the zero point of the workpiece. Refer to page 119 for jogging
information.
3. Highlight the axis and offset number.
4. Press [PART ZERO SET] and the current machine position is automatically stored
in that address.
CAUTION: If you use automatically generated tool length offsets, you should
leave the Z-Axis work offset values at zero. Nonzero Z-Axis work offset
values interfere with automatically generated tool length offsets, and
can cause a machine crash.
5. The X and Y work coordinate offsets are always given as negative values from
machine zero. Work coordinates are entered into the table as a number only. To
enter an X value of X-2.00 into G54, highlight the X Axis column in the G54 row,
type -2.0, and press [F1] to set the value.
G-codes
G93 inverse time feed mode must be in effect for simultaneous 4- or 5-axis motion;
however, if your mill supports Tool Center Point Control (G234), you may use G94 (feed per
minute). Refer to G93 on page 313 for more information.
Limit the post processor (CAD/CAM software) to a maximum G93 F value of 45000. This is
the maximum allowable feedrate in G93 inverse time feed mode.
197
4th and 5th Axis Programming
M-codes
IMPORTANT: When doing any non 5-axis motion, engage the rotary axes brakes.
Cutting with the brakes off causes excessive wear in the gear sets.
When in a 4 or 5 axis cut, the machine pauses between blocks. This pause is due to the
Rotary Axes brakes releasing. To avoid this dwell and allow for smoother program
execution, program an M11 and/or M13 before the G93. The M-codes disengage the
brakes, resulting in a smoother and uninterrupted flow of motion. Remember that if the
brakes are never re-engaged, they remain off indefinitely.
Settings
Settings used for 4th and 5th axis programing include:
Setting 85 - Maximum Corner Rounding should be set to 0.0500 for 5-axis cutting. Settings
lower than 0.0500 move the machine closer to an exact stop and cause uneven motion.
You can also use G187 Pn Ennnn to set the smoothness level in the program to slow the
axes down. G187 temporarily overrides Setting 85. Refer to page 344 for more information.
198
Options Programming
The control remembers the last rotary axis you selected, and [+A/C +B] or [-A/C -B]
continue to select that axis until you select the other axis. For example, after you select the
5th axis as described above, each time you press [+A/C +B] or [-A/C -B] selects the 5th
axis for jogging. To select the 4th axis again, press SHIFT and then [+A/C +B] or [-A/C -B].
Now, each subsequent press of [+A/C +B] or [-A/C -B] selects the 4th axis.
F6.23: Tilt Axis Center-of-Rotation Offset Diagram (side view): [1] Tilt Axis Center-of-Rotation
Offset, [2] Tilt Axis, [3] Plane of the Rotary Axis Platter.
1
2
199
Macros (Optional)
F6.24: Tilt Axis Center-of-Rotation Illustrated Procedure. Numeric labels in this diagram
correspond to the step numbers in the procedure.
1 3
4-5
1. Jog the tilt axis until the rotary platter is vertical. Attach a dial indicator to the machine
spindle (or other surface independent of table motion) and indicate the platter face.
Set the dial indicator to zero.
NOTE: The rotary unit’s orientation on the table determines which linear axis
to jog in these steps. If the tilt axis is parallel to the X Axis, use the Y
Axis in these steps. If the tilt axis is parallel to the Y Axis, use the X
Axis in these steps.
5. Read the new X- or Y-Axis operator position. Divide this value by 2 to determine the
tilt axis center-of-rotation offset value.
200
Options Programming
NOTE: This control feature is optional; call your HFO for information on how
to purchase it.
Macros add capabilities and flexibility to the control that are not possible with standard
G-code. Some possible uses are: families of parts, custom canned cycles, complex
motions, and driving optional devices. The possibilities are almost endless.
A Macro is any routine/subprogram that you can run multiple times. A macro statement can
assign a value to a variable, read a value from a variable, evaluate an expression,
conditionally or unconditionally branch to another point within a program, or conditionally
repeat some section of a program.
Here are a few examples of the applications for Macros. The examples are outlines and not
complete macro programs.
• Tools For Immediate, On-Table Fixturing - You can semi-automate many setup
procedures to assist the machinist. You can reserve tools for immediate situations
that you did not anticipate in your application design. For instance, suppose a
company uses a standard clamp with a standard bolt hole pattern. If you discovered,
after setup, that a fixture needs an additional clamp, and suppose that you
programmed macro subprogram 2000 to drill the bolt pattern of the clamp, then you
only need this two-step procedure to add the clamp to the fixture:
a) Jog the machine to the X, Y, and Z coordinates and angle where you want to
place the clamp. Read the position coordinates from the machine display.
b) Execute this command in MDI mode:
G65 P2000 Xnnn Ynnn Znnn Annn ;
where nnn are the coordinates determined in Step a). Here, macro 2000
(P2000) does the work since it was designed to drill the clamp bolt hole pattern
at the specified angle of A. Essentially, this is a custom canned cycle.
• Simple Patterns That Are Repeated - You can define and store repeated patterns
with macros. For example:
201
Macros (Optional)
• Probing - Using a probe enhances the capabilities of the machine, some examples
are:
G04 - Dwell
M96 Pxx Qxx - Conditional Local Branch when Discrete Input Signal is 0
Round Off
The control stores decimal numbers as binary values. As a result, numbers stored in
variables can be off by 1 least significant digit. For example, the number 7 stored in macro
variable #10000, may later be read as 7.000001, 7.000000, or 6.999999. If your statement
was
IF [#10000 EQ 7]… ;
This issue is usually a problem only when you store integers in macro variables where you
do not expect to see a fractional part later.
202
Options Programming
Look-ahead
Look-ahead is a very important concept in macro programming. The control attempts to
process as many lines as possible ahead of time in order to speed up processing. This
includes the interpretation of macro variables. For example,
#12012 = 1 ;
G04 P1. ;
#12012 = 0 ;
This is intended to turn an output on, wait 1 second, and then turn it off. However,
lookahead causes the output to turn on then immediately back off while the control
processes the dwell. G103 P1 is used to limit lookahead to 1 block. To make this example
work properly, modify it as follows:
Block Delete mode lets you selectively skip blocks of code. Use a / character at the
beginning of the program blocks that you want to skip. Press [BLOCK DELETE] to enter
the Block Delete mode. While Block Delete mode is active, the control does not execute
the blocks marked with a / character. For example:
Using a
makes the sub-program a main program when [BLOCK DELETE] is on. The program is
used as a sub-program when Block Delete is off.
203
Macros (Optional)
When a block delete token "/" is used, even if Block Delete mode is not active, the line will
block look ahead. This is useful for debugging macro processing within NC programs.
NOTE: Internal to the machine, 10000 is added to 3-digit macro variables. For
example: Macro 100 is displayed as 10100.
1. Press [CURRENT COMMANDS] and use navigation keys to get to the Macro Vars
page.
As the control interprets a program, the variable changes and results are displayed
on the Macro Vars display page.
2. Enter a value (maximum is 999999.000000) and then press [ENTER] to set the
macro variable. Press [ORIGIN] to clear macro variables, this displays the Origin
clear entry popup. Press number 1 - 3 to make a selection or press [CANCEL] to exit.
F6.25: Origin Clear Entry Popup. 1: Clear Cell - Clears the highlighted cell to zero. 2:
Clear Column - Clears the active cursor column entries to zero. 3: Clear All
Global Macros - Clears Global Macro entries (Macro 1-33, 10000-10999) to zero.
204
Options Programming
3. To search for a variable, enter the macro variable number and press the up or down
arrow.
4. The variables displayed represent values of the variables when the program runs. At
times, this may be up to 15 blocks ahead of actual machine actions. Debugging
programs is easier when a G103 P1 is inserted at the beginning of a program to limit
block buffering. A G103 without the P value can be added after the macro variable
blocks in the program. For a macro program to operate correctly it is recommended
that the G103 P1 be left in the program during loading of variables. For more details
about G103 see the G-code section of the manual.
To set which two macro variables display in the Timers And Counters window:
On the Timers And Counters window, the field to the right of the entered Macro Label
(#1 or #2) name displays the assigned variable value.
The next (2) tables indicate the mapping of the alphabetic address variables to the numeric
variables used in a macro subprogram.
205
Macros (Optional)
Alphabetic Addressing
T6.2: Alphabetic Address Table
A 1 N -
B 2 O -
C 3 P -
D 7 Q 17
E 8 R 18
F 9 S 19
G - T 20
H 11 U 21
I 4 V 22
J 5 W 23
K 6 X 24
L - Y 25
M 13 Z 26
A 1 K 12 J 23
B 2 I 13 K 24
C 3 J 14 I 25
I 4 K 15 J 26
J 5 I 16 K 27
206
Options Programming
K 6 J 17 I 28
I 7 K 18 J 29
J 8 I 19 K 30
K 9 J 20 I 31
I 10 K 21 J 32
J 11 I 22 K 33
Arguments accept any floating-point value to four decimal places. If the control is in metric,
it will assume thousandths (.000). In example below, local variable #1 will receive .0001. If
a decimal is not included in an argument value, such as:
G65 P9910 A1 B2 C3 ;
A .0001 J .0001 S 1.
B .0002 K .0001 T 1.
C .0003 L 1. U .0001
D 1. M 1. V .0001
E 1. N - W .0001
F 1. O - X .0001
G - P - Y .0001
H 1. Q .0001 Z .0001
I .0001 R .0001
207
Macros (Optional)
All 33 local macro variables can be assigned values with arguments by using the alternate
addressing method. The following example shows how to send two sets of coordinate
locations to a macro subprogram. Local variables #4 through #9 would be set to .0001
through .0006 respectively.
Example:
Macro constants are floating-point values placed in a macro expression. They can be
combined with addresses A-Z, or they can stand alone when used within an expression.
Examples of constants are 0.0001, 5.3 or -10.
Local Variables
Local variables range between #1 and #33. A set of local variables is available at all times.
When a call to a subprogram with a G65 command is executed, local variables are saved
and a new set is available for use. This is called nesting of local variables. During a G65
call, all new local variables are cleared to undefined values and any local variables that
have corresponding address variables in the G65 line are set to G65 line values. Below is
a table of the local variables along with the address variable arguments that change them:
Variable: 1 2 3 4 5 6 7 8 9 10 11
Address: A B C I J K D E F H
Alternate: I J K I J
Variable: 12 13 14 15 16 17 18 19 20 21 22
Address: M Q R S T U V
Alternate: K I J K I J K I J K I
Variable: 23 24 25 26 27 28 29 30 31 32 33
Address: W X Y Z
Alternate: J K I J K I J K I J K
208
Options Programming
Variables 10, 12, 14- 16 and 27- 33 do not have corresponding address arguments. They
can be set if a sufficient number of I, J and K arguments are used as indicated above in
the section about arguments. Once in the macro subprogram, local variables can be read
and modified by referencing variable numbers 1- 33.
Calling a subprogram via an M97 or M98 does not nest the local variables. Any local
variables referenced in a subprogram called by an M98 are the same variables and values
that existed prior to the M97 or M98 call.
Global Variables
Global variables are accessible at all times and remain in memory when power is turned
off. There is only one copy of each global variable. Global variables are numbered
#10000-#10999. Three legacy ranges: (#100-#199, #500-#699, and #800-#999) are
included. The legacy 3 digit macro variables begin at the #10000 range; ie., macro variable
#100 is displayed as #10100.
NOTE: Using variable #100 or #10100 in a program the control will access the
same data. Using either variable number is acceptable.
Sometimes, factory-installed options use global variables, for example, probing and pallet
changers, etc. Refer to the Macro Variables Table on page 209 for global variables and
their use.
CAUTION: When you use a global variable, make sure that no other programs on
the machine use the same global variable.
System Variables
System variables let you interact with a variety of control conditions. System variable values
can change the function of the control. When a program reads a system variable, it can
modify its behavior based on the value in the variable. Some system variables have a Read
Only status; this means that you cannot modify them. Refer to the Macro Variables Table
on page 209 for a list of system variables and their use.
209
Macros (Optional)
#10700- #10799 #700- #749 Hidden variables for internal use only
#10709 #709 Used for the Fixture Clamp Input. Do not use for general
purpose.
#1064- #1068 #1064- #1068 Maximum axis loads for X, Y, Z, A, and B Axes, respectively
#1080- #1087 #1080- #1087 Raw analog to digital inputs (read only)
#1090- #1098 #1090- #1098 Filtered analog to digital inputs (read only)
#1098 #1098 Spindle load with Haas vector drive (read only)
#1264- #1268 #1264- #1268 Maximum axis loads for C, U, V, W, and T-axes respectively
210
Options Programming
#1801- #2000 #1801- #2000 Maximum recorded vibrations of tools 1 through 200
211
Macros (Optional)
#3201- #3400 #3201- #3400 Actual diameter for tools 1 through 200
#3401- #3600 #3401- #3600 Programmable coolant positions for tools 1 through 200
212
Options Programming
#5801- #5900 #5801- #5900 Tool load monitor maximum load sensed so far
#7001- #7006 #7001- #7006 G110 (G154 P1) additional work offsets
#7021- #7026 #7021- #7026 G111 (G154 P2) additional work offsets
#7041- #7386 #7041- #7386 G112 - G129 (G154 P3 - P20) additional work offsets
#8501 #8501 ATM percent of available tool life of all tools in the group
#8502 #8502 ATM total available tool usage count in the group
#8503 #8503 ATM total available tool hole count in the group
213
Macros (Optional)
#8504 #8504 ATM total available tool feed time (in seconds) in the group
#8505 #8505 ATM total available tool total time (in seconds) in the group
#8511 #8511 ATM percent of available tool life of the next tool
#8514 #8514 ATM available feed time of the next tool (in seconds)
#8515 #8515 ATM available total time of the next tool (in seconds)
214
Options Programming
#9016- #9031 #9016- #9031 Reserved (duplicate of axis thermal accumulator from
spindle)
#14041- #14386 N/A G110(G154 P3- G154 P20) additional work offsets
#14421- #15966 N/A G110(G154 P22- G154 P99) additional work offsets
215
Macros (Optional)
NOTE: If the machine does not have a probe installed, you can use these
variables as general-purpose variables saved on power off.
216
Options Programming
#13000-#13063 #1080-#1087 Raw and Filtered analog to digital inputs (read only)
#1090-#1097
Specific input values can be read from within a program. The format is #11nnn where nnn
is the Input Number. Press [DIAGNOSTIC] and select the I/O tab to see the Input and
Output numbers for different devices.
Example:
#10000=#11018
This example records the state of #11018, which refers to Input 18 (M-Fin_Input), to
variable #10000.
The I/O PCB includes a set of (2) available inputs (100 (#11100) and 101 (#11101)) at TB5.
-+ -+
43 2 1
TB5
217
Macros (Optional)
Devices connected to these inputs must have their own power supply. When a device
applies 10-25 V between Pins 1 and 2, the input 100 bit (Macro #11100) changes from 1 to
0. When a device applies 10-25 V between pins 3 and 4, the input 101 (Macro #11101) bit
changes from 1 to 0.
TB5 1 4
1 100
2 2 3 #11100
3
4
10-25V
1 4
101
2 3 #11101
218
Options Programming
When this is done, Alarm flashes at the bottom of the display and the text in the next
comment is placed into the alarm list. The alarm number (in this example, 15) is added to
1000 and used as an alarm number. If an alarm is generated in this manner all motion stops
and the program must be reset to continue. Programmable alarms are always numbered
between 1000 and 1999.
#3001-#3002 Timers
Two timers can be set to a value by assigning a number to the respective variable. A
program can then read the variable and determine the time passed since the timer was set.
Timers can be used to imitate dwell cycles, determine part-to-part time or wherever
time-dependent behavior is desired.
• #3001 Millisecond Timer - The millisecond timer represents the system time after
power on in number of milliseconds. The whole number returned after accessing
#3001 represents the number of milliseconds.
• #3002 Hour Timer - The hour timer is similar to the millisecond timer except that the
number returned after accessing#3002 is in hours. The hour and millisecond timers
are independent of each other and can be set separately.
...
#3003=1 ;
G54 G00 G90 X0 Y0 ;
S2000 M03 ;
G43 H01 Z.1 ;
G81 R.1 Z-0.1 F20. ;
#3003=0 ;
T02 M06 ;
G43 H02 Z.1 ;
S1800 M03 ;
G83 R.1 Z-1. Q.25 F10. ;
X0. Y0. ;
%
219
Macros (Optional)
The first bit disables [FEED HOLD]. If variable #3004 is set to 1, [FEED HOLD] is disabled
for the program blocks that follow. Set #3004 to 0 to enable [FEED HOLD] again. For
example:
...
(Approach code - [FEED HOLD] allowed) ;
#3004=1 (Disables [FEED HOLD]) ;
(Non-stoppable code - [FEED HOLD] not allowed) ;
#3004=0 (Enables [FEED HOLD]) ;
(Depart code - [FEED HOLD] allowed) ;
...
E = Enabled D = Disabled
0 E E E
1 D E E
2 E D E
3 D D E
4 E E D
5 D E D
6 E D D
7 D D D
NOTE: When the feed rate override variable is set (#3004 = 2), the control will
set the feed rate override to 100% (default). During #3004 = 2 the
control will show 100% in red bold text on the display until the variable
is reset. Once the feed rate override is reset (#3004 = 0) the feed rate
will be restored to the previous value before setting the variable.
220
Options Programming
NOTE: For the Classic Haas Control to process system variable #3030=1
correctly, it is necessary to limit the lookahead to 1 block using a G103
P1 before the #3030=1 code.
G-Codes Group number is listed next to it's description in the G-Code section.
Example:
When a macro program reads the group code, the program can change the behavior of the
G-code. If #4003 contains 91, then a macro program could determine that all moves should
be incremental rather than absolute. There is no associated variable for group zero; group
zero G codes are Non-modal.
221
Macros (Optional)
The value of #5063 (Z) has tool length compensation applied to it.
222
Options Programming
223
Macros (Optional)
You can test #6198 in a program to detect the control version, and then conditionally run
program code for that control version. For example:
%
IF[#6198 EQ 1000000] GOTO5 ;
(Non-NGC code) ;
GOTO6 ;
N5 (NGC code) ;
N6 M30 ;
%
In this program, if the value stored in #6198 is equal to 1000000, go to Next Generation
Control compatible code then end the program. If if the value stored in #6198 is not equal
to 1000000, run the non-NGC program and then end the program.
224
Options Programming
#8504 ATM. Total available tool feed time (in seconds) in the
group.
#8505 ATM. Total available tool total time (in seconds) in the
group.
#8514 ATM. Available feed time of the next tool (in seconds).
#8515 ATM. Available total time of the next tool (in seconds).
225
Macros (Optional)
NOTE: Macro variables #1601-#2800 give access to the same data for
individual tools as #8550-#8567 give for Tool Group tools.
226
Options Programming
Specific output values can be read, or written to, from within a program. The format is
#12nnn where nnn is the Output Number.
Example:
#10000=#12018 ;
This example records the state of #12018, which refers to Input 18 (Coolant Pump Motor),
to variable #10000.
Drill 1
Tap 2
Shell Mill 3
227
Macros (Optional)
End Mill 4
Spot Drill 5
Ball Nose 6
Probe 7
Variables are decimal values that are represented as floating point numbers. If a variable
has never been used, it can take on a special undefined value. This indicates that it has
not been used. A variable can be set to undefined with the special variable #0. #0 has
the value of undefined or 0.0 depending on its context. Indirect references to variables can
be accomplished by enclosing the variable number in brackets: #[<Expression>]
The expression is evaluated and the result becomes the variable accessed. For example:
#1=3 ;
#[#1]=3.5 + #1 ;
A variable can be used in place of a G-code address where address refers to the letters A-Z.
In the block:
N1 G0 G90 X1.0 Y0 ;
#7=0 ;
#11=90 ;
#1=1.0 ;
#2=0.0 ;
228
Options Programming
sets addresses G, X, Y and F to 1, 1.5, 3.7 and 20.0 respectively and thus instructs the
control to move linearly, G01, to position X=1.5 Y=3.7 at a feed rate of 20 (in/mm). Macro
syntax allows the address values to be replaced with any variable or expression.
#1=1 ;
#2=1.5 ;
#3=3.7 ;
#4=20 ;
G#1 X[#1+#2] Y#3 F#4 ;
<address><variable> A#101
<address><-><variable> A-#101
<address>[<expression>] Z[#5041+3.5]
<address><->[<expression>] Z-[SIN[#1]]
If the variable value does not agree with the address range, the control generates an alarm.
For example, this code causes a range error alarm because the tool diameter numbers
range from 0 to 200.
#1=250 ;
D#1 ;
When a variable or expression is used in place of an address value, the value is rounded
to the least significant digit. If #1=.123456, then G01 X#1 would move the machine tool to
.1235 on the X Axis. If the control is in the metric mode, the machine would be moved to
.123 on the X axis.
When an undefined variable is used to replace an address value, that address reference is
ignored. For example, if #1 is undefined, then the block
becomes
G00 X1.0 ;
229
Macros (Optional)
Macro Statements
Macro statements are lines of code that allow the programmer to manipulate the control
with features similar to any standard programming language. Included are functions,
operators, conditional and arithmetic expressions, assignment statements, and control
statements.
Functions and operators are used in expressions to modify variables or values. The
operators are essential to expressions while functions make the programmer’s job easier.
Functions
Functions are built-in routines that the programmer has available to use. All functions have
the form <function_name>[argument] and return floating-point decimal values. The
functions provided in the Haas control are as follows:
230
Options Programming
Notes on Functions
The function ROUND works differently depending on the context that it is used. When used
in arithmetic expressions, any number with a fractional part greater than or equal to .5 is
rounded up to the next whole integer; otherwise, the fractional part is truncated from the
number.
%
#1=1.714 ;
#2=ROUND[#1] (#2 is set to 2.0) ;
#1=3.1416 ;
#2=ROUND[#1] (#2 is set to 3.0) ;
%
When ROUND is used in an address expression, metric and angle dimensions are rounded
to three-place precision. For inch dimensions, four-place precision is the default.
%
#1= 1.00333 ;
G00 X[ #1 + #1 ] ;
(Table X Axis moves to 2.0067) ;
G00 X[ ROUND[ #1 ] + ROUND[ #1 ] ] ;
(Table X Axis moves to 2.0067) ;
G00 A[ #1 + #1 ] ;
(Axis rotates to 2.007) ;
G00 A[ ROUND[ #1 ] + ROUND[ #1 ] ] ;
(Axis rotates to 2.007) ;
D[1.67] (Diameter rounded up to 2) ;
%
Operators
Operators have (3) categories: Boolean, Arithmetic, and Logical.
231
Macros (Optional)
Boolean Operators
Boolean operators always evaluate to 1.0 (TRUE) or 0.0 (FALSE). There are six Boolean
operators. These operators are not restricted to conditional expressions, but they most
often are used in conditional expressions. They are:
EQ - Equal To
NE - Not Equal To
GT - Greater Than
LT - Less Than
Here are four examples of how Boolean and Logical operators can be used:
Example Explanation
IF [#10001 EQ 0.0] GOTO100 ; Jump to block 100 if value in variable #10001 equals
0.0.
WHILE [#10101 LT 10] DO1 ; While variable #10101 is less than 10 repeat loop
DO1..END1.
IF [#10001 AND #10002 EQ If variable #10001 AND variable #10002 are equal to
#10003] GOTO1 ; the value in #10003 then control jumps to block 1.
Arithmetic Operators
Arithmetic operators consist of unary and binary operators. They are:
* - Multiplication #10001=#10002*#10003
232
Options Programming
/ - Division #10001=#10002/4
Logical Operators
Logical operators are operators that work on binary bit values. Macro variables are floating
point numbers. When logical operators are used on macro variables, only the integer
portion of the floating point number is used. The logical operators are:
Examples:
%
#10001=1.0 ;
#10002=2.0 ;
#10003=#10001 OR #10002 ;
%
Here the variable #10003 will contain 3.0 after the OR operation.
%
#10001=5.0 ;
#10002=3.0 ;
IF [[#10001 GT 3.0] AND [#10002 LT 10]] GOTO1 ;
%
Here control transfers to block 1 because #10001 GT 3.0 evaluates to 1.0 and #10002
LT 10 evaluates to 1.0, thus 1.0 AND 1.0 is 1.0 (TRUE) and the GOTO occurs.
NOTE: To achieve your desired results, be very careful when you use logical
operators.
Expressions
Expressions are defined as any sequence of variables and operators surrounded by the
square brackets [ and ]. There are two uses for expressions: conditional expressions or
arithmetic expressions. Conditional expressions return FALSE (0.0) or TRUE (any non
zero) values. Arithmetic expressions use arithmetic operators along with functions to
determine a value.
233
Macros (Optional)
Arithmetic Expressions
An arithmetic expression is any expression using variables, operators, or functions. An
arithmetic expression returns a value. Arithmetic expressions are usually used in
assignment statements, but are not restricted to them.
%
#10001=#10045*#10030 ;
#10001=#10001+1 ;
X[#10005+COS[#10001]] ;
#[#10200+#10013]=0 ;
%
Conditional Expressions
In the Haas control, all expressions set a conditional value. The value is either 0.0 (FALSE)
or the value is nonzero (TRUE). The context in which the expression is used determines if
the expression is a conditional expression. Conditional expressions are used in the IF and
WHILE statements and in the M99 command. Conditional expressions can make use of
Boolean operators to help evaluate a TRUE or FALSE condition.
The M99 conditional construct is unique to the Haas control. Without macros, M99 in the
Haas control has the ability to branch unconditionally to any line in the current subprogram
by placing a P code on the same line. For example:
branches to line N10. It does not return control to the calling subprogram. With macros
enabled, M99 can be used with a conditional expression to branch conditionally. To branch
when variable #10000 is less than 10 we could code the above line as follows:
In this case, the branch occurs only when #10000 is less than 10, otherwise processing
continues with the next program line in sequence. In the above, the conditional M99 can be
replaced with
Assignment Statements
Assignment statements let you modify variables. The format of the assignment statement
is:
<expression>=<expression>
The expression on the left of the equal sign must always refer to a macro variable, whether
directly or indirectly. This macro initializes a sequence of variables to any value. This
example uses both direct and indirect assignments.
234
Options Programming
%
O50001 (INITIALIZE A SEQUENCE OF VARIABLES) ;
N1 IF [#2 NE #0] GOTO2 (B=base variable) ;
#3000=1 (Base variable not given) ;
N2 IF [#19 NE #0] GOTO3 (S=size of array) ;
#3000=2 (Size of array not given) ;
N3 WHILE [#19 GT 0] DO1 ;
#19=#19-1 (Decrement count) ;
#[#2+#19]=#22 (V=value to set array to) ;
END1 ;
M99 ;
%
You could use the above macro to initialize three sets of variables as follows:
%
G65 P300 B101. S20 (INIT 101..120 TO #0) ;
G65 P300 B501. S5 V1. (INIT 501..505 TO 1.0) ;
G65 P300 B550. S5 V0 (INIT 550..554 TO 0.0) ;
%
Control Statements
Control statements allow the programmer to branch, both conditionally and unconditionally.
They also provide the ability to iterate a section of code based on a condition.
The GOTO rounds the variable or expression result that is associated with the Computed
branch. For instance, if variable #1 contains 4.49 and the program contains a GOTO#1
command, the control attempts to transfer to a block that contains N4. If #1 contains 4.5,
then the control transfers to a block that contains N5.
235
Macros (Optional)
Example: You could develop this code skeleton into a program that adds serial numbers to
parts:
%
O50002 (COMPUTED BRANCHING) ;
(D=Decimal digit to engrave) ;
;
IF [[#7 NE #0] AND [#7 GE 0] AND [#7 LE 9]] GOTO99 ;
#3000=1 (Invalid digit) ;
;
N99;
#7=FIX[#7] (Truncate any fractional part) ;
;
GOTO#7 (Now engrave the digit) ;
;
N0 (Do digit zero) ;
M99 ;
;
N1 (Do digit one) ;
;
M99 ;
%
With the above subprogram, you would use this call to engrave the fifth digit:
G65 P9200 D5 ;
Computed GOTOs using expression could be used to branch processing based on the
results of reading hardware inputs. For example:
%
GOTO [[#1030*2]+#1031] ;
N0(1030=0, 1031=0) ;
...M99 ;
N1(1030=0, 1031=1) ;
...M99 ;
N2(1030=1, 1031=0) ;
...M99 ;
N3(1030=1, 1031=1) ;
...M99 ;
%
236
Options Programming
As discussed, <conditional expression> is any expression that uses any of the six Boolean
operators EQ, NE, GT,LT, GE, or LE. The brackets surrounding the expression are
mandatory. In the Haas control, it is not necessary to include these operators. For example:
IF [#1] GOTO5 ;
In this statement, if the variable #1 contains anything but 0.0, or the undefined value #0,
then branching to block 5 occurs; otherwise, the next block is executed.
In the Haas control, a <conditional expression> is also used with the M99 Pnnnn format.
For example:
Here, the conditional is for the M99 portion of the statement only. The machine tool is
instructed to go to X0, Y0 whether or not the expression evaluates to True or False. Only
the branch, M99, is executed based on the value of the expression. It is recommended that
the IF GOTO version be used if portability is desired.
NOTE: To preserve compatibility with FANUC syntax THEN may not be used
with GOTOn.
This format is traditionally used for conditional assignment statements such as:
Variable #590 is set to zero when the value of #590exceeds 100.0. In the Haas control, if
a conditional evaluates to FALSE (0.0), then the remainder of the IF block is ignored. This
means that control statements can also be conditioned so that we could write something
like:
237
Macros (Optional)
This executes a linear motion only if variable #1 has been assigned a value. Another
example is:
This says that if variable #1 (address A) is greater than or equal to 180, then set variable
#101 to zero and return from the subprogram.
%
N1 IF [#9NE#0] GOTO3 (TEST FOR VALUE IN F) ;
N2 #3000=11(NO FEED RATE) ;
N3 (CONTINUE) ;
%
M98 P2000 L5 ;
This is limited since you cannot terminate execution of the subprogram on condition.
Macros allow flexibility with the WHILE-DO-END construct. For example:
%
WHILE [<conditional expression>] DOn ;
<statements> ;
ENDn ;
%
This executes the statements between DOn and ENDn as long as the conditional expression
evaluates to True. The brackets in the expression are necessary. If the expression
evaluates to False, then the block afterENDn is executed next. WHILE can be abbreviated
toWH. The DOn-ENDn portion of the statement is a matched pair. The value of n is 1-3. This
means that there can be no more than three nested loops per subprogram. A nest is a loop
within a loop.
Although nesting of WHILE statements can only be up to three levels, there really is no limit
since each subprogram can have up to three levels of nesting. If there is a need to nest to
a level greater than 3, then the segment containing the three lowest levels of nesting can
be made into a subprogram thus overcoming the limitation.
238
Options Programming
If two separate WHILE loops are in a subprogram, they can use the same nesting index.
For example:
%
#3001=0 (WAIT 500 MILLISECONDS) ;
WH [#3001 LT 500] DO1 ;
END1 ;
<Other statements>
#3001=0 (WAIT 300 MILLISECONDS) ;
WH [#3001 LT 300] DO1 ;
END1 ;
%
You can use GOTO to jump out of a region encompassed by aDO-END, but you cannot use
a GOTOto jump into it. Jumping around inside a DO-END region using a GOTO is allowed.
An infinite loop can be executed by eliminating the WHILE and expression. Thus,
%
DO1 ;
<statements>
END1 ;
%
%
WH [#1] D01 ;
END1 ;
%
In this example, an alarm results indicating no Then was found;Then refers to the D01.
ChangeD01 (zero) to DO1 (letter O).
Formatted Output
The DPRNT statement lets programs send formatted text to the serial port. DPRNT can print
any text and any variable to the serial port. The form of the DPRNT statement is as follows:
DPRNT must be the only command in the block. In the previous example, <text> is any
character from A to Z or the letters (+,-,/,*, and the space). When an asterisk is output, it is
converted to a space. The <#nnnn[wf]> is a variable followed by a format. The variable
number can be any macro variable. The format [wf] is required and consists of two digits
within square brackets. Remember that macro variables are real numbers with a whole part
and a fractional part. The first digit in the format designates the total places reserved in the
output for the whole part. The second digit designates the total places reserved for the
fractional part. The control can use any number from 0-9 for both whole and fractional parts.
A decimal point is printed out between the whole part and the fractional part. The fractional
part is rounded to the least significant place. When zero places are reserved for the
fractional part, then no decimal point is printed out. Trailing zeros are printed if there is a
fractional part. At least one place is reserved for the whole part, even when a zero is used.
If the value of the whole part has fewer digits than have been reserved, then leading spaces
are output. If the value of the whole part has more digits than has been reserved, then the
field is expanded so that these numbers are printed.
DPRNT[ ] Example:
Code Output
#1= 1.5436 ;
#1=123.456789 ;
DPRNT[X-#1[35]] ; X-123.45679 ;
DPRNT[ ] Settings
Setting 261 determines the destination for DPRNT statements. You can choose to output
them to a file, or to a TCP port. Settings 262 and 263 specify the destination for DPRNT
output. Refer to the Settings section of this manual for more information.
240
Options Programming
Execution
DPRNT statements are executed at look-ahead time. This means that you must be careful
about where the DPRNT statements appear in the program, particularly if the intent is to print
out.
G103 is useful for limiting lookahead. If you wanted to limit look-ahead interpretation to one
block, you would include this command at the start of your program: This causes the control
to look ahead (2) blocks.
G103 P1 ;
To cancel the lookahead limit, change the command to G103 P0. G103 cannot be used
when cutter compensation is active.
Editing
Improperly structured or improperly placed macro statements will generate an alarm. Be
careful when editing expressions; brackets must be balanced.
The DPRNT[ ] function can be edited much like a comment. It can be deleted, moved as
a whole item, or individual items within the bracket can be edited. Variable references and
format expressions must be altered as a whole entity. If you wanted to change [24] to [44],
place the cursor so that [24] is highlighted, enter [44] and press [ENTER]. Remember, you
can use the jog handle to maneuver through long DPRNT[ ] expressions.
Addresses with expressions can be somewhat confusing. In this case, the alphabetic
address stands alone. For instance, this block contains an address expression in X:
Here, the X and brackets stand-alone and are individually editable items. It is possible,
through editing, to delete the entire expression and replace it with a floating-point constant.
The above block will result in an alarm at runtime. The correct form looks as follows:
NOTE: There is no space between the X and the Zero (0). REMEMBER when
you see an alpha character standing alone it is an address expression.
Arguments italicized in square brackets are optional. See the Programming section for
more details on macro arguments.
When a subprogram is called, the control looks for the subprogram on the active drive or
the path to the program. If the subprogram cannot be located on the active drive, the control
looks in the drive designated by Setting 251. Refer to the Setting Up Search Locations
section for more information on subprogram searching. An alarm occurs if the control does
not find the subprogram.
Example 1:
%
G65 P1000 (Call subprogram O01000 as a macro) ;
M30 (Program stop) ;
O01000 (Macro Subprogram) ;
...
M99 (Return from Macro Subprogram) ;
%
In Example 2, the program LightHousing.nc is called using the path that it is in.
Example 2:
%
G65 P15 A1. B1.;
G65 (/Memory/LightHousing.nc) A1. B1.;
In Example 3, subprogram 9010 is designed to drill a sequence of holes along a line whose
slope is determined by the X and Y arguments that are passed to it in the G65 command
line. The Z drill depth is passed as Z, the feed rate is passed as F, and the number of holes
to be drilled is passed as T. The line of holes is drilled starting from the current tool position
when the macro subprogram is called.
Example 3:
242
Options Programming
NOTE: The subprogram program O09010 should reside on the active drive or
on a drive designated by Setting 252.
%
G00 G90 X1.0 Y1.0 Z.05 S1000 M03 (Position tool) ;
G65 P9010 X.5 Y.25 Z.05 F10. T10 (Call O09010) ;
M30 ;
O09010 (Diagonal hole pattern) ;
F#9 (F=Feedrate) ;
WHILE [#20 GT 0] DO1 (Repeat T times) ;
G91 G81 Z#26 (Drill To Z depth) ;
#20=#20-1 (Decrement counter) ;
IF [#20 EQ 0] GOTO5 (All holes drilled) ;
G00 X#24 Y#25 (Move along slope) ;
N5 END1 ;
M99 (Return to caller) ;
%
6.14.13 Aliasing
Aliased codes are user defined G and M-codes that reference a macro program. There are
10 G alias codes and 10 M alias codes available to users. Program numbers 9010 through
9019 are reserved for G-code aliasing and 9000 through 9009 are reserved for M-code
aliasing.
When aliasing, variables can be passed with a G-code; variables cannot be passed with an
M-code.
Here, an unused G-code has been substituted, G06 for G65 P9010. In order for the
previous block to work, the value associated with subprogram 9010 must be set to 06.
Refer to the Setting Aliases section for how to setup aliases.
NOTE: G00, G65, G66, and G67 cannot be aliased. All other codes between 1
and 255 can be used for aliasing.
If a macro call subprogram is set to a G-code and the subprogram is not in memory, then
an alarm is given. Refer to the G65 Macro Subprogram Call section on page 241 on how to
locate the subprogram. An alarm occurs if the sub-program is not found.
243
Macros (Optional)
Setting Aliases
The G-code or M-code alias setup is done on the Alias Codes window. To setup an alias:
244
Options Programming
245
Macros (Optional)
246
G-codes
Chapter 7: G-codes
7.1 Introduction
This chapter gives detailed descriptions of the G-codes that you use to program your
machine.
CAUTION: The sample programs in this manual have been tested for accuracy,
but they are for illustrative purposes only. The programs do not define
tools, offsets, or materials. They do not describe workholding or other
fixturing. If you choose to run a sample program on your machine, do
so in Graphics mode. Always follow safe machining practices when
you run an unfamiliar program.
247
Introduction
248
G-codes
249
Introduction
250
G-codes
251
Introduction
About G-codes
G-codes tell the machine tool what type of action to do, such as:
• Rapid moves
• Move in a straight line or arc
• Set tool information
• Use letter addressing
• Define axis and beginning and ending positions
• Pre-set series of moves that bore a hole, cut a specific dimension, or a contour
(canned cycles)
G-code commands are either modal or non-modal. A modal G-code stays in effect until the
end of the program or until you command another G-code from the same group. A
non-modal G-code affects only the line it is in; it does not affect the next program line.
Group 00 codes are non-modal; the other groups are modal.
For a description of basic programming, refer to the basic programming section of the
Programming chapter, starting on page 134.
252
G-codes
NOTE: A program block can contain more than one G-code, but you cannot
put two G-codes from the same group in the same program block.
Canned Cycles
Canned cycles are G-codes that do repetitive operations such as drilling, tapping, and
boring. You define a canned cycle with alphabetic address codes. While the canned cycle
is active, the machine does the defined operation every time you command a new position,
unless you specify not to.
You can program canned cycle X and Y positions in either absolute (G90) or incremental
(G91).
Example:
%
G81 G99 Z-0.5 R0.1 F6.5 (This drills one hole);
(at the present location) ;
G91 X-0.5625 L9 (This drills 9 more holes 0.5625);
(equally spaced in the X-negative direction) ;
%
There are (3) possible ways for a canned cycle to behave in the block in which you
command it:
• If you command an X/Y position in the same block as the canned cycle G-code, the
canned cycle executes. If Setting 28 is OFF, the canned cycle executes in the same
block only if you command an X/Y position in that block.
• If Setting 28 is ON, and you command a canned cycle G-code with or without an X/Y
position in the same block, the canned cycle executes in that block—either at the
position where you commanded the canned cycle, or at the new X/Y position.
• If you include a loop count of zero (L0) in the same block as the canned cycle
G-code, the canned cycle does not execute in that block. The canned cycle does not
execute regardless of Setting 28 and whether or not the block also contains an X/Y
position.
NOTE: Unless otherwise noted, the program examples given here assume
that Setting 28 is ON.
When a canned cycle is active, it repeats at every new X/Y position in the program. In the
example above, with each incremental move of -0.5625 in the X axis, the canned cycle
(G81) drills a 0.5" deep hole. The L address code in the incremental position command
(G91) repeats this operation (9) times.
253
Introduction
Example:
%
X1.25 Y-0.75 (center location of bolt hole pattern) ;
G81 G99 Z-0.5 R0.1 F6.5 L0;
(L0 on the G81 line will not drill a hole) ;
G70 I0.75 J10. L6 (6-hole bolt hole circle) ;
%
The R plane value and the Z depth value are important canned cycle address codes. If you
specify these addresses in a block with XY commands, the control does the XY move, and
it does all of the subsequent canned cycles with the new R or Z value.
G98 and G99 change the way the canned cycles operate. When G98 is active, the Z-Axis
will return to the initial start plane at the completion of each hole in the canned cycle. This
allows for positioning up and around areas of the part and/or clamps and fixtures.
When G99 is active, the Z-Axis returns to the R (rapid) plane after each hole in the canned
cycle for clearance to the next XY location. Changes to the G98/G99 selection can also be
made after the canned cycle is commanded, which will affect all later canned cycles.
A P address is an optional command for some canned cycles. This is a programmed pause
at the bottom of the hole to help break chips, provide a smoother finish, and relieve any tool
pressure to hold closer tolerance.
NOTE: A P address used for one canned cycle is used in others unless
canceled (G00, G01, G80 or the [RESET] button).
You must define an S (spindle speed) command in or before the canned cycle G-code
block.
Tapping in a canned cycle needs a feed rate calculated. The feed formula is:
254
G-codes
Canned cycles also benefit from the use of Setting 57. If this setting is ON, the machine
stops after the X/Y rapids before it moves the Z Axis. This is useful to avoid nicking the part
when the tool exits the hole, especially if the R plane is close to the part surface.
NOTE: The Z, R, and F addresses are required data for all canned cycles.
G80 cancels all canned cycles. G00 orG01 code also cancel a canned cycle. A canned
cycle stays active until G80, G00, or G01 cancels it.
This is an example of a program that uses an incrementally looped drilling canned cycle.
NOTE: The sequence of drilling used here is designed to save time and to
follow the shortest path from hole to hole.
F7.1: G81 Drilling Canned Cycle: [R] R Plane, [Z] Z Plane, [1] Rapid, [2] Feed.
1.000
2.000
3.000
1
0
0
2
1.000
2.000
3.000
R
Z
X0. Y0.
%
O60810 (Drilling grid plate 3x3 holes) ;
(G54 X0 Y0 is at the top-left of part) ;
(Z0 is at the top of the part) ;
(T1 is a drill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
255
Introduction
If you put an L0 on a canned cycle line, you can make an X, Y move without the Z-Axis
canned operation. This is a good way to avoid obstacles in the X/Y plane.
Consider a 6" square aluminum block, with a 1" by 1" deep flange on each side. The print
calls for two holes centered on each side of the flange. You use a G81 canned cycle to
make the holes. If you simply command the hole positions in the drill canned cycle, the
control takes the shortest path to the next hole position, which puts the tool through the
corner of the workpiece. To prevent this, command a position past the corner, so the move
to the next hole position does not go through the corner. The drill canned cycle is active,
but you do not want a drill cycle at that position, so use L0 in this block.
256
G-codes
F7.2: Canned Cycle Obstacle Avoidance. The program drills holes [1] and [2], then moves to
X5.5. Because of the L0 address in this block, there is no drill cycle in this position. Line
[A] shows the path that the canned cycle would follow without the obstacle avoidance line.
The next move is in the Y Axis only to the position of the third hole, where the machine
does another drill cycle.
Y X5.5 L0
1 2
X
A
Y-2.
%
O60811 (X Y OBSTACLE AVOIDANCE) ;
(G54 X0 Y0 is at the top-left of part);
(Z0 is at the top of the part) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X2. Y-0.5(Rapid to first position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 M08 (Activate tool offset 1) ;
(Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G81 Z-2. R-0.9 F15. (Begin G81 & Drill 1st hole) ;
X4. (Drill 2nd hole) ;
X5.5 L0 (Corner avoidance) ;
Y-2. (3rd hole) ;
Y-4. (4th hole) ;
Y-5.5 L0 (Corner avoidance) ;
X4. (5th hole) ;
X2. (6th hole) ;
X0.5 L0 (Corner avoidance) ;
Y-4. (7th hole) ;
Y-2. (8th hole) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z0.1 M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
257
Introduction
*indicates optional
G00 is used to move the machine axes at the maximum speed. It is primarily used to quickly
position the machine to a given point before each feed (cutting) command. This G code is
modal, so a block with G00 causes all following blocks to be rapid motion until another
Group 01 code is specified.
A rapid move also cancels an active canned cycle, just like G80 does.
NOTE: Generally, rapid motion will not be in a single straight line. Each axis
specified moves at its maximum speed, but all axes will not
necessarily complete their motions at the same time. The machine
waits until all motions are complete before starting the next command.
X+
G00
G01
Setting 57 (Exact Stop Canned X-Y) can change how closely the machine waits for a
precise stop before and after a rapid move.
258
G-codes
*indicates optional
G01 moves the axes at a commanded feed rate. It is primarily used to cut the workpiece. A
G01 feed can be a single axis move or a combination of the axes. The rate of axes
movement is controlled by feedrate ( F) value. This F value can be in units (inch or metric)
per minute ( G94) or per spindle revolution ( G95), or time to complete the motion ( G93).
The feedrate value ( F) can be on the current program line, or a previous line. The control
will always use the most recent F value until another F value is commanded. If in G93, an
F value is used on each line. Refer also to G93.
G01 is a modal command, which means that it will stay in effect until canceled by a rapid
command such as G00 or a circular motion command like G02 or G03.
Once a G01 is started all programmed axes move and reach the destination at the same
time. If an axis is not capable of the programmed feedrate the control will not proceed with
the G01 command and an alarm (max feedrate exceeded) will be generated.
X0.
Y0.
1.000 x 45°
5.000
0
.00
R1
%
O60011 (G01 CORNER ROUNDING & CHAMFER) ;
(G54 X0 Y0 is at the top-right of part) ;
(Z0 is on top of the part) ;
(T1 is an end mill) ;
(BEGIN PREPARATION BLOCKS) ;
259
Introduction
These two linear interpolation blocks specify a corner of intersection. If the beginning block
specifies a ,C, the value after the ,C is the distance from the intersection to where the
chamfer begins, and also the distance from the intersection to where the chamfer ends. If
the beginning block specifies an ,R, the value after the ,R is the radius of a circle tangent
to the corner at two points: the beginning of the corner-rounding arc and the endpoint of
that arc. There can be consecutive blocks with chamfering or corner rounding specified.
There must be movement on the two axes specified by the selected plane, whether the
active plane is XY ( G17), XZ ( G18) or YZ ( G19).
*indicates optional
260
G-codes
NOTE: I,J and K is the preferred method to program a radius. R is suitable for
general radii.
These G codes are used to specify circular motion. Two axes are necessary to complete
circular motion and the correct plane, G17-G19, must be used. There are two methods of
commanding a G02 or G03, the first is using the I, J, K addresses and the second is using
the R address.
Using I, J, K addresses
I, J and K address are used to locate the arc center in relation to the start point. In other
words, the I, J, K addresses are the distances from the starting point to the center of the
circle. Only the I, J, or K specific to the selected plane are allowed (G17 uses IJ, G18 uses
IK and G19 uses JK). The X, Y, and Z commands specify the end point of the arc. If the X,
Y, and Z location for the selected plane is not specified, the endpoint of the arc is the same
as the starting point for that axis.
To cut a full circle the I, J, K addresses must be used; using an R address will not work.
To cut a full circle, do not specify an ending point (X, Y, and Z ); program I, J, or K to define
the center of the circle. For example:
The R-value defines the distance from the starting point to the center of the circle. Use a
positive R-value for radii of 180° or less, and a negative R-value for radii more than 180°.
Programming Example
135O
R 1.00
1.5
.5Ø
%
O60021 (G02 POSITIVE R ADDRESS) ;
(G54 X0 Y0 is at the bottom-left of part) ;
(Z0 is on top of the part) ;
(T1 is a .5 in dia endmill) ;
261
Introduction
225O
R 1.00
1.5
.5Ø
%
O60022 (G02 NEGATIVE R ADDRESS) ;
(G54 X0 Y0 is at the bottom-left of part) ;
(Z0 is on top of the part) ;
(T1 is a .5 in dia endmill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X-0.25 Y-0.25 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G01 Z-0.5 F20. (Feed to cutting depth) ;
G01 Y1.5 F12. (Feed to Y1.5) ;
G02 X1.884 Y0.616 R-1.25 (CW circular motion) ;
(BEGIN COMPLETION BLOCKS) ;
262
G-codes
Thread Milling
Thread milling uses a standard G02 or G03 move to create the circular move in X-Y, then
adds a Z move on the same block to create the thread pitch. This generates one turn of the
thread; the multiple teeth of the cutter generate the rest. Typical block of code:
N100 G02 I-1.0 Z-.05 F5. (generates 1-inch radius for 20-pitch
thread) ;
Internal holes smaller than 3/8 inch may not be possible or practical. Always climb cut the
cutter.
Use a G03 to cut I.D. threads or a G02 to cut O.D. threads. An I.D. right hand thread will
move up in the Z-Axis by the amount of one thread pitch. An O.D. right hand thread will
move down in the Z-Axis by the amount of one thread pitch. PITCH = 1/Threads per inch
(Example - 1.0 divided by 8 TPI = .125)
This program I.D. thread mills a 1.5 diameter x 8 TPI hole with a 0.750" diameter x 1.0"
thread hob.
1. To start, take the hole diameter (1.500). Subtract the cutter diameter .750 and then
divide by 2. (1.500 - .75) / 2 = .375
The result (.375) is the distance the cutter starts from the I.D. of the part.
2. After the initial positioning, the next step of the program is to turn on cutter
compensation and move to the I.D. of the circle.
3. The next step is to program a complete circle (G02 or G03) with a Z-Axis command
of the amount of one full pitch of the thread (this is called Helical Interpolation).
4. The last step is to move away from the I.D. of the circle and turn off cutter
compensation.
You cannot turn cutter compensation off or on during an arc movement. You must program
a linear move, either in the X or Y Axis, to move the tool to and from the diameter to cut.
This move will be the maximum compensation amount that you can adjust.
263
Introduction
F7.7: Thread Milling Example, 1.5 Diameter X 8 TPI: [1]Tool Path, [2] Turn on and off cutter
compensation.
I.D. Thread Milling Ex ercise
N11
N5, N9,
N12 N10
N8
1
2
NOTE: Many thread mill manufacturers offer free online software to help you
create your threading programs.
%
O60023 (G03 THREAD MILL 1.5-8 UNC) ;
(G54 X0 Y0 is at the center of the bore) ;
(Z0 is on top of the part) ;
(T1 is a .5 in dia thread mill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X0 Y0 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G01 Z-0.5156 F50. (Feed to starting depth) ;
(Z-0.5 minus 1/8th of the pitch = Z-0.5156) ;
G41 X0.25 Y-0.25 F10. D01 (cutter comp on) ;
G03 X0.5 Y0 I0 J0.25 Z-0.5 (Arc into thread) ;
(Ramps up by 1/8th of the pitch) ;
I-0.5 J0 Z-0.375 F20. (Cuts full thread) ;
(Z moving up by the pitch value to Z-0.375) ;
X0.25 Y0.25 I-0.25 J0 Z-0.3594 (Arc out of thread) ;
264
G-codes
F7.8: O.D. Thread Milling Example, 2.0 diameter post x 16 TPI: [1] Tool Path [2] Rapid
Positioning, Turn on and off cutter compensation, [3] Start Position, [4] Arc with Z.
XO, YO
1
2
265
Introduction
%
O60024 (G02 G03 THREAD MILL 2.0-16 UNC) ;
(G54 X0 Y0 is at the center of the post) ;
(Z0 is on top of the opost) ;
(T1 is a .5 in dia thread mill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X0 Y2.4 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G00 Z-1. (Rapids to Z-1.) ;
G01 G41 D01 X-0.5 Y1.4 F20. (Linear move) ;
(Cutter comp on) ;
G03 X0 Y0.962 R0.5 F25. (Arc into thread) ;
G02 J-0.962 Z-1.0625 (Cut threads while lowering Z) ;
G03 X0.5 Y1.4 R0.5 (Arc out of thread) ;
G01 G40 X0 Y2.4 F20. (Linear move) ;
(Cutter comp off) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z0.1 M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
NOTE: A cutter compensation move can consist of any X or Y move from any
position as long as the move is greater than the amount being
compensated.
This program is for a 1.0" diameter hole with a cutter diameter of 0.500" and a thread pitch
of 0.125 (8TPI). This program positions itself in Absolute G90 and then switches to G91
Incremental mode on line N7.
The use of an Lxx value on line N10 allows us to repeat the thread milling arc multiple
times, with a Single-Point Thread Mill.
%
O60025 (G03 SNGL PNT THREAD MILL 1.5-8 UNC) ;
(G54 X0 Y0 is at the center of the bore) ;
(Z0 is on top of the part) ;
(T1 is a .5 in dia thread mill) ;
266
G-codes
Helical Motion
Helical (spiral) motion is possible with G02 or G03 by programming the linear axis that is
not in the selected plane. This third axis will be moved along the specified axis in a linear
manner, while the other two axes will be moved in the circular motion. The speed of each
axis will be controlled so that the helical rate matches the programmed feedrate.
267
Introduction
NOTE: The P values are modal. This means if you are in the middle of a
canned cycle and a G04 Pnn or an M97 Pnn is used the P value will
be used for the dwell / subprogram as well as the canned cycle.
G04 specifies a delay or dwell in the program. The block with G04 delay for the time
specified by the P address code. For example:
G04 P10.0. ;
268
G-codes
*indicates optional
%
O60100 (G10 SET OFFSETS) ;
G10 L2 P1 G91 X6.0 ;
(Move coordinate G54 6.0 to the right) ;
;
G10 L20 P2 G90 X10. Y8. ;
(Set work coordinate G111 to X10.0 Y8.0) ;
;
G10 L10 G90 P5 R2.5 ;
(Set offset for Tool #5 to 2.5) ;
;
G10 L12 G90 P5 R.375 ;
(Set diameter for Tool #5 to .375”) ;
;
G10 L20 P50 G90 X10. Y20. ;
(Set work coordinate G154 P50 to X10. Y20.) ;
%
269
Introduction
*indicates optional
**To get the programmed circle diameter, the control uses the selected D code tool size.
To program tool centerline select D0.
NOTE: Specify D00 if you do not want to use cutter compensation. If you do
not specify a D value in the G12/G13 block, the control uses the last
commanded D value, even if it was previously canceled with a G40.
Rapid-position the tool to the center of the circle. To remove all the material inside the
circle, use I and Q values less than the tool diameter and a K value equal to the circle
radius. To cut a circle radius only, use an I value set to the radius and no K or Q value.
%
O60121(SAMPLE G12 AND G13) ;
(G54 X0 Y0 is center of first pocket) ;
(Z0 is on top of the part) ;
(T1 is a .25 in. dia endmill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X0 Y0 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Tool offset 1 on) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G12 I0.75 F10. Z-1.2 D01 (Finish pocket CW) ;
G00 Z0.1 (Retract) ;
X5.(Move to center of next pocket) ;
270
G-codes
1 2
I I
Q
K
These G codes assume cutter compensation, so you do not need to program G41 or G42
in the program block. However, you must include a D offset number, for cutter radius or
diameter, to adjust the circle diameter.
These program examples show the G12 and G13 format, and the different ways that you
can write these programs.
Applications: One-pass counter boring; rough and finish pocketing of smaller holes, ID
cutting of O-ring grooves.
Applications: Multiple-pass counter boring; rough and finish pocketing of large holes with
cutter overlap.
Multiple Z-Depth Pass: Using I only, or I, K, and Q (G91 and L may also be used).
The previous figures show the tool path during the pocket milling G-codes.
271
Introduction
This program uses G91 and an L count of 4, so this cycle will execute a total of four times.
The Z depth increment is 0.500. This is multiplied by the L count, making the total depth of
this hole 2.000.
The G91 and L count can also be used in a G13 I only line.
%
O60131 (G13 G91 CCW EXAMPLE) ;
(G54 X0 Y0 is center of 1st pocket) ;
(Z0 is on top of the part) ;
(T1 is a 0.5 in. dia endmill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X0 Y0 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G13 G91 Z-.5 I.400 K2.0 Q.400 L4 D01 F20. ;
(Rough & finish CCW) ;
(BEGIN COMPLETION BLOCKS) ;
G00 G90 Z0.1 M09 (Rapid retract, coolant off) ;
G53 G49 Z0 M05 (Z home, spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
If cutter radius compensation is selected (G41 or G42), only use the XY plane (G17) for
circular motion.
G17 Defined - Circular motion with the operator looking down on the XY table from above.
This defines the motion of the tool relative to the table.
G18 Defined - Circular motion is defined as the motion for the operator looking from the rear
of the machine toward the front control panel.
G19 Defined - Circular motion is defined as the motion for the operator looking across the
table from the side of the machine where the control panel is mounted.
272
G-codes
F7.10: G17, G18, and G19 Circular Motion Diagrams: [1] Top view, [2] Front view, [3] Right view.
G17 G18 G19
G03
G03
G03 G02
Z G02 Z G02
G03
G03
G03
1 2 3
G02
G02 G02
X X
Y Y
Alternatively, when one or more axes locations are specified on the G28 line, G28 will move
to the specified locations and then to machine zero. This is called the G29 reference point;
it is saved automatically for optional use in G29.
Setting 108 affects the way that rotary axes return when you command a G28. Refer to
page 399 for more information.
%
G28 G90 X0 Y0 Z0 (moves to X0 Y0 Z0) ;
G28 G90 X1. Y1. Z1. (moves to X1. Y1. Z1.) ;
G28 G91 X0 Y0 Z0 (moves directly to machine zero) ;
G28 G91 X-1. Y-1. Z-1 (moves incrementally -1.) ;
%
273
Introduction
F - Feedrate
*X - X-Axis absolute motion command
*Y - Y-Axis absolute motion command
*Z - Z-Axis absolute motion command
*A - A-Axis absolute motion command
*B - B-Axis absolute motion command
*C - C-axis absolute motion command (UMC)
*indicates optional
This G-code moves the programmed axes while looking for a signal from the probe (skip
signal). The specified move is started and continues until the position is reached or the
probe receives a skip signal. If the probe receives a skip signal during the G31 move, axis
motion stops, the control beeps and records the skip signal position to macro variables. The
program will then execute the next line of code. If the probe does not receive a skip signal
during the G31 move, the control will not beep and the skip signal position will be recorded
at the end of the programmed move. The program will continue. This G-code requires at
least one Axis specified and a feedrate. If the command contains neither, an alarm is
generated.
Macro variables #5061 through #5066 are designated to store skip signal positions for
each axis. For more information about these skip signal variables see the macro section of
this manual.
Notes:
This code is non-modal and only applies to the block of code in which G31 is specified.
The G31 line must have a Feed command. To avoid damaging the probe, use a feed rate
below F100. (inch) or F2500. (metric).
If your mill has the standard Renishaw probing system, use the following commands to turn
on the probe.
M59 P1134 ;
%
M59 P1133 ;
274
G-codes
G04 P1.0 ;
M59 P1134 ;
%
M69 P1134 ;
Sample program:
This sample program measures the top surface of a part with the spindle probe traveling in
the Z negative direction. To use this program, the G54 part location must be set at, or close
to the surface to be measured.
%
O60311 (G31 SPINDLE PROBE) ;
(G54 X0. Y0. is at the center of the part) ;
(Z0. is at, or close to the surface) ;
(T1 is a Spindle probe) ;
(PREPARATION) ;
T1 M06 (Select Tool 1) ;
G00 G90 G54 X0 Y0 (Rapid to X0. Y0.) ;
M59 P1134 (Spindle probe on) ;
G43 H1 Z1. (Activate tool offset 1) ;
(PROBING) ;
G31 Z-0.25 F50. (Measure top surface) ;
Z1. (Retract to Z1.) ;
M69 P1134 (Spindle probe off) ;
(COMPLETION) ;
G00 G53 Z0. (Rapid retract to Z home) ;
M30 (End program) ;
%
F - Feedrate
*D - Tool diameter offset number
*X - X-Axis command
*Y - Y-Axis command
*indicates optional
275
Introduction
Automatic Tool Diameter Offset Measurement function (G35) is used to set the tool
diameter (or radius) using two touches of the probe; one on each side of the tool. The first
point is set with a G31 block using an M75, and the second point is set with the G35 block.
The distance between these two points is set into the selected (non-zero) Dnnn offset.
Setting 63 Tool Probe Width is used to reduce the measurement of the tool by the width of
the tool probe. See the settings section of this manual for more information about Setting
63.
This G-code moves the axes to the programmed position. The specified move is started
and continues until the position is reached or the probe sends a signal (skip signal).
NOTES:
This code is non-modal and only applies to the block of code in which G35 is specified.
To avoid damaging the probe, use a feed rate below F100. (inch) or F2500. (metric).
If your mill has the standard Renishaw probing system, use the following commands to turn
on the tool-setting probe.
%
M59 P1133 ;
G04 P1.0 ;
M59 P1134 ;
%
M69 P1134 ;
Sample program:
This sample program measures the diameter of a tool and records the measured value to
the tool offset page. To use this program, the G59 Work Offset location must be set to the
tool-setting probe location.
%
O60351 (G35 MEASURE AND RECORD TOOL DIA OFFSET) ;
(G59 X0 Y0 is the tool setting probe location) ;
(Z0 is at the surface of tool-setting probe) ;
(T1 is a spindle probe) ;
(BEGIN PREPARATION BLOCKS) ;
276
G-codes
F - Feedrate
*I - Offset distance along X-Axis
*J - Offset distance along Y-Axis
*K - Offset distance along Z-Axis
*X - X-Axis motion command
*Y - Y-Axis motion command
*Z - Z-Axis motion command
*indicates optional
Automatic Work Offset Measurement (G36) is used to command a probe to set work
coordinate offsets. A G36 will feed the axes of the machine in an effort to probe the work
piece with a spindle mounted probe. The axis (axes) will move until a signal from the probe
is received or the end of the programmed move is reached. Tool compensation (G41, G42,
G43, or G44) must not be active when this function is performed. The point where the skip
signal is received becomes the zero position for the currently active work coordinate system
of each axis programmed. This G-code requires at least one Axis specified, if neither are
found, an alarm is generated.
277
Introduction
If an I, J, or K is specified, the appropriate axis work offset is shifted by the amount in the
I, J, or K command. This allows the work offset to be shifted away from where the probe
actually contacts the part.
NOTES:
This code is non-modal and only applies to the block of code in which G36 is specified.
The points probed are offset by the values in Settings 59 through 62. See the settings
section of this manual for more information.
To avoid damaging the probe, use a feed rate below F100. (inch) or F2500. (metric).
If your mill has the standard Renishaw probing system, use the following commands to turn
on the spindle probe.
M59 P1134 ;
M69 P1134 ;
%
O60361 (G36 AUTO WORK OFFSET MEASUREMENT) ;
(G54 X0 Y0 is at the top-center of the part) ;
(Z0 is at the surface of part) ;
(T1 is a Spindle probe) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 20) ;
G00 G90 G54 X0 Y1. (Rapid to 1st position) ;
(BEGIN PROBING BLOCKS) ;
M59 P1134 (Spindle probe on) ;
Z-.5 (Move the probe below surface of part) ;
G01 G91 Y-0.5 F50. (Feed towards the part) ;
G36 Y-0.7 F10. (Measure and record Y offset) ;
G91 Y0.25 F50. (Move incrementally away from part) ;
G00 Z1. (Rapid retract above part) ;
M69 P1134 (Spindle probe off) ;
(BEGIN COMPLETION BLOCKS) ;
G00 G90 G53 Z0. (Rapid retract to Z home) ;
M30 (End program) ;
%
278
G-codes
F - Feedrate
H - Tool offset number
Z - Required Z-Axis offset
Automatic Tool Length Offset Measurement (G37) is used to command a probe to set tool
length offsets. A G37 will feed the Z-Axis in an effort to probe a tool with a tool-setting probe.
The Z-Axis will move until a signal from the probe is received or the travel limit is reached.
A non-zero H code and either G43 or G44 must be active. When the signal from the probe
is received (skip signal) the Z position is used to set the specified tool offset (Hnnn). The
resulting tool offset is the distance between the current work coordinate zero point and the
point where the probe is touched. If a non-zero Z value is on the G37 line of code the
resulting tool offset will be shifted by the non-zero amount. Specify Z0 for no offset shift.
The work coordinate system (G54, G55, etc.) and the tool length offsets
NOTES:
This code is non-modal and only applies to the block of code in which G37 is specified.
To avoid damaging the probe, use a feed rate below F100. (inch) or F2500. (metric).
If your mill has the standard Renishaw probing system, use the following commands to turn
on the tool-setting probe.
%
M59 P1133 ;
G04 P1. ;
M59 P1134 ;
%
M69 P1134 ;
Sample program:
This sample program measures the length of a tool and records the measured value on the
tool offset page. To use this program, the G59 work offset location must be set to the
tool-setting probe location.
279
Introduction
%
O60371 (G37 AUTO TOOL OFFSET MEASUREMENT) ;
(G59 X0 Y0 is center of tool-setting probe) ;
(Z0 is at the surface of tool-setting probe) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G59 X0 Y0 (Rapid to center of the probe) ;
G00 G43 H01 Z5. (Activate tool offset 1) ;
(BEGIN PROBING BLOCKS) ;
M59 P1133 (Select tool-setting probe) ;
G04 P1. (Dwell for 1 second) ;
M59 P1134 (Probe on) ;
G37 H01 Z0 F30. (Measure & record tool offset) ;
M69 P1134 (Probe off) ;
(BEGIN COMPLETION BLOCKS) ;
G00 G53 Z0. (Rapid retract to Z home) ;
M30 (End program) ;
%
The right or left side of the programmed path is determined by looking at the tool as it moves
away. If the tool needs to be on the left of the programmed path as it moves away, use G41.
If it needs to be on the right of the programmed path as it moves away, use G42. For more
information, refer to the Cutter Compensation section.
280
G-codes
*indicates optional
This method is used to engrave text on a part. The text should be in the form of a comment
on the same line as the G47 command. For example, G47 P0 (TEXT TO ENGRAVE), will
engrave TEXT TO ENGRAVE on the part.
281
Introduction
Not all of these characters can be entered from the control. When programming from the
mill keypad, or engraving parenthesis (), refer to the following Engraving Special
Characters section.
%
O60471 (G47 TEXT ENGRAVING) ;
(G54 X0 Y0 is at the bottom-left of part) ;
(Z0 is on top of the part) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X2. Y2. (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G47 P0 (TEXT TO ENGRAVE) X2. Y2. I45. J0.5 R0.05 Z-0.005 F15.
E10. ;
(Starts at X2. Y2., engraves text at 45 deg) ;
(BEGIN COMPLETION BLOCKS) ;
G00 G80 Z0.1 (Cancel canned cycle) ;
G00 Z0.1 M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
F7.11: Engraving Program Example
E
AV
6
R
G
5
EN
4
TO
o
90
T
3 o
45
X
TE
o o
2 180 0
o
1 -45
5"
o
270
0.
1 2 3 4 5 6
282
G-codes
In this example, G47 P0 selects literal string engraving. X2.0 Y2.0 sets the starting point
for the text at the bottom left corner of first letter. I45. places the text at a positive 45°
angle. J.5 sets the text height to 0.5 units-in/mm. R.05 retracts cutter to 0.05 units above
part after engraving. Z-0.005 sets an engraving depth of -0.005 units. F15.0 sets an
engraving, XY move, feedrate of 15 units per minute. E10.0 sets a plunge, -Z move,
feedrate of 10 units per minute.
Special Characters
Engraving Special Characters involves using G47 with specific P values (G47 P32-126).
32 space 59 ; semicolon
42 * asterisk 94 ^ caret
283
Introduction
Example:
To engrave $2.00, you need (2) blocks of code. The first block uses a P36 to engrave the
dollar sign ($), and the second block uses P0 (2.00).
NOTE: Shift the X/Y start location between the first and second line of code to
make a space between the dollar sign and the 2.
This method is used to engrave numbers on a series of parts with the number being
increased by one each time. The # symbol is used to set the number of digits in the serial
number. For example, G47 P1 (####), limits the number to four digits while (##) would
limit the serial number to two digits.
%
O00037 (SERIAL NUMBER ENGRAVING) ;
T1 M06 ;
G00 G90 G98 G54 X0. Y0. ;
S7500 M03 ;
G43 H01 Z0.1 ;
G47 P1 (####) X2. Y2. I0. J0.5 R0.05 Z-0.005 F15. E10. ;
G00 G80 Z0.1 ;
M05 ;
G28 G91 Z0 ;
M30 ;
%
There are two ways to set the initial serial number to be engraved. The first requires
replacing the # symbols within the parenthesis with the first number to be engraved. With
this method, nothing is engraved when the G47 line is executed (it is only setting the initial
serial number). Execute this once and then change the value within the parenthesis back
to # symbols to engrave normally.
The following example will set the initial serial number to be engraved to 0001. Run this
code once and then change (0001) to (####).
284
G-codes
G47 P1 (0001) ;
The second method for setting the initial serial number to be engraved is to change the
Macro Variable where this value is stored (Macro Variable 599). The Macros option does
not need to be enabled.
Press [CURRENT COMMANDS] then press [PAGE UP] or [PAGE DOWN] as needed to
display the MACRO VARIABLES page. From that screen, enter 599 and press Down cursor.
Once 599 is highlighted on the screen, type in the initial serial number to engrave, [1] for
example, then press [ENTER].
The same serial number can be engraved multiple times on the same part with the use of
a macro statement. The macros option is required. A macro statement as shown below
could be inserted between two G47 engraving cycles to keep the serial number from
incrementing to the next number. For more details, see the Macros section of this manual.
You can combine a G47 Engraving cycle with a G107 Cylindrical Mapping cycle to engrave
text (or a serial number) along the outside diameter of a rotary part.
This code engraves a four digit serial number along the outer diameter of a rotary part.
%
O60472 (G47 SERIAL NUMBER ENGRAVING) ;
(G54 X0 Y0 is at the bottom left of the part) ;
(Z0 is on top of the part) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X2. Y2. (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G47 P1 (####) X2. Y2. J0.5 R0.05 Z-0.005 F15. E10. ;
(Engraves serial number) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z0.1 M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
285
Introduction
NOTE: An H0, M30, and [RESET] will also cancel tool length compensation.
NOTE: You must purchase the Rotation and Scaling option to use this
G-code. A 200-hour option tryout is also available; refer to page 170
for instructions.
*indicates optional
The control always uses a scaling center to determine the scaled position. If you do not
specify a scaling center in the G51 command block, then the control uses the last
commanded position as the scaling center.
With a scaling (G51) command, the control multiplies by a scaling factor (P) all X, Y, Z, A,
B, and C end points for rapids, linear feeds, and circular feeds. G51 also scales I, J, K, and
R for G02 and G03. The control offsets all of these positions relative to a scaling center.
• A P address code in the G51 block applies the specified scaling factor to all axes.
• Setting 71 applies its value as a scaling factor to all axes if it has a nonzero value and
you do not use a P address code.
• Settings 188, 189, and 190 apply their values as scaling factors to the X, Y, and Z
axes independently if you do not specify a P value and Setting 71 has a value of zero.
These settings must have equal values to use them with G02 or G03 commands.
G51 affects all appropriate positioning values in the blocks after the G51 command.
These example programs show how different scaling centers affect the scaling command.
286
G-codes
%
O60511 (G51 SCALING SUBPROGRAM) ;
(G54 X0 Y0 is at the bottom left of window) ;
(Z0 is on top of the part) ;
(Run with a main program) ;
(BEGIN CUTTING BLOCKS) ;
G01 X2. ;
Y2. ;
G03 X1. R0.5 ;
G01 Y1. ;
M99 ;
%
The first example illustrates how the control uses the current work coordinate location as a
scaling center. Here, it is X0 Y0 Z0.
F7.13: G51 Scaling Current Work Coordinates: The Origin [1] is the work origin and the center of
scaling.
287
Introduction
The next example specifies the center of the window as the scaling center.
F7.14: G51 Scaling Center of Window: [1] Work coordinate origin, [2] Center of scaling.
%
o60513 (G51 SCALING FROM CENTER OF WINDOW) ;
(G54 X0 Y0 is at the bottom left of part) ;
(Z0 is on top of the part) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
288
G-codes
The last example illustrates how scaling can be placed at the edge of tool paths as if the
part was being set against locating pins.
F7.15: G51 Scaling Edge of Tool Path: [1] Work coordinate origin, [2] Center of scaling.
%
O60514 (G51 SCALING FROM EDGE OF TOOLPATH) ;
(G54 X0 Y0 is at the bottom left of part) ;
(Z0 is on top of the part) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X0 Y0 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 M08 (Activate tool offset 1) ;
289
Introduction
(Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G01 Z-0.1 F25. (Feed to cutting depth) ;
M98 P60511 (Cuts shape without scaling) ;
G00 Z0.1 (Rapid Retract) ;
G00 X1. Y1. (Rapid to new scale position) ;
G01 Z-.1 F25. (Feed to cutting depth) ;
G51 X1. Y1. P2. (2x scale from edge of toolpath) ;
M98 P60511 (run subprogram) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z0.1 M09(Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
Tool offsets and cutter compensation values are not affected by scaling.
For canned cycles, G51 scales the initial point, depth, and return plane relative to the center
of scaling.
To retain the functionality of canned cycles, G51 does not scale these:
The control rounds the final results of scaling to the lowest fractional value of the variable
being scaled.
If FANUC is selected, G52 is a group 00 G-code. This is a global work coordinate shift. The
values entered into the G52 line of the work offset page are added to all work offsets. All of
the G52 values in the work offset page will be set to zero (0) when powered on, reset is
pressed, changing modes, at the end of the program, by an M30, G92 or a G52 X0 Y0 Z0
A0 B0. When using a G92 (Set Work Coordinate Systems Shift Value), in Fanuc format,
the current position in the current work coordinate system is shifted by the values of G92
(X, Y, Z, A, and B). The values of the G92 work offset are the difference between the current
work offset and the shifted amount commanded by G92.
290
G-codes
If HAAS is selected, G52 is a group 00 G-code. This is a global work coordinate shift. The
values entered into the G52 line of the work offset page are added to all work offsets. All of
the G52 values will be set to zero (0) by a G92. When using a G92 (Set Work Coordinate
Systems Shift Value), in Haas format, the current position in the current work coordinate
system is shifted by the values of G92 (X, Y, Z, A, and B). The values of the G92 work offset
are the difference between the current work offset and the shifted amount commanded by
G92 (Set Work Coordinate Systems Shift Value).
291
Introduction
NOTE: You must purchase the Rotation and Scaling option to use this
G-code. A 200-hour option tryout is also available; refer to page 170
for instructions.
*indicates optional
**The axis designation you use for these address codes corresponds to the axes of the
current plane. For example, in the G17 (XY plane), you would use X and Y to specify the
center of rotation.
When you command a G68, the control rotates all X, Y, Z, I, J, and K values about a center
of rotation to a specified angle (R),.
You can designate a plane with G17, G18, or G19 before G68 to establish the axis plane to
rotate. For example:
If you do not designate a plane in the G68 block, the control uses the currently active plane.
The control always uses a center of rotation to determine the positional values after
rotation. If you do not specify a center of rotation, the control uses the current location.
G68 affects all appropriate positional values in the blocks after the G68 command. Values
in the line that contains the G68 command are not rotated. Only the values in the plane of
rotation are rotated; therefore, if G17 is the current plane of rotation, the command affects
only the X and Y values.
If you do not specify the angle of rotation (R), then the control uses the value in Setting 72.
In G91 mode (incremental) with Setting 73 ON, the rotation angle changes by the value in
R. In other words, each G68 command changes the rotation angle by the value specified in
R.
The rotational angle is set to zero at the beginning of the program, or you can set it to a
specific angle with G68 in G90 mode.
These examples illustrate rotation with G68. The first program defines a Gothic window
shape to cut. The rest of the programs use this program as a subprogram.
292
G-codes
F7.16: G68 Start Gothic Window, No rotation: [1] Work coordinate origin.
Z
Y
X
%
O60681 (GOTHIC WINDOW SUBPROGRAM) ;
F20 S500 (SET FEED AND SPINDLE SPEED) ;
G00 X1. Y1. (RAPID TO LOWER-LEFT WINDOW CORNER) ;
G01 X2. (BOTTOM OF WINDOW) ;
Y2. (RIGHT SIDE OF WINDOW);
G03 X1. R0.5 (TOP OF WINDOW) ;
G01 Y1. (FINISH WINDOW) ;
M99;
&
The first example illustrates how the control uses the current work coordinate location as a
rotation center (X0 Y0 Z0).
F7.17: G68 Rotation Current Work Coordinate: [1] Work coordinate origin and center of rotation.
Z
Y
X
293
Introduction
The next example specifies the center of the window as the rotation center.
F7.18: G68 Rotation Center of Window: [1] Work coordinate origin, [2] Center of rotation.
Z
Y
X
1
2
%
O60683 (ROTATE ABOUT CENTER OF WINDOW) ;
G59 (OFFSET) ;
G00 G90 X0 Y0 Z-0.1 (WORK COORDINATE ORIGIN) ;
G68 X1.5 Y1.5 R60. ;
(ROTATE SHAPE 60 DEGREES ABOUT CENTER) ;
M98 P60681 (CALL SUBPROGRAM) ;
G69 G90 G00 X0 Y0 ;
(CANCEL G68, LAST COMMANDED POSITION) ;
M30 ;
%
This next example shows how the G91 mode can be used to rotate patterns about a center.
This is often useful for making parts that are symmetric about a given point.
F7.19: G68 Rotate Patterns About Center: [1] Work coordinate origin and center of rotation.
Z
Y
X
%
O60684 (ROTATE PATTERN ABOUT CENTER) ;
G59 (OFFSET) ;
G00 G90 X0 Y0 Z-0.1 (WORK COORDINATE ORIGIN) ;
M97 P1000 L6 (CALL LOCAL SUBPROGRAM, LOOP 6 TIMES) ;
M30 (END AFTER SUBPROGRAM LOOP) ;
294
G-codes
If you use scaling and rotation at the same time, you should turn on scaling before rotation,
and use separate blocks. Use this template:
%
G51 ... (SCALING) ;
... ;
G68 ... (ROTATION) ;
... program ;
G69 ... (ROTATION OFF) ;
... ;
G50 ... (SCALING OFF) ;
%
Turn on cutter compensation after the rotation command. Turn off cutter compensation
before you turn off rotation.
*indicates optional
This non-modal G code must be used with one of the canned cycles G73, G74, G76, G77,
or G81-G89. A canned cycle must be active so that at each position, a drill or tap function
is performed. See also G-code Canned Cycles section.
%
O60701 (G70 BOLT HOLE CIRCLE) ;
(G54 X0 Y0 is center of the circle ) ;
(Z0 is on the top of the part) ;
295
Introduction
(T1 is a drill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X0 Y0 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G81 G98 Z-1. R0.1 F15. L0 (Begin G81) ;
(L0 skip drilling X0 Y0 position) ;
G70 I5. J15. L12 (Begin G70) ;
(Drills 12 holes on a 10.0 in. diameter circle) ;
G80 (Canned Cycles off) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z0.1 M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home and Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
*indicates optional
This non-modal G code is similar to G70 except that it is not limited to a complete circle.
G71 belongs to Group 00 and thus is non-modal. A canned cycle must be active so that at
each position, a drill or tap function is performed.
*indicates optional
This non-modal G code drills L number of holes in a straight line at the specified angle. It
operates similarly to G70. For a G72 to work correctly, a canned cycle must be active so
that at each position, a drill or tap function is performed.
296
G-codes
F7.20: G70, G71, and G72 Bolt Holes: [I] Radius of bolt circle (G70, G71), or distance between
holes (G72), [J] Starting angle from the 3 o’clock position, [K] Angular spacing between
holes, [L] Number of holes.
K I
J
J J
I I
* indicates optional
NOTE: The P values are modal. This means if you are in the middle of a
canned cycle and a G04 Pnn or an M97 Pnn is used the P value will
be used for the dwell / subprogram as well as the canned cycle.
297
Introduction
F7.21: G73 Peck Drilling. Left: Using I, J, and K Addresses. Right: Using Only the Q Address.
[#22] Setting 22.
#22
#22
R
R Q
I Q
I1 =
Z
Q
I -J
I2 = 1
Z
I3 = K
There are three methods to program a G73: using the I, J, K addresses, using the K and Q
addresses, and using only a Q address.
If I, J, and K are specified, The first pass will cut in by the value I, each succeeding cut will
be reduced by the value of J, and the minimum cutting depth is K. If P is specified, the tool
will pause at the bottom of the hole for that amount of time.
If K and Q are both specified, a different operating mode is selected for this canned cycle.
In this mode, the tool is returned to the R plane after the number of passes totals up to the
K amount.
If only Q is specified, a different operating mode is selected for this canned cycle. In this
mode, the tool is returned to the R plane after all pecks are completed, and all pecks will be
equal to the Q value.
F7.22: G73 Peck Drilling Canned Cycles using the K and Q Addresses: [#22] Setting 22.
R #22
#22
Q
K Q
298
G-codes
*indicates optional
G98
Y G99
Z Y
R R Z
X X
Z Z
* indicates optional
299
Introduction
NOTE: The P values are modal. This means if you are in the middle of a
canned cycle and a G04 Pnn or an M97 Pnn is used the P value will
be used for the dwell / subprogram as well as the canned cycle.
CAUTION: Unless you specify otherwise, this canned cycle uses the most
recently commanded spindle direction (M03, M04, or M05). If the
program did not specify a spindle direction before it commands this
canned cycle, the default is M03 (clockwise). If you command M05, the
canned cycle will run as a “no-spin” cycle. This lets you run
applications with self-driven tools, but it can also cause a crash. Be
sure of the spindle direction command when you use this canned
cycle.
G98
Y G99
Z Y Z
R R
X X
Z /Q Z /Q
I,J I,J
In addition to boring the hole, this cycle will shift the X and/or Y Axis prior to retracting in
order to clear the tool while exiting the part. If Q is used Setting 27 determines the shift
direction. If Q is not specified, the optional I and J values are used to determine the shift
direction and distance.
300
G-codes
* indicates optional
CAUTION: Unless you specify otherwise, this canned cycle uses the most
recently commanded spindle direction (M03, M04, or M05). If the
program did not specify a spindle direction before it commands this
canned cycle, the default is M03 (clockwise). If you command M05, the
canned cycle will run as a “no-spin” cycle. This lets you run
applications with self-driven tools, but it can also cause a crash. Be
sure of the spindle direction command when you use this canned
cycle.
In addition to boring the hole, this cycle shifts the X and Y Axis before and after the cut, to
clear the tool while it enters and exits the workpiece (refer to G76 for an example of a shift
move). Setting 27 defines the shift direction. If you do not specify a Q value, the control uses
the optional I and J values to determine the shift direction and distance.
Y Z
Q
I, J /
R
Program Example
301
Introduction
%
O60077 (G77 CYCLE-WORKPIECE IS 1.0" THICK) ;
T5 M06 (BACK COUNTERBORE TOOL) ;
G90 G54 G00 X0 Y0 (INITIAL POSITION) ;
S1200 M03 (SPINDLE START) ;
G43 H05 Z.1 (TOOL LENGTH COMPENSATION) ;
G77 Z-1. R-1.6 Q0.1 F10. (1ST HOLE) ;
X-2. (2ND HOLE) ;
G80 G00 Z.1 M09 (CANCEL CANNED CYCLE) ;
G28 G91 Z0. M05 ;
M30 ;
%
F7.26: G77 Approximate Toolpath Example. This example shows the entrance motion only.
Dimensions are not to scale.
0.5"
G54 Z0.
1.0"
F10.
R Z
(-1.6") (-0.5")
NOTE: For this example, the “top” of the workpiece is the surface defined as
Z0. in the current work offset. The “bottom” of the workpiece is the
opposite surface.
In this example, when the tool reaches the R depth, it then moves 0.1" in X (the Q value and
Setting 27 define this movement; in this example, Setting 27 is X+). The tool then feeds to
the Z value at the given feedrate. When the cut is finished, the tool shifts back toward the
center of the hole and retracts out of it. The cycle repeats at the next commanded position
until the G80 command.
NOTE: The R value is negative, and it must go past the bottom of the part for
clearance.
302
G-codes
NOTE: You do not need to command an initial point return (G98) after a G77
cycle; the control assumes this automatically.
* indicates optional
CAUTION: Unless you specify otherwise, this canned cycle uses the most
recently commanded spindle direction (M03, M04, or M05). If the
program did not specify a spindle direction before it commands this
canned cycle, the default is M03 (clockwise). If you command M05, the
canned cycle will run as a “no-spin” cycle. This lets you run
applications with self-driven tools, but it can also cause a crash. Be
sure of the spindle direction command when you use this canned
cycle.
303
Introduction
G98
Y G99
Y
R Z R Z
X X
Z Z
%
O60811 (G81 DRILLING CANNED CYCLE) ;
(G54 X0 Y0 is at the top-left of part) ;
(Z0 is on top of the part) ;
(T1 is a .5 in drill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X2. Y-2. (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G81 Z-0.720 R0.1 F15.(Begin G81) ;
(Drill 1st hole at current X Y location) ;
X2. Y-4. (2nd hole) ;
X4. Y-4. (3rd hole) ;
X4. Y-2. (4th hole) ;
(BEGIN COMPLETION BLOCKS) ;
G00 G90 Z1. M09 (Rapid retract,coolant off) ;
G53 G49 Z0 M05 (Z home, spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
304
G-codes
* indicates optional
NOTE: The P values are modal. This means if you are in the middle of a
canned cycle and a G04 Pnn or an M97 Pnn is used the P value will
be used for the dwell / subprogram as well as the canned cycle.
CAUTION: Unless you specify otherwise, this canned cycle uses the most
recently commanded spindle direction (M03, M04, or M05). If the
program did not specify a spindle direction before it commands this
canned cycle, the default is M03 (clockwise). If you command M05, the
canned cycle will run as a “no-spin” cycle. This lets you run
applications with self-driven tools, but it can also cause a crash. Be
sure of the spindle direction command when you use this canned
cycle.
NOTE: G82 is similar to G81 except that there is the option to program a dwell
(P).
%
O60821 (G82 SPOT DRILLING CANNED CYCLE) ;
(G54 X0 Y0 is at the top-left of part) ;
(Z0 is on top of the part) ;
(T1 is a 0.5 in 90 degree spot drill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X2. Y-2. (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
305
Introduction
G98
G99
Y Y
R Z R Z
X X
Z Z
* indicates optional
If I, J, and K are specified, the first pass will cut in by the amount of I, each succeeding cut
will be reduced by amount J, and the minimum cutting depth is K. Do not use a Q value when
programming with I, J, and K.
306
G-codes
If P is specified, the tool will pause at the bottom of the hole for that amount of time. The
following example will peck several times and dwell for 1.5 seconds:
The same dwell time will apply to all subsequent blocks that do not specify a dwell time.
F7.29: G83 Peck Drilling with I, J, K and Normal Peck Drilling: [#22] Setting 22.
#22
#22
R
R Q
I Q
I1 =
Q
I1 - J
I2 = Z
I2 - J
I3 =
Z
Setting 52 changes the way G83 works when it returns to the R plane. Usually the R plane
is set well above the cut to ensure that the peck motion allows the chips to get out of the
hole. This wastes time as the drill starts by drilling empty space. If Setting 52 is set to the
distance required to clear chips, you can set the R plane much closer to the part. When the
chip-clearing move to R occurs, Setting 52 determines the Z-Axis distance above R.
G98 #52
#22
R
#22
Q
Q
Z
%
O60831 (G83 PECK DRILLING CANNED CYCLE) ;
(G54 X0 Y0 is at the top-left of part) ;
307
Introduction
* indicates optional
NOTE: You do not need to command a spindle start (M03 / M04) before G84.
The canned cycle starts and stops the spindle as needed.
308
G-codes
G98
Y G99
Z Y Z
R R
X X
Z Z
%
O60841 (G84 TAPPING CANNED CYCLE) ;
(G54 X0 Y0 is at the top-left of part) ;
(Z0 is on top of the part) ;
(T1 is a 3/8-16 tap) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X2. Y-2. (Rapid to 1st position) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G84 Z-0.600 R0.1 F56.25 S900 (Begin G84) ;
(900 rpm divided by 16 tpi = 56.25 ipm) ;
(Drill 1st hole at current X Y location) ;
X2. Y-4. (2nd hole) ;
X4. Y-4. (3rd hole) ;
X4. Y-2. (4th hole) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z1. M09 (Canned cycle off, rapid retract) ;
(Coolant off) ;
G53 G49 Z0 (Z home) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
309
Introduction
* indicates optional
G98
G99
R Y R Y
Z Z
X X
Z Z
* indicates optional
CAUTION: Unless you specify otherwise, this canned cycle uses the most
recently commanded spindle direction (M03, M04, or M05). If the
program did not specify a spindle direction before it commands this
canned cycle, the default is M03 (clockwise). If you command M05, the
canned cycle will run as a “no-spin” cycle. This lets you run
applications with self-driven tools, but it can also cause a crash. Be
sure of the spindle direction command when you use this canned
cycle.
310
G-codes
This G code will stop the spindle once the tool reaches the bottom of the hole. The tool is
retracted once the spindle has stopped.
G98
G99
Y Y
R
R Z Z
X X
Z Z
G89 Bore In, Dwell, Bore Out Canned Cycle (Group 09)
F - Feedrate
L - Number of holes if G91 (Incremental Mode) is used
P - The dwell time at the bottom of the hole
*R - Position of the R plane (position above the part)
X - X-Axis location of holes
Y - Y-Axis location of holes
Z - Position of the Z Axis at the bottom of hole
* indicates optional
NOTE: The P values are modal. This means if you are in the middle of a
canned cycle and a G04 Pnn or an M97 Pnn is used the P value will
be used for the dwell / subprogram as well as the canned cycle.
CAUTION: Unless you specify otherwise, this canned cycle uses the most
recently commanded spindle direction (M03, M04, or M05). If the
program did not specify a spindle direction before it commands this
canned cycle, the default is M03 (clockwise). If you command M05, the
canned cycle will run as a “no-spin” cycle. This lets you run
applications with self-driven tools, but it can also cause a crash. Be
sure of the spindle direction command when you use this canned
cycle.
311
Introduction
G98
G99
R Y R Y
Z Z
X X
Z Z
The Basic Programming section of this manual, beginning on page 138, includes a
discussion of absolute versus incremental programming.
FANUC or HAAS
If Setting 33 is set to FANUC or HAAS, a G92 command shifts all work coordinate systems
(G54-G59, G110-G129) so that the commanded position becomes the current position in
the active work system. G92 is non-modal.
A G92 command cancels any G52 in effect for the commanded axes. Example: G92 X1.4
cancels the G52 for the X-Axis. The other axes are not affected.
The G92 shift value is displayed at the bottom of the Work Offsets page and may be cleared
there if necessary. It is also cleared automatically after power-up, and any time [ZERO
RETURN] and [ALL] or [ZERO RETURN] and [SINGLE] are used.
G92 shifts may be canceled by programming another G92 shift to change the current work
offset back to the original value.
312
G-codes
%
O60921 (G92 SHIFT WORK OFFSETS) ;
(G54 X0 Y0 Z0 is at the center of mill travel) ;
G00 G90 G54 X0 Y0 (Rapid to G54 origin) ;
G92 X2. Y2. (Shifts current G54) ;
G00 G90 G54 X0 Y0 (Rapid to G54 origin) ;
G92 X-2. Y-2. (Shifts current G54 back to original) ;
G00 G90 G54 X0 Y0 (Rapid to G54 origin) ;
M30 (End program) ;
%
This G code specifies that all F (feedrate) values are interpreted as strokes per minute. In
other words the time (in seconds) to complete the programmed motion using G93 is, 60
(seconds) divided by the F value.
G93 is generally used in 4 and 5-axis work when the program is generated using a CAM
system. G93 is a way of translating the linear (inches/min) feedrate into a value that takes
rotary motion into account. When G93is used, the F value will tell you how many times per
minute the stroke (tool move) can be repeated.
When G93 is used, feedrate (F) is mandatory for all interpolated motion blocks. Therefore
each non-rapid motion block must have its own feedrate (F) specification.
NOTE: Pressing [RESET] will set the machine to G94 (Feed per Minute)
mode. Settings 34 and 79 (4th & 5th axis diameter) are not necessary
when using G93.
313
Introduction
F7.35: G98 Initial Point Return. After the second hole, the Z Axis returns to the starting position
[G98] to move over the toe clamp to the next hole position.
G98
G99
%
O69899 (G98/G99 INITIAL POINT & R PLANE RETURN) ;
(G54 X0 Y0 is top right corner of part) ;
(Z0 is on top of the part) ;
(T1 is a drill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G17 G40 G49 G54 (Safe startup) ;
G00 G54 X1. Y-0.5 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z2. (Tool offset 1 on) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G81 G99 X1. Z-0.5 F10. R0.1 (Begin G81 using G99) ;
G98 X2. (2nd hole and then clear clamp with G98) ;
X4. (Drill 3rd hole) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z2. M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
314
G-codes
F7.36: G99R Plane Return. After the first hole, the Z Axis returns to the R plane position [G99]
and moves to the second hole position. This is a safe move in this case because there are
no obstacles.
G98
G99
%
O69899 (G98/G99 INITIAL POINT & R PLANE RETURN) ;
(G54 X0 Y0 is top right corner of part) ;
(Z0 is on top of the part) ;
(T1 is a drill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G17 G40 G49 G54 (Safe startup) ;
G00 G54 X1. Y-0.5 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z2. (Tool offset 1 on) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G81 G99 X1. Z-0.5 F10. R0.1 (Begin G81 using G99) ;
G98 X2. (2nd hole and then clear clamp with G98) ;
X4. (Drill 3rd hole) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z2. M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
315
Introduction
G53 Y0 (Y home) ;
M30 (End program) ;
%
* indicates optional
Programmable mirror imaging is used to turn on or off any of the axes. When one is ON,
axis motion may be mirrored (or reversed) around the work zero point. These G codes
should be used in a command block without any other G codes. They do not cause any Axis
motion. The bottom of the screen indicates when an axis is mirrored. Also see Settings 45,
46, 47, 48, 80, and 250 for mirror imaging.
Y+
1 2
x- x+
4 3
Y-
316
G-codes
G103 [P..] ;
During machine motions, the control prepares future blocks (lines of code) ahead of time.
This is commonly called “Block Look-ahead.” While the control executes the current block,
it has already interpreted and prepared the next block for continuous motion.
A program command of G103 P0, or simply G103, disables block limiting. A program
command of G103 Pn limits look-ahead to n blocks.
G103 is useful for debugging macro programs. The control interprets Macro expressions
during look-ahead time. If you insert a G103 P1 into the program, the control interprets
macro expressions (1) block ahead of the currently executing block.
It is best to add several empty lines after a G103 P1 is called. This ensures that no lines of
code after the G103 P1 are interpreted until they are reached.
NOTE: The P values are modal. This means if you are in the middle of a
canned cycle and a G04 Pnn or an M97 Pnn is used the P value will
be used for the dwell / subprogram as well as the canned cycle.
* indicates optional
This G code translates all programmed motion occurring in a specified linear axis into the
equivalent motion along the surface of a cylinder (as attached to a rotary axis) as shown in
the following figure. It is a Group 0 G code, but its default operation is subject to Setting 56
(M30 Restores Default G). The G107 command is used to either activate or deactivate
cylindrical mapping.
• Any linear-axis program can be cylindrically mapped to any rotary axis (one at a
time).
317
Introduction
F - Feedrate
*I - Optional offset distance along X-Axis
*J - Optional offset distance along Y-Axis
*K - Optional offset distance along Z-Axis
*X - Optional X-Axis motion command
*Y - Optional Y-Axis motion command
*Z - Optional Z-Axis motion command
* indicates optional
Automatic Work Offset Center Measurement (G136) is used to command a spindle probe
to set work offsets. A G136 will feed the axes of the machine in an effort to probe the work
piece with a spindle mounted probe. The axis (axes) will move until a signal (skip signal)
from the probe is received or the end of the programmed move is reached. Tool
compensation (G41, G42, G43, or G44) must not be active when this function is performed.
The currently active work coordinate system is set for each axis programmed. Use a G31
cycle with an M75 to set the first point. A G136 will set the work coordinates to a point at the
center of a line between the probed point and the point set with an M75. This allows the
center of the part to be found using two separate probed points.
If an I, J, or K is specified, the appropriate axis work offset is shifted by the amount in the
I, J, or K command. This allows the work offset to be shifted away from the measured
center of the two probed points.
Notes:
This code is non-modal and only applies to the block of code in which G136 is specified.
318
G-codes
The points probed are offset by the values in Settings 59 through 62. See the Settings
section of this manual for more information.
To avoid damaging the probe, use a feed rate below F100. (inch) or F2500. (metric).
If your mill has the standard Renishaw probing system, use the following commands to turn
on the spindle probe:
M59 P1134 ;
M69 P1134 ;
This sample program measures the center of a part in the Y Axis and records the measured
value to the G58 Y Axis work offset. To use this program, the G58 work offset location must
be set at or close to the center of the part to be measured.
%
O61361 (G136 AUTO WORK OFFSET - CENTER OF PART) ;
(G58 X0 Y0 is at the center of part) ;
(Z0 is on top of the part) ;
(T1 is a spindle probe) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G58 X0. Y1. (Rapid to 1st position) ;
(BEGIN PROBING BLOCKS) ;
M59 P1134 (Spindle probe on) ;
Z-10. (Rapid spindle down to position) ;
G91 G01 Z-1. F20. (Incremental feed by Z-1.) ;
G31 Y-1. F10. M75 (Measure & record Y reference) ;
G01 Y0.25 F20. (Feed away from surface) ;
G00 Z2. (Rapid retract) ;
Y-2. (Move to opposite side of part) ;
G01 Z-2. F20. (Feed by Z-2.) ;
G136 Y1. F10. ;
(Measure and record center in the Y axis) ;
G01 Y-0.25 (Feed away from surface) ;
G00 Z1. (Rapid retract) ;
M69 P1134 (Spindle probe off) ;
319
Introduction
* indicates optional
Or
Some CAM systems are able to output the X, Y, and Z with values for I, J, K. The I, J, and
K values tell the control the direction in which to apply the compensation at the machine.
Similar to other uses of I, J, and K, these are incremental distances from the X, Y, and Z
point called.
The I, J, and K specify the normal direction, relative to the center of the tool, to the contact
point of the tool in the CAM system. The I, J, and K vectors are required by the control to
be able to shift the toolpath in the correct direction. The value of the compensation can be
in a positive or negative direction.
The offset amount entered in radius or diameter (Setting 40) for the tool will compensate
the path by this amount, even if the tool motions are 2 or 3 axes. Only G00 and G01 can
use G141. A Dnn will have to be programmed; the D-code selects which tool wear diameter
offset to use. A feedrate must be programmed on each line if in G93 Inverse Time Feed
mode.
320
G-codes
With a unit vector, the length of the vector line must always equal 1. In the same way that
a unit circle in mathematics is a circle with a radius of 1, a unit vector is a line that indicates
a direction with a length of 1. Remember, the vector line does not tell the control how far to
move the tool when a wear value is entered, just the direction in which to go.
Only the endpoint of the commanded block is compensated in the direction of I, J, and K.
For this reason, this compensation is recommended only for surface toolpaths having a
tight tolerance (small motion between blocks of code). G141 compensation does not
prohibit the toolpath from crossing over itself when excessive cutter compensation is
entered. The tool will be offset, in the direction of the vector line, by the combined values
of the tool offset geometry plus the tool offset wear. If compensation values are in diameter
mode (Setting 40), the move will be half the amount entered in these fields.
For best results, program from the tool center using a ball nose endmill.
%
O61411 (G141 3D CUTTER COMPENSATION) ;
(G54 X0 Y0 is at the bottom-left) ;
(Z0 is on top of the part) ;
(T1 is a ball nose endmill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X0 Y0 Z0 A0 B0 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G141 D01 X0. Y0. Z0. ;
(Rapid to position with 3D+ cutter comp) ;
G01 G93 X.01 Y.01 Z.01 I.1 J.2 K.9747 F300. ;
(Inverse time feed on, 1st linear motion) ;
N1 X.02 Y.03 Z.04 I.15 J.25 K.9566 F300. (2nd motion) ;
X.02 Y.055 Z.064 I.2 J.3 K.9327 F300. (3rd motion) ;
X2.345 Y.1234 Z-1.234 I.25 J.35 K.9028 F200. ;
(Last motion) ;
(BEGIN COMPLETION BLOCKS) ;
G94 F50. (Inverse time feed off) ;
G00 G90 G40 Z0.1 M09 (Cutter comp off) ;
(Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
In the above example, we can see where the I, J, and K were derived by plugging the
points into the following formula:
321
Introduction
F7.38: Unit Vector Example: The commanded line endpoint [1] is compensated in the direction of
the vector line [2](I,J,K), by the amount of the Tool Offset Wear.
%
AB=[(.15)2 + (.25)2 + (.9566)2]
AB=[.0225 + .0625 + .9150]
AB=1
%
%
O61412 (G141 SIMPLE 3D CUTTER COMPENSATION) ;
(G54 X0 Y0 is at the bottom-left) ;
(Z0 is on top of the part) ;
(T1 is a ball nose endmill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X0 Y0 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z0.1 (Activate tool offset 1) ;
M08 (Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G141 D01 X0. Y0. Z0. ;
(Rapid to position with 3D+ cutter compensation) ;
N1 G01 G93 X5. Y0. I0. J-1. K0. F300. ;
(Inverse time feed on & linear motion) ;
322
G-codes
In this case, the wear value (DIA) for T01 is set to -.02. Line N1 moves the tool from (X0.,
Y0., Z0.) to (X5., Y0., Z0.). The J value tells the control to compensate the endpoint
of the programmed line only in the Y Axis.
Line N1 could have been written using only the J-1. (not using I0. or K0.), but a Y value
must be entered if a compensation is to be made in this axis (J value used).
This G code allows the user to correct for variations in the length of cutting tools without the
need for a CAD/CAM processor. An H code is required to select the tool length from the
existing length compensation tables. A G49 or H00 command will cancel 5-axis
compensation. For G143 to work correctly there must be two rotary axes, A and B. G90,
absolute positioning mode must be active (G91 cannot be used). Work position 0,0 for the
A and B axes must be so the tool is parallel with Z-Axis motion.
The intention behind G143 is to compensate for the difference in tool length between the
originally posted tool and a substitute tool. Using G143 allows the program to run without
having to repost a new tool length.
G143 tool length compensation works only with rapid (G00) and linear feed (G01) motions;
no other feed functions (G02 or G03) or canned cycles (drilling, tapping, etc.) can be used.
For a positive tool length, the Z-Axis would move upward (in the + direction). If one of X, Y
or Z is not programmed, there will be no motion of that axis, even if the motion of A or B
produces a new tool length vector. Thus a typical program would use all 5 axes on one
block of data. G143 may effect commanded motion of all axes in order to compensate for
the A and B axes.
%
O61431 (G143 5-AXIS TOOL LENGTH) ;
(G54 X0 Y0 is at the top-right) ;
(Z0 is on top of the part) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X0 Y0 Z0 A0 B0 (Rapid to 1st position) ;
323
Introduction
* indicates optional
The G150 starts by positioning the cutter to a start point inside the pocket, followed by the
outline, and completes with a finish cut. The end mill will plunge in the Z-Axis. A
subprogram P### is called, which defines the pocket geometry of a closed area using G01,
G02, and G03 motions in the X and Y axes on the pocket. The G150 command will search
for an internal subprogram with a N-number specified by the P-code. If that is not found the
control will search for an external subprogram. If neither are found, alarm 314 Subprogram
Not In Memory will be generated.
324
G-codes
NOTE: When defining the G150 pocket geometry in the subprogram, do not
move back to the starting hole after the pocket shape is closed.
An I or J value defines the roughing pass amount the cutter moves over for each cut
increment. If I is used, the pocket is roughed out from a series of increment cuts in the
X-Axis. If J is used, the increment cuts are in the Y-Axis.
The K command defines a finish pass amount on the pocket. If a K value is specified, a
finish pass is performed by K amount, around the inside of pocket geometry for the last pass
and is done at the final Z depth. There is no finishing pass command for the Z depth.
The R value needs to be specified, even if it is zero ( R0), or the last R value that was
specified will be used.
Multiple passes in the pocket area are done, starting from the R plane, with each Q (Z-Axis
depth) pass to the final depth. The G150 command will first make a pass around pocket
geometry, leaving stock with K, then doing passes of I or J roughing out inside of pocket
after feeding down by the value in Q until the Z depth is reached.
The Q command must be in the G150 line, even if only one pass to the Z depth is desired.
The Q command starts from the R plane.
Notes: The subprogram (P) must not consist of more than 40 pocket geometry moves.
It may be necessary to drill a starting point, for the G150 cutter, to the final depth (Z). Then
position the end mill to the start location in the XY axes within the pocket for the G150
command.
F7.39: G150 General Pocket Milling: [1] Start Point, [Z] Final depth.
Y
Z J
X
1 1
Z I
325
Introduction
Square Pocket
326
G-codes
2 1, 6 5
X0, Y1.5
5
X0, Y0
3 4
Main Program
%
O61503 (G150 SQUARE POCKET MILLING) ;
(G54 X0 Y0 is at the center of the part) ;
(Z0 is on top of the part) ;
(T1 is a .5" endmill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X0 Y1.5 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z1.0 (Activate tool offset 1) ;
M08(Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G01 Z0.1 F10. (Feed right above the surface) ;
G150 P61504 Z-0.5 Q0.25 R0.01 J0.3 K0.01 G41 D01 F10. ;
(Pocket Mill sequence, call pocket subprogram) ;
(Cutter comp on) ;
(0.01” finish pass K on sides) ;
G40 G01 X0. Y1.5 (Cutter comp off) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z0.1 M09 (Rapid retract,Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
Subprogram
327
Introduction
%
O61505 (G150 INCREMENTAL SQUARE POCKET MILLING SUBPROGRAM) ;
(Subprogram for pocket in O61503) ;
(Must have a feedrate in G150) ;
G91 G01 Y0.5 (Linear move to position 1) ;
X-2.5 (Linear move to position 2) ;
Y-5. (Linear move to position 3) ;
X5. (Linear move to position 4) ;
Y5. (Linear move to position 5) ;
X-2.5 (Linear move to position 6, Close Pocket Loop) ;
G90 (Turn off incremental mode, Turn on absolute) ;
M99 (Exit to Main Program) ;
%
Absolute Subprogram
%
O61504 (G150 ABSOLUTE SQUARE POCKET MILLING SUBPROGRAM) ;
(Subprogram for pocket in O61503) ;
(Must have a feedrate in G150) ;
G90 G01 Y2.5 (Linear move to position 1) ;
X-2.5 (Linear move to position 2) ;
Y-2.5 (Linear move to position 3) ;
X2.5 (Linear move to position 4) ;
Y2.5 (Linear move to position 5) ;
X0. (Linear move to position 6, Close Pocket Loop) ;
M99 (Exit to Main Program) ;
%
Incremental Subprogram
%
O61505 (G150 INCREMENTAL SQUARE POCKET MILLING SUBPROGRAM) ;
(Subprogram for pocket in O61503) ;
(Must have a feedrate in G150) ;
G91 G01 Y0.5 (Linear move to position 1) ;
X-2.5 (Linear move to position 2) ;
Y-5. (Linear move to position 3) ;
X5. (Linear move to position 4) ;
Y5. (Linear move to position 5) ;
X-2.5 (Linear move to position 6, Close Pocket Loop) ;
G90 (Turn off incremental mode, Turn on absolute) ;
M99 (Exit to Main Program) ;
%
Square Island
328
G-codes
4 3
7 8
12 11
5
5 6
10 9
13 1, 14 2
X0, Y0
5
Main Program
%
O61506 (G150 SQUARE ISLAND POCKET MILLING) ;
(G54 X0 Y0 is at the bottom-left) ;
(Z0 is on top of the part) ;
(T1 is a .5" endmill) ;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X2. Y2. (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
G43 H01 Z1.0(Activate tool offset 1) ;
M08(Coolant on) ;
(BEGIN CUTTING BLOCKS) ;
G01 Z0.01 F30. (Feed right above the surface) ;
G150 P61507 X2. Y2. Z-0.5 Q0.5 R0.01 I0.3 K0.01 G41 D01 F10. ;
(Pocket mill sequence, call pocket subprogram) ;
(Cutter comp off) ;
(0.01” finish pass K on sides) ;
G40 G01 X2.Y2. (Cutter comp off) ;
(BEGIN COMPLETION BLOCKS) ;
G00 Z0.1 M09 (Rapid retract, Coolant off) ;
G53 G49 Z0 M05 (Z home, Spindle) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
Subprogram
329
Introduction
%
O61507 (G150 SQUARE ISLAND POCKET MILLING SUBPROGRAM) ;
(Subprogram for pocket in O61503) ;
(Must have a feedrate in G150) ;
G01 Y1. (Linear move to position 1) ;
X6. (Linear move to position 2) ;
Y6. (Linear move to position 3) ;
X1. (Linear move to position 4) ;
Y3.2 (Linear move to position 5) ;
X2.75 (Linear move to position 6) ;
Y4.25 (Linear move to position 7) ;
X4.25 (Linear move to position 8) ;
Y2.75 (Linear move to position 9) ;
X2.75 (Linear move to position 10) ;
Y3.8 (Linear move to position 11) ;
X1. (Linear move to position 12) ;
Y1. (Linear move to position 13) ;
X2. (Linear move to position 14, Close Pocket Loop) ;
M99 (Exit to Main Program) ;
%
Round Island
4, 10 9 3
8
5 5 6, 7
11 1, 12 2
X0, Y0
5
Main Program
%
O61508 (G150 SQ POCKET W/ ROUND ISLAND MILLING) ;
(G54 X0 Y0 is at the bottom-left) ;
330
G-codes
Subprogram
%
O61509 (G150 SQ POCKET W/ ROUND ISLAND MILLING SUBPROGRAM) ;
(Subprogram for pocket in O61503) ;
(Must have a feedrate in G150) ;
G01 Y1. (Linear move to position 1) ;
X6. (Linear move to position 2) ;
Y6. (Linear move to position 3) ;
X1. (Linear move to position 4) ;
Y3.5 (Linear move to position 5) ;
X2.5 (Linear move to position 6) ;
G02 I1. (CW circle along X axis at position 7) ;
G02 X3.5 Y4.5 R1. (CW arc to position 8) ;
G01 Y6. (Linear move to position 9) ;
X1. (Linear move to position 10) ;
Y1. (Linear move to position 11) ;
X2. (Linear move to position 12, Close Pocket Loop) ;
M99 (Exit to Main Program) ;
%
331
Introduction
G153 5-Axis High Speed Peck Drilling Canned Cycle (Group 09)
E - Specifies the distance from the start position to the bottom of the hole
F - Feedrate
I - Size of first cutting depth (must be a positive value)
J - Amount to reduce cutting depth each pass (must be a positive value)
K - Minimum depth of cut (must be a positive value)
L - Number of repeats
P - Pause at end of last peck, in seconds
Q - The cut-in value (must be a positive value)
A - A-Axis tool starting position
B - B-Axis tool starting position
X - X-Axis tool starting position
Y - Y-Axis tool starting position
Z - Z-Axis tool starting position
F7.43: G153 5-Axis High Speed Peck Drilling: [#22] Setting 22.
#22 #22
E E
I1=I Q
I2= I1- J Q
I3=I2 -J Q
This is a high-speed peck cycle where the retract distance is set by Setting 22.
If I, J, and K are specified, a different operating mode is selected. The first pass will cut in
by amount I, each succeeding cut will be reduced by amount J, and the minimum cutting
depth is K. If P is used, the tool will pause at the bottom of the hole for that amount of time.
NOTE: The same dwell time applies to all subsequent blocks that do not
specify a dwell time.
332
G-codes
NOTE: G110 to G129 refer to the same work offsets as G154 P1 through P20;
they can be selected by using either method.
When a G154 work offset is active, the heading in the upper right work offset will show the
G154 P value.
NOTE: The P values are modal. This means if you are in the middle of a
canned cycle and a G04 Pnn or an M97 Pnn is used the P value will
be used for the dwell / subprogram as well as the canned cycle.
333
Introduction
334
G-codes
E - Specifies the distance from the start position to the bottom of the hole
F - Feedrate
L - Number of repeats
A - A-Axis tool starting position
B - B-Axis tool starting position
X - X-Axis tool starting position
Y - Y-Axis tool starting position
Z - Z-Axis tool starting position
S - Spindle Speed
335
Introduction
CAUTION: Unless you specify otherwise, this canned cycle uses the most
recently commanded spindle direction (M03, M04, or M05). If the
program did not specify a spindle direction before it commands this
canned cycle, the default is M03 (clockwise). If you command M05, the
canned cycle will run as a “no-spin” cycle. This lets you run
applications with self-driven tools, but it can also cause a crash. Be
sure of the spindle direction command when you use this canned
cycle.
%
(G54 X0 Y0 is) ;
(Z0 is on the top of the part) ;
(T1 - n/a ) ;
;
(BEGIN PREPARATION BLOCKS) ;
T1 M06 (Select tool 1) ;
G00 G90 G40 G49 G54 (Safe startup) ;
G00 G54 X0 Y0 (Rapid to 1st position) ;
S1000 M03 (Spindle on CW) ;
336
G-codes
CAUTION: Unless you specify otherwise, this canned cycle uses the most
recently commanded spindle direction (M03, M04, or M05). If the
program did not specify a spindle direction before it commands this
canned cycle, the default is M03 (clockwise). If you command M05, the
canned cycle will run as a “no-spin” cycle. This lets you run
applications with self-driven tools, but it can also cause a crash. Be
sure of the spindle direction command when you use this canned
cycle.
%
(COUNTER DRILL RIGHT, FRONT) ;
T2 M6 ;
G01 G54 G90 X8.4221 Y-8.4221 B23. A21.342 S2200 M3 F360.
(Clearance Position) ;
337
Introduction
G143 H2 Z14.6228 M8 ;
G1 X6.6934 Y-6.6934 Z10.5503 F360. (Initial Start position) ;
G162 E.52 P2.0 F7. (Canned Cycle) ;
G80 ;
X8.4221 Y-8.4221 B23. A21.342 Z14.6228 (Clearance Position) ;
M5 ;
G1 G28 G91 Z0. ;
G91 G28 B0. A0. ;
M01 ;
%
F7.46: G162 Spot Drill Canned Cycle
If I, J, and K are specified the first pass will cut in by amount I, each succeeding cut will
be reduced by amount J, and the minimum cutting depth is K.
A P value is used the tool will pause at the bottom of the hole after the last peck for that
amount of time. The following example will peck several times and dwell for one and a half
seconds at the end:
338
G-codes
NOTE: The same dwell time applies to all subsequent blocks that do not
specify a dwell time.
F7.47: G163 5-Axis Normal Peck Drilling Canned Cycle: [#22] Setting 22, [#52] Setting 52.
#22 #22
E E
#52
I1=I Q
I2= I1- J Q
I3=I2 -J Q
Setting 52 also changes the way G163 works when it returns to the start position. Usually
the R plane is set well above the cut to ensure that the peck motion allows the chips to get
out of the hole. This wastes time as the drill starts by drilling empty space. If Setting 52 is
set to the distance required to clear chips, the start position can be put much closer to the
part being drilled. When the chip-clearing move to the start position occurs, the Z axis
moves above the start position by the amount given in this setting.
%
(PECK DRILL RIGHT, FRONT) ;
T5 M6 ;
G01 G54 G90 X8.4221 Y-8.4221 B23. A21.342 S2200 M3 F360.
(Clearance Position) ;
G143 H5 Z14.6228 M8 ;
G1 X6.6934 Y-6.6934 Z10.5503 F360. (Initial Start position) ;
G163 E1.0 Q.15 F12. (Canned Cycle) ;
G80 ;
X8.4221 Y-8.4221 B23. A21.342 Z14.6228 (Clearance Position) ;
M5 ;
G1 G28 G91 Z0. ;
G91 G28 B0. A0. ;
M01 ;
%
339
Introduction
E - Specifies the distance from the start position to the bottom of the hole
F - Feedrate
A - A-Axis tool starting position
B - B-Axis tool starting position
X - X-Axis tool starting position
Y - Y-Axis tool starting position
Z - Z-Axis tool starting position
S - Spindle Speed
F7.48: G164 5-Axis Tapping Canned Cycle
%
(1/2-13 TAP) ;
T5 M6 ;
G01 G54 G90 X8.4221 Y-8.4221 B23. A21.342 S500M3 F360.
(Clearance Position) ;
G143 H5 Z14.6228 M8 ;
G1 X6.6934 Y-6.6934 Z10.5503 F360. (Initial Start position) ;
G164 E1.0 F38.46 (Canned Cycle) ;
G80 ;
X8.4221 Y-8.4221 B23. A21.342 Z14.6228 (Clearance Position) ;
M5 ;
G1 G28 G91 Z0. ;
G91 G28 B0. A0. ;
M01 ;
%
340
G-codes
%
(Boring Cycle) ;
T5 M6 ;
G01 G54 G90 X8.4221 Y-8.4221 B23. A21.342 S2200 M3 F360.
(Clearance Position) ;
G143 H5 Z14.6228 M8 ;
G1 X6.6934 Y-6.6934 Z10.5503 F360. (Initial Start position) ;
G165 E1.0 F12. (Canned Cycle) ;
G80 ;
X8.4221 Y-8.4221 B23. A21.342 Z14.6228 (Clearance Position) ;
M5 ;
G00 G28 G91 Z0. ;
G91 G28 B0. A0. ;
M01 ;
%
341
Introduction
CAUTION: Unless you specify otherwise, this canned cycle uses the most
recently commanded spindle direction (M03, M04, or M05). If the
program did not specify a spindle direction before it commands this
canned cycle, the default is M03 (clockwise). If you command M05, the
canned cycle will run as a “no-spin” cycle. This lets you run
applications with self-driven tools, but it can also cause a crash. Be
sure of the spindle direction command when you use this canned
cycle.
%
(Bore and Stop Cycle) ;
T5 M6 ;
G01 G54 G90 X8.4221 Y-8.4221 B23. A21.342 S2200 M3 F360.
(Clearance Position) ;
G143 H5 Z14.6228 M8 ;
G1 X6.6934 Y-6.6934 Z10.5503 F360. (Initial Start position) ;
G166 E1.0 F12. (Canned Cycle) ;
342
G-codes
G80 ;
X8.4221 Y-8.4221 B23. A21.342 Z14.6228 (Clearance Position) ;
M5 ;
G00 G28 G91 Z0. ;
G91 G28 B0. A0. ;
M01 ;
%
CAUTION: Unless you specify otherwise, this canned cycle uses the most
recently commanded spindle direction (M03, M04, or M05). If the
program did not specify a spindle direction before it commands this
canned cycle, the default is M03 (clockwise). If you command M05, the
canned cycle will run as a “no-spin” cycle. This lets you run
applications with self-driven tools, but it can also cause a crash. Be
sure of the spindle direction command when you use this canned
cycle.
343
Introduction
* indicates optional
This G code is used to perform rigid tapping for non-vertical holes. It may be used with a
right-angle head to perform rigid tapping in the X or Y Axis on a three-axis mill, or to perform
rigid tapping along an arbitrary angle with a five-axis mill. The ratio between the feedrate
and spindle speed must be precisely the thread pitch being cut.
It is not necessary to start the spindle before this canned cycle; the control does this
automatically.
Setting 191 sets the default smoothness to the user specified ROUGH, MEDIUM, or FINISH
when G187 is not active. The Medium setting is the factory default setting.
344
G-codes
NOTE: Changing Setting 85 to a low value may make the machine operate as
if it is in exact stop mode.
NOTE: Changing setting 191 to FINISH will take longer to machine a part.
Use this setting only when needed for the best finish.
G187 Pm Ennnn sets both the smoothness and max corner rounding value. G187 Pm sets
the smoothness but leaves max corner rounding value at its current value. G187 Ennnn
sets the max corner rounding but leaves smoothness at its current value. G187 by itself
cancels the E value and sets smoothness to the default smoothness specified by Setting
191. G187 will be canceled whenever [RESET] is pressed, M30 or M02 is executed, the end
of program is reached, or [EMERGENCY STOP] is pressed.
The Haas CNC control combines the known centers of rotation for the rotary table (MRZP)
and the location of the workpiece (e.g., active work offset G54) into a coordinate system.
TCPC makes sure that this coordinate system remains fixed relative to the table; when the
rotary axes rotate, the linear coordinate system rotates with them. Like any other work
setup, the workpiece must have a work offset applied to it. This tells the Haas CNC control
where the workpiece is located on the machine table.
The conceptual example and illustrations in this section represent a line segment from a
full 4- or 5-axis program.
NOTE: For clarity, the illustrations in this section do not depict workholding.
Also, as conceptual, representative drawings, they are not to scale
and may not depict the exact axis motion described in the text.
The straight line edge highlighted in Figure F7.52 is defined by point (X0, Y0, Z0) and point
(X0, Y-1., Z0). Movement along the Y Axis is all that is required for the machine to create
this edge. The location of the workpiece is defined by work offset G54.
345
Introduction
X X0, Y0, Z0
(G54)
X0, Y-1., Z0
Z
In Figure F7.53, the B and C Axes have been rotated 15 degrees each. To create the same
edge, the machine needs to make an interpolated move with the X, Y, and Z Axes. Without
TCPC, you would need to repost the CAM program for the machine to correctly create this
edge.
TCPC is invoked in Figure F7.54. The Haas CNC control knows the centers of rotation for
the rotary table (MRZP), and the location of the workpiece (active work offset G54). This
data is used to produce the desired machine motion from the original CAM-generated
program. The machine follows an interpolated X-Y-Z path to create this edge, even though
the program simply commands a single-axis move along the Y Axis.
346
G-codes
X0, Y0, Z0
X0, Y-1., Z0
%
O00003 (TCPC SAMPLE)
G20
G00 G17 G40 G80 G90 G94 G98
G53 Z0.
T1 M06
G00 G90 G54 B47.137 C116.354 (POSITION ROTARY AXES)
G00 G90 X-0.9762 Y1.9704 S10000 M03 (POSITION LINEAR AXES)
G234 H01 Z1.0907 (TCPC ON WITH LENGTH OFFSET 1, APPROACH IN
Z-AXIS)
G01 X-0.5688 Y1.1481 Z0.2391 F40.
X-0.4386 Y0.8854 Z-0.033
X-0.3085 Y0.6227 Z-0.3051
X-0.307 Y0.6189 Z-0.3009 B46.784 C116.382
X-0.3055 Y0.6152 Z-0.2966 B46.43 C116.411
X-0.304 Y0.6114 Z-0.2924 B46.076 C116.44
X-0.6202 Y0.5827 Z-0.5321 B63.846 C136.786
X-0.6194 Y0.5798 Z-0.5271 B63.504 C136.891
X-0.8807 Y0.8245 Z-0.3486
X-1.1421 Y1.0691 Z-0.1701
X-1.9601 Y1.8348 Z0.3884
G49 (TCPC OFF)
G00 G53 Z0.
G53 B0. C0.
G53 Y0.
M30
%
347
Introduction
• [EMERGENCY STOP]
• [RESET]
• [HANDLE JOG]
• [LIST PROGRAM]
• M02 – Program End
• M30 – Program End and Reset
• G43 – Tool Length Compensation +
• G44 – Tool Length Compensation -
• G49 – G43 / G44 / G143 Cancel
Invoking G234 (TCPC) rotates the work envelope. If the position is close to the travel limits,
the rotation can put the current work position outside of travel limits and cause an over
travel alarm. To solve this, command the machine to the center of the work offset (or near
the center of the table on a UMC), and then invoke G234 (TCPC).
G234 (TCPC) is intended for simultaneous 4- and 5-axis contouring programs. An active
work offset (G54, G55, etc.) is required to use G234.
348
G-codes
CAUTION: The B-Axis value of the work offset you use with G254 MUST be zero.
With DWO, you no longer need to set the workpiece in the exact position as programmed
in the CAM system. DWO applies the appropriate offsets to account for the differences
between the programmed workpiece location and the actual workpiece location. This
eliminates the need to repost a program from the CAM system when the programmed and
actual workpiece locations are different.
The control knows the centers of rotation for the rotary table (MRZP) and the location of the
workpiece (active work offset). This data is used to produce the desired machine motion
from the original CAM-generated program. Therefore, it is recommended that G254 be
invoked after the desired work offset is commanded, and after any rotational command to
position the 4th and 5th axes.
After G254 is invoked, you must specify an X, Y, and Z Axis position before a cutting
command, even if it recalls the current position. The program should specify the X- and Y
Axis position in one block and the Z Axis in a separate block.
CAUTION: Be sure to cancel G254 with G255 when your program does
simultaneous 4- or 5-axis machining.
NOTE: For clarity, the illustrations in this section do not depict workholding.
The block in the figure below was programmed in the CAM system with the top center hole
located at the center of the pallet and defined as X0, Y0, Z0.
349
Introduction
In the figure below, the actual workpiece is not located in this programmed position. The
center of the workpiece is actually located at X3, Y-2, Z0, and is defined as G54.
DWO is invoked in the figure below. The control knows the centers of rotation for the rotary
table (MRZP), and the location of the workpiece (active work offset G54). The control uses
this data to apply the appropriate offset adjustments to make sure that the proper toolpath
is applied to the workpiece, as intended by the CAM-generated program. This eliminates
the need to repost a program from the CAM system when the programmed and actual
workpiece locations are different.
350
G-codes
%
O00004 (DWO SAMPLE) ;
G20 ;
G00 G17 G40 G80 G90 G94 G98 ;
G53 Z0. ;
T1 M06 ;
G00 G90 G54 X0. Y0. B0. C0. (G54 is the active work offset
for) ;
(the actual workpiece location) ;
S1000 M03 ;
G43 H01 Z1. (Start position 1.0 above face of part Z0.) ;
G01 Z-1.0 F20. (Feed into part 1.0) ;
G00 G53 Z0. (Retract Z with G53) ;
B90. C0. (ROTARY POSITIONING) ;
G254 (INVOKE DWO) ;
X1. Y0. (X and Y position command) ;
Z2. (Start position 1.0 above face of part Z1.0) ;
G01 Z0. F20. (Feed into part 1.0 ) ;
G00 G53 Z0. (Retract Z with G53) ;
B90. C-90. (ROTARY POSITIONING) ;
X1. Y0. (X and Y position command) ;
Z2. (Start position 1.0 above face of part Z1.0) ;
G01 Z0. F20. (Feed into part 1.0 ) ;
G255 (CANCEL DWO) ;
B0. C0. ;
M30 ;
%
351
Introduction
• [EMERGENCY STOP]
• [RESET]
• [HANDLE JOG]
• [LIST PROGRAM]
• G255 – Cancel DWO
• M02 – Program End
• M30 – Program End and Reset
Some codes ignore G254. These codes will not apply rotational deltas:
*It is strongly recommended that you not use G28 or G29 while G254 is active, nor when
the B and C Axes are not at zero.
1. G254 (DWO) is intended for 3+1 and 3+2 machining, where the B and C Axes are
used to position only.
2. An active work offset (G54, G55, etc.) must be applied before G254 is commanded.
3. All rotary motion must be complete before G254 is commanded.
4. After G254 is invoked, you must specify an X-, Y-, and Z-Axis position prior to any
cutting command, even if it recalls the current position. It is recommended to specify
the X and Y Axes in one block, and the Z Axis in a separate block.
5. Cancel G254 with G255 immediately after use and before ANY rotary motion.
6. Cancel G254 with G255 any time simultaneous 4- or 5-axis machining is performed.
7. Cancel G254 with G255 and retract the cutting tool to a safe location before the
workpiece is repositioned.
352
G-codes
353
Introduction
354
M-codes
Chapter 8: M-codes
8.1 Introduction
This chapter gives detailed descriptions of the M-codes that you use to program your
machine.
CAUTION: The sample programs in this manual have been tested for accuracy,
but they are for illustrative purposes only. The programs do not define
tools, offsets, or materials. They do not describe workholding or other
fixturing. If you choose to run a sample program on your machine, do
so in Graphics mode. Always follow safe machining practices when
you run an unfamiliar program.
M-codes are miscellaneous machine commands that do not command axis motion. The
format for an M-code is the letter M followed by two to three digits; for example M03.
Only one M-code is allowed per line of code. All M-codes take effect at the end of the block.
355
Introduction
356
M-codes
357
Introduction
Spindle speed is controlled with an S address code; for example, S5000 commands a
spindle speed of 5000 RPM.
If your machine has a gearbox, the spindle speed you program determines the gear that
the machine uses, unless you use M41 or M42 to override gear selection. Refer to page 364
for more information on the gear select override M-codes.
358
M-codes
The M06 code is used to change tools. For example, M06 T12 puts tool 12 into the spindle.
If the spindle is running, the spindle and coolant (including TSC) is stopped by the M06
command.
NOTE: The M06 command automatically stops the spindle, stops coolant,
moves the Z Axis to the tool change position, and orients the spindle
for the tool change. You do not need to include these commands for a
tool change in your program.
NOTE: M00, M01, any work offset G-code (G54, etc.), and block delete
slashes before a tool change stop look-ahead, and the control does
not pre-call the next tool to the change position (for a side-mount tool
changer only). This can cause significant delays to program execution,
because the control must wait for the tool to arrive at the change
position before it can execute the tool change. You can command the
carousel to the tool position with a T code after a tool change; for
example:
Refer to page 113 for more information on side-mount tool changer programming.
359
Introduction
NOTE: The control checks the coolant level only at the start of a program, so
a low coolant condition will not stop a running program.
CAUTION: Do not use straight or “neat” mineral cutting oils. They cause damage
to rubber components in the machine.
M10 Engage 4th Axis Brake / M11 Release 4th Axis Brake
M10 applies the brake to the optional 4th axis and M11 releases the brake. The optional 4th
axis brake is normally engaged, so the M10 command is only required when an M11 has
released the brake.
M12 Engage 5th Axis Brake / M13 Release 5th Axis Brake
M12 applies the brake to the optional 5th axis and M13 releases the brake. The optional 5th
axis brake is normally engaged, so the M12 command is only required when an M13 has
released the brake.
This M16 behaves the same as M06. However M06 is the preferred method for commanding
tool changes.
M19 adjusts the spindle to a fixed position. The spindle only orients to the zero position
without the optional M19 orient spindle feature. The orient spindle function allows P and R
address codes. For example:
The R-value allows the programmer to specify up to two decimal places; for example:
360
M-codes
Only one relay is switched at a time. A typical operation is to command a rotary product.
The sequence is:
The M-Fin connector is at P8 on the I/O PCB. Refer to the description below for a diagram
and pinouts.
M-code Relays
The M-code relays are in the lower-left corner of the I/O PCB.
These relays can activate probes, auxiliary pumps, clamping devices, etc. Connect these
auxiliary devices to the terminal strip for the individual relay. The terminal strip has positions
for, Normally Open (NO), Normally Closed (NC), and Common (COM).
NO
COM
NC
M25
M24
M22
M23
M21
361
Introduction
F8.2: M-Fin Circuit at P8 on the Main I/O PCB. Pin 3 is the M-Fin input and interacts with input
number 18 in the control. Pin 1 is the M-Fin output and interacts with output number 4 on
the control.
7
6
5
2
3 +12V
4
P8 8
1 1 +3.3V
1
2 2
M-Fin 3 3
4 +12V
4
12V
Return
12V
Return
Only the outputs on the I/O PCB are addressable with M21-M25, M51-M55, and M61-M65. If
you use an 8M relay bank, you must use M29, M59, and M69 with P codes to activate the
relays on the bank. The P codes for the first 8M bank are P90-P97.
M29 turns on a relay, pauses the program, and waits for an external M-Fin signal. When the
control receives the M-Fin signal, the relay turns off and the program continues. [RESET]
stops any operation waiting for a relay-activated accessory to finish.
362
M-codes
The optional conveyor coolant washdown runs while the chip conveyor is on.
1
M35
M34
M34 moves the optional P-Cool spigot one position away from the current position (farther
from home).
M35 moves the coolant spigot one position towards the home position.
CAUTION: Do not rotate the coolant spigot by hand. Serious motor damage will
occur.
%
Onnnnn (program number) ;
M36 (Flash “Part Ready” light, wait until the button is
363
Introduction
pressed) ;
M01 ;
M50 (Perform pallet change after [PART READY] is pushed) ;
(Part Program) ;
M30 ;
%
M06 is the command to change tools. M39 is normally useful for diagnostic purposes, or to
recover from a tool changer crash.
Command M41 or M42 with the spindle speed before the spindle start command, M03. For
example:
%
S1200 M41 ;
M03 ;
%
The gear state reverts to default at the next spindle speed (Snnnn) command. The spindle
does not have to stop.
Refer to M21 through M26 on page 361 for details on the M-code relays.
364
M-codes
M59 turns on a discrete output relay. An example of its usage is M59 Pnnn, where nnn is
the relay number being turned on. M59 can also be used with the corresponding macro
number in the range from 12000 to 12255. When using Macros, M59 P90 does the same
thing as using the optional macro command #12090=1, except that it is processed at the
end of the line of code.
NOTE: For the 8 spare M functions on relay board 1 use relays 90-97 or macro
addresses #12090 - #12097
365
Introduction
F8.4: Probe Positioning Error: [1] Signal Found. [2] Signal not Found.
1 2
M83 Auto Air Gun / MQL On / M84 Auto Air Gun / MQL Off
M83 turns the Auto Air Gun (AAG) or Minimum Quantity Lubrication (MQL) option on, and
M84 turns it off. M83 with a Pnnn argument (where nnn is in milliseconds) turns the AAG or
MQL on for the specified time, then turns it off. You can also press [SHIFT] and then
[COOLANT] to turn on the AAG or MQL manually.
The control automatically stops the spindle before it executes M88 or M89. The control does
not automatically start the spindle again after M89. If your program continues with the same
tool after an M89 command, be sure to add a spindle speed command before further
motion.
366
M-codes
CAUTION: You must use proper tooling, with a through-hole, when you use the
TSC system. Failure to use proper tooling can flood the spindle head
with coolant and void the warranty.
Sample Program
NOTE: The M88 command should be before the spindle speed command. If
you command M88 after the spindle speed command, the spindle
starts, then stops, turns on TSC, and then starts again.
%
T1 M6 (TSC Coolant Through Drill) ;
G90 G54 G00 X0 Y0 ;
G43 H01 Z.5 ;
M88 (Turn TSC on) ;
S4400 M3 ;
G81 Z-2.25 F44. R.1 ;
M89 G80 (Turn TSC off) ;
G91 G28 Z0 ;
G90 ;
M30 ;
%
The comment immediately following M95 must contain the duration, in hours and minutes,
that you want the machine to sleep. For example, if the current time were 6 p.m. and you
want the machine to sleep until 6:30 a.m. the next day, command M95 (12:30). The
line(s) after M95 should be axis moves and spindle warm-up commands.
M96 is used to test a discrete input for 0 (off) status. This is useful for checking the status
of automatic work holding or other accessories that generate a signal for the control. The
Q value must be in the range 0 to 255, which corresponds to the inputs found on the
diagnostic display I/O tab. When this program block is executed and the input signal
specified by Q has a value of 0, the program block Pnnnn is performed (the Nnnnn that
matches the Pnnnn line must be in the same program). The M96 sample program uses
input #18 M-FIN INPUT
367
Introduction
Example:
%
O00096(SAMPLE PROGRAM FOR M96 JUMP IF NO INPUT) ;
(IF M-FIN INPUT #18 IS EQUAL TO 1 THE PROGRAM WILL JUMP TO
N100) ;
(AFTER JUMPING TO N100 THE CONTROL ALARMS OUT WITH A MESSAGE)
;
(M-FIN INPUT=1) ;
(IF M-FIN INPUT #18 IS EQUAL TO 0 THE PROGRAM JUMPS TO N10) ;
(AFTER JUMPING TO N10 THE CONTROL DWELLS FOR 1 SECOND THEN
JUMPS TO N5) ;
(THE PROGRAM CONTINUES THIS LOOP UNTIL INPUT #18 IS EQUAL TO
1) ;
G103 P1 ;
... ;
... ;
N5 M96 P10 Q18(JUMP TO N10 IF M-FIN INPUT #18 = 0) ;
... ;
M99 P100(JUMP TO N100) ;
N10 ;
G04 P1. (DWELL FOR 1 SECOND) ;
M99 P5 (JUMP TO N5) ;
... ;
N100 ;
#3000= 10(M-FIN INPUT=1) ;
M30 ;
... ;
%
M97 is used to call a subprogram referenced by a line number (N) within the same program.
A code is required and must match a line number within the same program. This is useful
for simple subprograms within a program; does not require a separate program. The
subprogram must end with an M99. Lnn code in the M97 block repeats the subprogram call
nn times.
NOTE: The subprogram is within the body of the main program, placed after
the M30.
M97 Example:
368
M-codes
%
O00001 ;
M97 P100 L4 (CALLS N100 SUBPROGRAM) ;
M30 ;
N100 (SUBPROGRAM) ; ;
M00 ;
M99 (RETURNS TO MAIN PROGRAM) ;
%
M98 calls a subprogram in the format M98 Pnnnn, where Pnnnn is the number of the
program to call, or M98 (<path>/Onnnnn), where <path> is the device path that leads
to the subprogram.
The subprogram must contain an M99 to return to the main program. You can add an Lnn
count to the M98 block M98 to call the subprogram nn times before continuing to the next
block.
When your program calls an M98 subprogram, the control looks for the subprogram in the
main program’s directory. If the control cannot find the subprogram, it then looks in the
location specified in Setting 251. Refer to page 166 for more information. An alarm occurs
if the control cannot find the subprogram.
M98 Example:
The subprogram is a separate program (O00100) from the main program (O00002).
%
O00002 (PROGRAM NUMBER CALL);
M98 P100 L4 (CALLS O00100 SUB 4 TIMES) ;
M30 ;
%
%
O00100 (SUBPROGRAM);
M00 ;
M99 (RETURN TO MAIN PROGRAM) ;
%
%
O00002 (PATH CALL);
M98 (USB0/O00001.nc) L4 (CALLS O00100 SUB 4 TIMES) ;
M30 ;
%
%
O00100 (SUBPROGRAM);
369
Introduction
M00 ;
M99 (RETURN TO MAIN PROGRAM) ;
%
• M99 is used at the end of a subprogram, local subprogram, or macro to return back
to the main program.
• An M99 Pnn jumps the program to the corresponding Nnn in the program.
• An M99 in the main program causes the program to loop back to the beginning and
execute until [RESET] is pressed.
Haas
...
N50 M98 P2 ;
...
...
M30 ;
subprogram: O0002 ;
M99 ;
M99 jumps to a specific block with or with out the macro option.
370
M-codes
M109 lets a G-code program place a short prompt (message) on the screen. You must use
a P code to specify macro variable in the range 500-549 or 10500 through 10549. The
program can check for any character that can be entered from the keyboard by comparing
with the decimal equivalent of the ASCII character (G47, Text Engraving, has a list of ASCII
characters).
NOTE: Macro Variables 540-599 and 10549-10599 are reserved for the WIPS
(probe) option. If your machine is equipped with WIPS only use
P500-539 or P10500-10599.
The following sample program asks the user a Yes or No question, then waits for either a Y
or an N to be entered. All other characters are ignored.
%
O61091 (M109 INTERACTIVE USER INPUT) ;
(This program has no axis movement) ;
N1 #10501= 0. (Clear the variable) ;
N5 M109 P10501 (Sleep 1 min?) ;
IF [ #10501 EQ 0. ] GOTO5 (Wait for a key) ;
IF [ #10501 EQ 89. ] GOTO10 (Y) ;
IF [ #10501 EQ 78. ] GOTO20 (N) ;
GOTO1 (Keep checking) ;
N10 (A Y was entered) ;
M95 (00:01) ;
GOTO30 ;
N20 (An N was entered) ;
G04 P1. (Do nothing for 1 second) ;
N30 (Stop) ;
M30 ;
%
The following sample program asks the user to select a number, then wait for a 1, 2, 3, 4
or a 5 to be entered; all other characters are ignored.
%
O00065 (M109 INTERACTIVE USER INPUT 2) ;
(This program has no axis movement) ;
N1 #10501= 0 (Clear Variable #10501) ;
(Variable #10501 will be checked) ;
(Operator enters one of the following selections)
N5 M109 P501 (1,2,3,4,5) ;
371
Introduction
IF [ #10501 EQ 0 ] GOTO5 ;
(Wait for keyboard entry loop until entry) ;
(Decimal equivalent from 49-53 represent 1-5) ;
IF [ #10501 EQ 49 ] GOTO10 (1 was entered go to N10) ;
IF [ #10501 EQ 50 ] GOTO20 (2 was entered go to N20) ;
IF [ #10501 EQ 51 ] GOTO30 (3 was entered go to N30) ;
IF [ #10501 EQ 52 ] GOTO40 (4 was entered go to N40) ;
IF [ #10501 EQ 53 ] GOTO50 (5 was entered go to N50) ;
GOTO1 (Keep checking for user input loop until found) ;
N10 ;
(If 1 was entered run this sub-routine) ;
(Go to sleep for 10 minutes) ;
#3006= 25 (Cycle start sleeps for 10 minutes) ;
M95 (00:10) ;
GOTO100 ;
N20 ;
(If 2 was entered run this sub routine) ;
(Programmed message) ;
#3006= 25 (Programmed message cycle start) ;
GOTO100 ;
N30 ;
(If 3 was entered run this sub routine) ;
(Run sub program 20) ;
#3006= 25 (Cycle start program 20 will run) ;
G65 P20 (Call sub-program 20) ;
GOTO100 ;
N40 ;
(If 4 was entered run this sub routine) ;
(Run sub program 22) ;
#3006= 25 (Cycle start program 22 will be run) ;
M98 P22 (Call sub program 22) ;
GOTO100 ;
N50 ;
(If 5 was entered run this sub-routine) ;
(Programmed message) ;
#3006= 25 (Reset or cycle start will turn power off) ;
#12006= 1 ;
N100 ;
M30 (End Program);
%
372
M-codes
The correct command format is M130(file.xxx), where file.xxx is the name of the
file, plus the path, if necessary. You can also add a second comment in parentheses to
appear as a comment at the top of the media window.
NOTE: M130 uses the subprogram search settings, Settings 251 and 252 in
the same way that M98 does. You can also use the Insert Media
File command in the editor to easily insert an M130 code that
includes the filepath. Refer to page 131 for more information.
NOTE: For the fastest loading times, use files with pixel dimensions divisible
by 8 (most unedited digital images have these dimensions by default),
and a maximum pixel size of 1920 x 1080.
Your media appears in the Media tab under Current Commands. The media displays until
the next M130 displays a different file, or M131 clears the media tab contents.
373
Introduction
The variation you use depends on the material, tooling, and the characteristics of you
application, but 100 RPM over 1 second is a good starting point.
You can override the values of settings 165 and 166 using P and E address codes when
used with M138. Where P is SSV Variation (RPM) and E is the SSV Cycle (Sec). See
example below:
M138 P500 E1.5 (Turn SSV On, vary the speed by 500 RPM, cycle
every 1.5 seconds);
M138 P500(Turn SSV on, vary the speed by 500, cycle based on
setting 166);
M138 E1.5 (Turn SSV on, vary the speed by setting 165, cycle
every 1.5 seconds);
NOTE: If you have an M138 Enn on one line and a G187 Enn on another line,
the E codes would be unique to the line they are on. The Enn Code for
the G187 would apply to G187 only and not affect the active SSV
behavior.
M138 is independent of spindle commands; once commanded, it is active even when the
spindle is not turning. Also, M138 remains active until canceled with M139, or at M30,
Reset, or Emergency Stop.
374
M-codes
375
Introduction
376
Settings
Chapter 9: Settings
9.1 Introduction
This chapter gives detailed descriptions of the settings that control the way that your
machine works.
To quickly access a single setting, make sure the SETTINGS tab is active, type the setting
number, and then press [F1] or, if a setting is highlighted, press the [DOWN] cursor.
Some settings have numerical values that fit in a given range. To change the value of these
settings, type the new value and press [ENTER]. Other settings have specific available
values that you select from a list. For these settings, use the [RIGHT] cursor to display the
choices. Press [UP] and [DOWN] to scroll through the options. Press [ENTER] to select
the option.
9 Dimensioning 385
377
Introduction
378
Settings
82 Language 396
379
Introduction
380
Settings
381
Introduction
382
Settings
383
Introduction
384
Settings
F9.1: Setting 4 -Graphics Rapid Path:[1] All Rapid Tool Motions Shown with a Dashed Line
When ON. [2] Only Cut Lines Shown When OFF.
1 2
9 - Dimensioning
This setting selects between inch and metric mode. When it is set to INCH, the programmed
units for X, Y, and Z are inches, to 0.0001". When it is set to MM, programmed units are
millimeters, to 0.001 mm. All offset values are converted when this setting is changed from
inches to metric, or vice versa. However, changing this setting does not automatically
translate a program stored in memory; the programmed axis values must be changed for
the new units.
When set to INCH, the default G-code is G20, when set to MM, the default G-code is G21.
385
Introduction
Inch Metric
NOTE: This setting does not generate an alarm with an H00. H00 is used to
cancel the tool length offset.
386
Settings
If you attempt to access the 09000 folder while Setting 23 is ON, you get the message
Setting 23 restricts access to folder.
F9.2: Setting 27, Direction the Tool is Shifted to Clear Boring Tool: [1] Part, [2] Bored hole.
Y
1
X X+
2
Y
387
Introduction
When it is OFF, the initial canned cycle definition block requires an X or Y code for the
canned cycle to be executed.
When it is ON, the initial canned cycle definition block causes one cycle to be executed even
when there is no X or Y code in the block.
NOTE: When an L0 is in that block, it will not execute the canned cycle on the
definition line. This setting has no effect on G72 cycles.
29 - G91 Non-modal
Turning this setting ON uses the G91 command only in the program block it is in
(non-modal). When it is OFF, and a G91 is commanded, the machine uses incremental
moves for all axis positions.
32 - Coolant Override
This setting controls how the coolant pump operates. When Setting 32 NORMAL, you can
press [COOLANT], or you can use M-codes in a program, to turn the coolant pump on and
off.
When Setting 32 is OFF, the control gives the message FUNCTION LOCKED when you
press [COOLANT]. The control gives an alarm when a program commands the coolant
pump on or off.
When Setting 32 is IGNORE, the control ignores all programmed coolant commands, but
you can press [COOLANT] to turn the coolant pump on or off.
388
Settings
33 - Coordinate System
This setting changes the way the Haas control recognizes the work offset system when a
G52 or G92 is programmed. It can be set to FANUC or HAAS.
Any values in the G52 register are added to all work offsets (global coordinate shift). This
G52 value can be entered either manually or through a program. When FANUC is selected,
pressing [RESET], commanding an M30, or machine power down clears out the value in
G52.
Any values in the G52 register are added to all work offsets. This G52 value can be entered
either manually or through a program. The G52 coordinate shift value is set to zero (zeroed)
by manually entering zero, or by programming it with G52 X0, Y0, and/or Z0.
35 - G60 Offset
This setting is used to specify the distance an axis travels past the target point prior to
reversing. Also see G60.
36 - Program Restart
When this setting is ON, restarting a program from a point other than the beginning directs
the control to scan the entire program to make sure that the tools, offsets, G- and M-codes,
and axis positions are set correctly before the program starts at the block where the cursor
is positioned.
When Setting 36 is ON, an alarm will be generated if the program is started on a line of code
where Cutter Compensation is active. It is mandatory to start the program before a line of
code with G41/G42 or after a line of code with G40.
NOTE: The machine first goes to the position and changes to the tool
specified in the block before the cursor position. For example, if the
cursor is on a tool change block in the program, the machine changes
to the tool loaded before that block, then it changes to the tool
specified in the block at the cursor location.
389
Introduction
M08 Coolant On
When Setting 36 is OFF, the control starts the program, but it does not check the conditions
of the machine. Having this setting OFF may save time when running a proven program.
44 - Min F In Radius CC %
Minimum feedrate in radius cutter compensation percent setting affects the feed rate when
cutter compensation moves the tool towards the inside of a circular cut. This type of cut
slows down to maintain a constant surface feed rate. This setting specifies the slowest feed
rate as a percentage of the programmed feed rate.
390
Settings
F9.3: No Mirror Image [1], Setting 45 ON - X Mirror [2], Setting 46 ON - Y Mirror [4], Setting 45
and Setting 46 ON - XY Mirror [3]
Y+
1 2
x- x+
4 3
Y-
391
Introduction
F9.4: Setting 52, Drill Retract Distance: [1] Setting 52, [2] Start Position, [3] Retract Distance Set
by Setting 52, [4] R Plane
1 2
3
4
Turning this setting ON makes the mill reach the programmed X,Y position before the Z-Axis
moves.
58 - Cutter Compensation
This setting selects the type of cutter compensation used (FANUC or YASNAC). See the
Cutter Compensation section on page 147.
392
Settings
You can use macros to access these settings; for more information, refer to the Macro
section of this manual (starting on page 201).
NOTE: These settings are not used with the Renishaw WIPS option.
393
Introduction
NOTE: This setting must be OFF when you command an engraving cycle
(G47).
When Setting 74 and Setting 75 are both ON, the control acts normally. That is, all blocks
executed are highlighted and displayed, and when in Single-Block mode there is a pause
before each block is executed.
When Setting 74 and Setting 75 are both OFF, the control executes 9000 series programs
without displaying the program code. If the control is in Single-Block mode, no single-block
pause occurs during the running of the 9000 series program.
When Setting 75 is ON and Setting 74 is OFF, 9000 series programs are displayed as they
are executed.
77 - Scale Integer F
This setting allows the operator to select how the control interprets an F value (feedrate)
that does not contain a decimal point. (It is recommended that you always use a decimal
point.) This setting helps operators run programs developed on a control other than Haas.
There are 5 feedrate settings. This chart shows the effect of each setting on a given F10
address.
394
Settings
INCH MILLIMETER
.1 F1.0 .1 F1.0
79 - 5th-Axis Diameter
This is used to set the diameter of the 5th axis (0.0 to 50 inches), that the control uses to
determine the angular feedrate. The feedrate in a program is always inches or millimeters
per minute; therefore, the control must know the diameter of the part being machined in the
5th-axis in order to compute angular feedrate. Refer to Setting 34 on page 389 for more
information on the 4th axis diameter setting.
81 - Tool At Power Up
When [POWER UP] is pressed, the control changes to the tool specified in this setting. If
zero (0) is specified, no tool change occurs at power up. The default setting is 1.
Setting 81, causes one of these actions to occur after you press [POWER UP]:
• If Setting 81 is set to zero, the carousel rotates to pocket #1. No tool change is
performed.
• If Setting 81 contains the tool #1, and the tool currently in the spindle is tool #1, and
[ZERO RETURN] then [ALL] are pressed, the carousel remains at the same pocket
and no tool change is performed.
• If Setting 81 contains the tool number of a tool not currently in the spindle, the
carousel rotates to pocket #1 and then to the pocket containing the tool specified by
Setting 81. A tool change is performed to change the specified tool into the spindle.
395
Introduction
82 - Language
Languages other than English are available in the Haas control. To change to another
language, choose a language with the [LEFT] and[RIGHT] cursor arrows, then press
[ENTER].
83 - M30/Resets Overrides
When this setting is ON, an M30 restores any overrides (feedrate, spindle, rapid) to their
default values (100%).
on page 102):
NOTE: When tapping (rigid or floating), the feed and spindle overrides are
locked out, so the AUTOFEED setting is ineffective (the control appears
to respond to the override buttons, by displaying the override
messages).
CAUTION: Do not use the AUTOFEED setting when thread milling or auto
reversing tapping heads, as it can cause unpredictable results or even
a crash.
The last commanded feedrate is restored at the end of program execution, or when the
operator presses [RESET] or turns OFF the AUTOFEED setting. The operator can use
[FEEDRATE OVERRIDE] while the AUTOFEED setting is selected. These keys are
recognized by the AUTOFEED setting as the new commanded feedrate as long as the tool
load limit is not exceeded. However, if the tool load limit has already been exceeded, the
control ignores [FEEDRATE OVERRIDE].
396
Settings
Setting 85 causes the control to adjust feeds around corners in all 3 axes to meet the
tolerance value. The lower the value of Setting 85, the slower the control feeds around
corners to meet the tolerance. The higher the value of Setting 85, the faster the control
feeds around corners, up to the commanded feedrate, but it could round the corner off to a
radius up to the tolerance value.
NOTE: The angle of the corner also affects the change to the feedrate. The
control can cut shallow corners within tolerance at a higher feedrate
than it can with tighter corners.
F9.5: The control can cut corner [1] within tolerance at a higher feedrate than it can cut corner
[2].
If Setting 85 has a value of zero, the control acts as if exact stop is active in each motion
block.
Refer also to Setting 191 on page 404 and G187 on page 344.
397
Introduction
F9.6: Assume that the commanded feedrate is too high to achieve corner [1]. If Setting 85 has a
value of 0.025, then the control slows the feedrate enough to achieve corner [2] (with a
radius of 0.025"). If Setting 85 has a value of 0.05, then the control slows the feedrate
enough to achieve corner [3]. The feedrate to achieve corner [3] is faster than the feedrate
to achieve corner [2].
1
2
(R0.025")
3
(R0.05")
NOTE: This setting only affects programmed tool changes, it does not affect
[ATC FWD] or [ATC REV] tool changes.
398
Settings
This setting cannot be turned on while Setting 104 is ON. When one of them is set to ON,
the other automatically turns off.
This setting cannot be turned on while Setting 103 is ON. When one of them is set to ON,
the other automatically turns off.
For example, if the rotary unit is at +/-950.000 degrees and a zero return is commanded,
the rotary table rotates +/-230.000 degrees to the home position if this setting is ON.
NOTE: The rotary axis returns to the machine home position, not the active
work coordinate position.
Overview – When the machine is powered on, if Setting 109, and at least one of Settings
110, 111, or 112, are set to a nonzero value, the control gives this warning:
If you answer Y to the prompt, the control immediately applies the total compensation
(Setting 110, 111, 112), and the compensation begins to decrease as the time elapses. For
instance, after 50% of the time in Setting 109 has elapsed, the compensation distance is
50%.
To restart the time period, power the machine off and on, and then answer YES to the
compensation query at start-up.
399
Introduction
A selection of Manual allows for manual tool change operation. When a tool change is
executed in a program, the machine will stop at a tool change and prompt you to load the
tool into the spindle. Insert the spindle and press [CYCLE START] to continue the program.
On-time should be set no greater than 80% of cycle time. Refer to Setting 115 on page 394.
NOTE: The [CHIP FWD] button (orM31) starts the conveyor in the forward
direction and starts the cycle.
The [CHIP STOP] button (orM33) stops the conveyor and cancels the cycle.
On-time should be set no greater than 80% of cycle time. Refer to Setting 114 Cycle Time
on page 400.
NOTE: The [CHIP FWD] button (orM31) starts the conveyor in the forward
direction and starts the cycle.
The [CHIP STOP] button (orM33) stops the conveyor and cancels the cycle.
400
Settings
NOTE: M99 only increases the counters as it occurs in a main program, not in
a sub-program.
Entering a value of 2 is the equivalent of using a J address code value of 2 for G84 (tapping
canned cycle). However, specifying a J code for a rigid tap overrides Setting 130.
NOTE: The M-codes work only while the machine receives a cell-safe signal
from a robot. For more information, contact a robot integrator.
401
Introduction
The door closes when [CYCLE START] is pressed and opens when the program reaches
an M00, M01 (with Optional Stop turned ON), M02, or M30 and the spindle has stopped
turning.
Press [Y] to continue and update the offset. Press[N] to reject the change.
If this setting is OFF when loading an Offset file from a hardware device, the contents of the
Pocket Tool table is unaltered. Setting 155 automatically defaults to OFF when the
machine is turned on.
402
Settings
When you load the program back into memory, the control prompts Load Offsets
(Y/N?). Press Y if you want to load the saved offsets. Press N if you do not want to load
them.
NOTE: This setting affects the interpretation of all programs. It does not alter
the effect of setting 77 Scale Integer F.
403
Introduction
If setting 71 has a value, then the control ignores Settings 188 - 190, and it uses the value
in setting 71 for scaling. If the value for setting 71 is zero, then the control uses Settings
188 - 190.
NOTE: When settings 188-190 are in effect, only linear interpolation, G01, is
allowed. If G02 or G03 is used, alarm 467 is generated.
404
Settings
You can see the current g force reading on the Gauges page in Diagnostics.
Depending on the machine, vibration is considered hazardous when it exceeds 600 - 1,400
g. At or above the limit, the machine gives an alarm.
405
Introduction
If your application tends to cause vibration, you can change Setting 245 to a lower
sensitivity to prevent nuisance alarms.
• Memory
• USB Device
• Setting 252
For the Memory and USB Device options, the subprogram must be in the root directory of
the device. For the Setting 252 selection, Setting 252 must specify a search location to
use.
• The P code (nnnnn) is the same as the program number (Onnnnn) of the
subprogram.
• If the subprogram is not in memory, the file name must be Onnnnn.nc. The file name
must contain the O, leading zeros and .nc for the machine to find the subprogram.
406
Settings
• The P code (nnnnn) is the same as the program number (Onnnnn) of the
subprogram.
• If the subprogram is not in memory, the file name must be Onnnnn.nc. The file name
must contain the O, leading zeros and .nc for the machine to find the subprogram.
407
Introduction
F9.7: Graphics Display with Setting 253 On [1] and Off [2].
1 2
When this setting is 0, the control does not use 5-axis rotary center distance compensation.
When this setting has a non-zero value, the control applies 5-axis rotary center distance
compensation to the appropriate axes during all rotary motion. This aligns the tool tip with
the programmed position when the program invokes G234, Tool Center Point Control
(TCPC).
408
Settings
F9.8: Setting 254. [1] Tilt Axis Center of Rotation, [2] Rotary Axis Center of Rotation. This
illustration is not to scale. Distances are exaggerated for clarity.
2
1
254
• B tilt axis centerline and the X-Axis home position for a B/C axis UMC, or
• C rotary axis centerline and the X-Axis home position for an A/C axis trunnion.
409
Introduction
F9.9: [B] Tilt Axis, [C] Rotary Axis. On a UMC-750 (shown), these axes intersect approximately
2" above the table. [255] Setting 255 is the distance along the X Axis between machine
zero and the [B] tilt axis centerline. For [A] Tilt Axis, [C] Rotary Axis on a Trunnion, [255]
Setting 255 is the distance along the X Axis between machine zero and the [C] axis
centerline. This illustration is not to scale.
C Z
256 Y
X
257
255
B A
• C rotary axis centerline and the Y-Axis home position for a B/C axis UMC, or.
• A tilt axis center line and the Y-Axis home position for an A/C axis trunnion.
410
Settings
F9.10: [B] Tilt Axis, [C] Rotary Axis. [256] Setting 256 is the distance along the Y Axis between
machine zero and the [C] rotary axis centerline. For [A] Tilt Axis, [C] Rotary Axis on a
Trunnion, [256] Setting 256 is the distance along the Y Axis between machine zero and
the [A] Tilt Axis centerline. This illustration is not to scale.
C Z
256 Y
X
257
255
B A
• B tilt axis and the Z-Axis home position for a B/C axis UMC, or
• A tilt axis and the Z-Axis home position for an A/C axis trunnion
411
Introduction
F9.11: [B] Tilt Axis, [C] Rotary Axis. On a UMC-750 (shown), these axes intersect approximately
2" above the table. [257] Setting 257 is the distance along the Z Axis between machine
zero and the [B] tilt axis. For [A] Tilt Axis, [C] Rotary Axis on a Trunnion, [257] Setting 257
is the distance along the Z Axis between machine zero and the [A] tilt axis. This illustration
is not to scale.
C Z
256 Y
X
257
255
B A
Setting 261 lets you specify where the DPRNT statement output goes:
412
Settings
If setting 261 is set to File, setting 262 lets you specify the file location where the control
sends DPRNT statements.
If setting 261 is set to TCP Port, setting 263 lets you specify the TCP port where the
control sends DPRNT statements. On the PC, you can use any terminal program that
supports TCP.
Use the port value along with the machine’s IP address in the terminal program to connect
to the machine’s DPRNT stream. For example, if you use the terminal program PUTTY:
1. In the basic options section, type the machine’s IP address and the port number in
Setting 263.
2. Select the Raw or Telnet connection type.
3. Click “Open” to start the connection.
F9.12: PUTTY can save these options for subsequent connections. To keep the connection open,
select "Enable TCP keepalives" in the "Connection" options.
413
Introduction
To check the connection, type ping in the PUTTY terminal window and press enter. The
machine sends a pingret message if the connection is active. You can establish up to (5)
simultaneous connections at a time.
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
414
Settings
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
415
Introduction
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
416
Settings
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
417
Introduction
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page User Positions for more information.
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
418
Settings
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
419
Introduction
Master/Slave axis definition: Typically, when (2) rotary axes control the orientation of a
table, one rotary mechanism (for example, a rotary table) sits on top of another rotary
mechanism (for example, a tilting trunnion). The rotation mechanism at the bottom
comprises the “master” axis (which remains parallel to one of the machine’s linear axes at
all times), and the rotation mechanism at the top comprises the “slave” axis (which has a
varying orientation to the machine’s axes).
Master/Slave axis definition: Typically, when (2) rotary axes control the orientation of a
table, one rotary mechanism (for example, a rotary table) sits on top of another rotary
mechanism (for example, a tilting trunnion). The rotation mechanism at the bottom
comprises the “master” axis (which remains parallel to one of the machine’s linear axes at
all times), and the rotation mechanism at the top comprises the “slave” axis (which has a
varying orientation to the machine’s axes).
Master/Slave axis definition: Typically, when (2) rotary axes control the orientation of a
table, one rotary mechanism (for example, a rotary table) sits on top of another rotary
mechanism (for example, a tilting trunnion). The rotation mechanism at the bottom
comprises the “master” axis (which remains parallel to one of the machine’s linear axes at
all times), and the rotation mechanism at the top comprises the “slave” axis (which has a
varying orientation to the machine’s axes).
420
Settings
Master/Slave axis definition: Typically, when (2) rotary axes control the orientation of a
table, one rotary mechanism (for example, a rotary table) sits on top of another rotary
mechanism (for example, a tilting trunnion). The rotation mechanism at the bottom
comprises the “master” axis (which remains parallel to one of the machine’s linear axes at
all times), and the rotation mechanism at the top comprises the “slave” axis (which has a
varying orientation to the machine’s axes).
Master/Slave axis definition: Typically, when (2) rotary axes control the orientation of a
table, one rotary mechanism (for example, a rotary table) sits on top of another rotary
mechanism (for example, a tilting trunnion). The rotation mechanism at the bottom
comprises the “master” axis (which remains parallel to one of the machine’s linear axes at
all times), and the rotation mechanism at the top comprises the “slave” axis (which has a
varying orientation to the machine’s axes).
Master/Slave axis definition: Typically, when (2) rotary axes control the orientation of a
table, one rotary mechanism (for example, a rotary table) sits on top of another rotary
mechanism (for example, a tilting trunnion). The rotation mechanism at the bottom
comprises the “master” axis (which remains parallel to one of the machine’s linear axes at
all times), and the rotation mechanism at the top comprises the “slave” axis (which has a
varying orientation to the machine’s axes).
421
Introduction
1. Make sure the work table is clear of any obstructions and clear all of the other user
position settings.
2. Highlight the rotary axis travel limit setting and press [F3] to move the axis to the
mount position. Do not move the axis until the part or fixture is mounted.
3. Mount the part or fixture to the table in the most NEGATIVE position possible for the
selected axis.
4. Jog the axis in the POSITIVE direction to the desired travel limit location. Do not
re-zero the machine until all UTL’s are set.
5. Highlight the max rotary axis travel limit setting and press [F2] to set the travel limit.
If the tool change offset is not between the Max Rotary UTL and the Min Rotary UTL,
a popup will ask for confirmation about resetting the tool change offset for this axis.
The minimum travel limit for this axis is calculated to ensure safe zero return and
homing.
1. Make sure the work table is clear of any obstructions and clear all of the other user
position settings.
2. Highlight the rotary axis travel limit setting and press [F3] to move the axis to the
mount position. Do not move the axis until the part or fixture is mounted.
3. Mount the part or fixture to the table in the most NEGATIVE position possible for the
selected axis.
4. Jog the axis in the POSITIVE direction to the desired travel limit location. Do not
re-zero the machine until all UTL’s are set.
5. Highlight the max rotary axis travel limit setting and press [F2] to set the travel limit.
If the tool change offset is not between the Max Rotary UTL and the Min Rotary UTL,
a popup will ask for confirmation about resetting the tool change offset for this axis.
The minimum travel limit for this axis is calculated to ensure safe zero return and
homing.
1. Make sure the work table is clear of any obstructions and clear all of the other user
position settings.
2. Highlight the rotary axis travel limit setting and press [F3] to move the axis to the
mount position. Do not move the axis until the part or fixture is mounted.
422
Settings
3. Mount the part or fixture to the table in the most NEGATIVE position possible for the
selected axis.
4. Jog the axis in the POSITIVE direction to the desired travel limit location. Do not
re-zero the machine until all UTL’s are set.
5. Highlight the max rotary axis travel limit setting and press [F2] to set the travel limit.
If the tool change offset is not between the Max Rotary UTL and the Min Rotary UTL,
a popup will ask for confirmation about resetting the tool change offset for this axis.
The minimum travel limit for this axis is calculated to ensure safe zero return and
homing.
NOTE: This setting is in the User Positions tab under Settings. Refer
to the tab description on page 441 for more information.
1. Make sure the work table is clear of any obstructions and clear all of the other user
position settings.
2. Highlight the rotary axis travel limit setting and press [F3] to move the axis to the
mount position. Do not move the axis until the part or fixture is mounted.
3. Mount the part or fixture to the table in the most POSITIVE position possible for the
selected axis.
4. Jog the axis in the POSITIVE direction to the desired travel limit location. Do not
re-zero the machine until all UTL’s are set.
5. Highlight the max rotary axis travel limit setting and press [F2] to set the travel limit.
If the tool change offset is not between the Max Rotary UTL and the Min Rotary UTL,
a popup will ask for confirmation about resetting the tool change offset for this axis.
The minimum travel limit for this axis is calculated to ensure safe zero return and
homing.
1. Make sure the work table is clear of any obstructions and clear all of the other user
position settings.
2. Highlight the rotary axis travel limit setting and press [F3] to move the axis to the
mount position. Do not move the axis until the part or fixture is mounted.
423
Introduction
3. Mount the part or fixture to the table in the most NEGATIVE position possible for the
selected axis.
4. Jog the axis in the POSITIVE direction to the desired travel limit location. Do not
re-zero the machine until all UTL’s are set.
5. Highlight the max rotary axis travel limit setting and press [F2] to set the travel limit.
If the tool change offset is not between the Max Rotary UTL and the Min Rotary UTL,
a popup will ask for confirmation about resetting the tool change offset for this axis.
The minimum travel limit for this axis is calculated to ensure safe zero return and
homing.
1. Make sure the work table is clear of any obstructions and clear all of the other user
position settings.
2. Highlight the rotary axis travel limit setting and press [F3] to move the axis to the
mount position. Do not move the axis until the part or fixture is mounted.
3. Mount the part or fixture to the table in the most NEGATIVE position possible for the
selected axis.
4. Jog the axis in the POSITIVE direction to the desired travel limit location. Do not
re-zero the machine until all UTL’s are set.
5. Highlight the max rotary axis travel limit setting and press [F2] to set the travel limit.
If the tool change offset is not between the Max Rotary UTL and the Min Rotary UTL,
a popup will ask for confirmation about resetting the tool change offset for this axis.
The minimum travel limit for this axis is calculated to ensure safe zero return and
homing.
NOTE: You must cycle power for this setting to take effect.
The jog limits imposed by setting 53 Jog W/O Zero Return will not apply. The jog rate will
be defined by the eWheel switch or the jog rate buttons (if the eWheel is not connected).
424
Settings
With this setting ON you can perform tool changes using the [ATC FWD] or [ATC REV]
buttons.
When turning this setting OFF the machine will operate as normal, and will require to be
zero return.
NONE The individual axis rapid to their endpoints independently of each other.
LINEAR (XYZ) The XYZ axes, when commanded to rapid, move linearly through 3D
space. All other axis rapid with independent speeds/accelerations.
LINEAR + ROTARY Axes X/Y/Z/A/B/C reach their endpoints at the same time. Rotary axis
may be slowed down compared to LINEAR XYZ.
NOTE: All modes cause a program to run in the same amount of time (no
increase or decrease in execution time).
If the user answers with [Y] or [ENTER], warmup compensation is applied a new, just as if
the machine was powered up and [CYCLE START] commences. An [N] answer will
continue cycle start with no warmup compensation. The next opportunity to apply warmup
compensation will be after the setting 357 period has elapsed.
425
Network Connection
1. Press [SETTING].
2. Select the Network tab in the tabbed menu.
3. Select the tab for the network settings ( Wired Connection, Wireless
Connection, or Net Share) that you want to set up.
F9.13: Wired Network Settings Page Example
NOTE: Settings with a > character in the second column have preset values
that you select from. Press the [RIGHT] cursor arrow key to see the
list of options. Use the [UP] and [DOWN] cursor arrow keys to choose
an option, and then press [ENTER] to confirm your choice.
426
Settings
Icon Meaning
The machine is connected to the Internet via a wired network with an Ethernet
cable.
The machine is connected to the Internet via a wireless network and has 70 -
100% signal strength.
The machine is connected to the Internet via a wireless network and has 30 -
70% signal strength.
The machine is connected to the Internet via a wireless network and has 1 - 30%
signal strength.
The machine was connected to the Internet via a wireless network and is not
receiving any data packets.
427
Network Connection
Icon Meaning
The machine had previously registered with HaasConnect and has a problem
connecting to the server.
If you call your HFO for help with network problems, remember that the technician can help
only as far as the machine software and networking hardware.
428
Settings
F9.14: Network Responsibility Diagram: [A] Haas Responsibility, [B] Your Responsibility, [1] Haas
Machine, [2] Haas Machine Network Hardware, [3] Your Server, [4] Your computer(s).
A B
3
2
1
VF
After the machine successfully connects to the network, the Status indicator in the Wired
Network Information box changes to UP.
429
Network Connection
Obtain Address Automatically - Lets the machine retrieve an IP address and other
network information from the network’s Dynamic Host Configuration Protocol (DHCP)
server. You can use this option only if your network has a DHCP server.
IP Address - The machine’s static TCP/IP address on a network without a DHCP server.
Your network administrator assigns this address to your machine.
Subnet Mask - Your network administrator assigns the subnet mask value for machines
with a static TCP/IP address.
Default Gateway - An address to gain access to your network through routers. Your
network administrator assigns this address.
DNS Server - The name of the Domain Name Server or DHCP server on the network.
NOTE: The address format for Subnet Mask, Gateway, and DNS is
XXX.XXX.XXX.XXX. Do not end the address with a period. Do not use
negative numbers. 255.255.255.255 is the highest possible address.
Wireless network setup uses a wizard to scan for available networks and then set up the
connection with your network information.
Before you begin, ask your network administrator if your network has a Dynamic Host
Configuration Protocol (DHCP) server. If it does not have a DHCP server, collect this
information:
430
Settings
The Connection Wizard displays a list of available networks, with their signal
strengths and security types. The control supports 64/128 WEP, WPA, WPA2,TKIP,
and AES security types.
F9.15: Connection Wizard List Display. [1] Current Active Network Connection (if any), [2]
Network SSID, [3] Signal Strength, [4] Security Type.
3
1
2 4
3. Use the cursor arrow keys to highlight the network you want to connect to.
4. Press [ENTER].
The network settings table appears.
F9.16: Network Settings Table. [1] Password Field, [2] DHCP Enable / Disable. Further options
appear when you turn the DHCP Setting OFF.
1
2
431
Network Connection
6. If your network does not have a DHCP server, change the DHCP Enabled setting to
OFF and type the IP Address, Subnet Mask, Default Gateway, and DNS Server
Address into their respective fields.
7. Press [F4] to complete the connection, or press [F3] to discard your changes.
After the machine successfully connects to the network, the Status indicator in the Wired
Network Information box changes to UP. The machine will also automatically connect
to this network when it is available, unless you press F1 and confirm to “forget” the network.
Key Description
Forget network - Highlight a network and press [F1] to remove all connection
information and prevent automatic reconnection to this network.
Reconnect - Connect again to a network the machine was previously connected to.
Apply Changes - After you make changes to settings for a particular network, press
[F4] to save the changes and connect to the network.
432
Settings
Obtain Address Automatically - Lets the machine retrieve an IP address and other
network information from the network’s Dynamic Host Configuration Protocol (DHCP)
server. You can use this option only if your network has a DHCP server.
IP Address - The machine’s static TCP/IP address on a network without a DHCP server.
Your network administrator assigns this address to your machine.
Subnet Mask - Your network administrator assigns the subnet mask value for machines
with a static TCP/IP address.
Default Gateway - An address to gain access to your network through routers. Your
network administrator assigns this address.
DNS Server - The name of the Domain Name Server or DHCP server on the network.
NOTE: The address format for Subnet Mask, Gateway, and DNS is
XXX.XXX.XXX.XXX. Do not end the address with a period. Do not use
negative numbers. 255.255.255.255 is the highest possible address.
Wireless SSID - The name of the wireless access point. You can enter this manually, or
you can press the LEFT or RIGHT cursor arrow keys to select from a list of available
networks. If your network does not broadcast its SSID, you must enter this manually.
Wireless Security - The security mode that your wireless access point uses.
After you change these settings to the correct values, press [F4] to begin Net Share.
433
Network Connection
CNC Network Name - The name of the machine on the network. The default value is
HAASMachine, but you must change this so that each machine on the network has a
unique name.
Domain / Workgroup Name - The name of the domain or workgroup the machine
belongs to.
Remote Net Share Enabled - When this is ON, the machine shows the contents of the
shared network folder in the Network tab in the Device Manager.
Remote Server Name - The remote network name or IP address of the computer that
has the share folder.
Remote Share Path - The name and location of the shared remote network folder.
Remote User Name - The name to use to log in to the remote server or domain. User
names are case-sensitive and cannot contain spaces.
Remote Password - The password to use to log in to the remote server. Passwords are
case-sensitive.
Local Net Share Enabled - When this is ON, the machine allows access to the User
Data directory to computers on the network (password required).
Local User Name - Displays the user name to log into the control from a remote
computer. The default value is haas; you cannot change this.
Local Password - The password for the user account on the machine.
NOTE: You need the local user name and password to access the machine
from an outside network.
In this example, you have established a net share connection with the Local Net Share
Enabled setting turned ON. You want to view the contents of the machine’s User Data
folder on a networked PC.
434
Settings
NOTE: This example uses a Windows 7 PC; your configuration may vary. Ask
your network administrator for help if you cannot establish a
connection.
1. On the PC, click the START menu and select the RUN command. You can also hold
the Windows key and press R.
2. At the Run prompt, type (2) backslashes (\\) and then the machine’s IP address or
CNC Network Name.
3. Click OK or press Enter.
4. Type the machine’s Local User Name (haas) and Local Password in the
appropriate fields, and then click OK or press Enter.
5. A window appears on the PC with the machine’s User Data folder displayed. You
can interact with the folder as you would with any other Windows folder.
NOTE: If you use the machine’s CNC Network Name instead of the IP
address, you may need to type a backslash before the User Name
(\haas). If you cannot change the username in the Windows prompt,
select the “Use another account” option first.
The Haas control uses a TCP server to communicate over networks. On the remote
computer, you can use any terminal program that supports TCP; examples in this manual
use PuTTY. Up to (2) simultaneous connections are allowed. Output requested by one
connection is sent to all connections.
1. In the basic options section, type the machine’s IP address and the port number in
Setting 143. Setting 143 must have a nonzero value to use MDC.
2. Select the Raw or Telnet connection type.
3. Click “Open” to start the connection.
435
Network Connection
F9.17: PuTTY can save these options for subsequent connections. To keep the connection open,
select "Enable TCP keepalives" in the "Connection" options.
To check the connection, type ?Q100 in the PuTTY terminal window. If the connection is
active, the machine control responds with SERIAL NUMBER, XXXXXX , where XXXXXX is
the machine’s actual serial number.
MDC Queries
436
Settings
Q403 M30 Parts Counter #2 (resettable >Q403 M30 #2, 553 STATUS,
at control) BUSY (if in cycle)
You can request the contents of any macro or system variable with theQ600 command; for
example, Q600 xxxx. This shows the contents of macro variable xxxx on the remote
computer.
Query Format
The correct query format is ?Q###, where ### is the query number, terminated with a new
line.
Response Format
Responses from the control begin with > and end with /r/n. Successful queries return the
name of the query, then the requested information, separated by commas. For example, a
query of ?Q102 returns MODEL, XXX, where XXX is the machine model. The comma lets
you treat the output as comma-separated variable (CSV) data.
You can use an E command to write to macro variables #1-33,100-199, 500-699 (note
that variables#550-580 are unavailable if the mill has a probing system),800-999 and
#2001 through#2800 . For example, Exxxx yyyyyy.yyyyyy where xxxx is the macro
variable and yyyyyy.yyyyyy is the new value.
437
Network Connection
NOTE: When you write to a global variable, make sure that no other programs
on the machine use that variable.
HaasConnect is a web-based application that lets you monitor your shop with a web
browser or mobile device. To use HaasConnect, you set up an account at myhaascnc.com,
add users and machines, and designate the alerts you want to receive. For more
information about HaasConnect, go to diy.haascnc.com/haasconnect or scan the QR code
below with your mobile device.
Refer to the Networking Connection section on page 426 for information on how to connect
your machine to a network.
438
Settings
NOTE: The Remote Display feature requires a strong password, follow the
guide lines on the screen.
439
Network Connection
440
Settings
CAUTION: Incorrectly set user positions can cause machine crashes. Set user
positions with caution, especially after you have changed your
application in some way (new program, different tools, etc.). Verify and
change each axis position separately.
441
User Positions
To set a user position, jog the axis into the position you want to use, and then press F2 to
set the position. If the axis position is valid, a crash warning appears (except for user travel
limits). After you verify that you want to make the change to the position, the control sets
the position and makes the setting active.
If the position is not valid, the message bar at the bottom of the screen gives a message to
explain why the position is not valid.
To inactivate and reset user position settings, press ORIGIN while the user positions tab is
active, then choose from the menu that appears.
1. Press [1] to remove the value of the currently selected position setting and make it
inactive.
2. Press [2] to remove the values of all second home position settings and make them
inactive.
3. Press [3] to remove the values of all Tool Change Mid-Position settings and make
them inactive.
4. Press [4] to remove the values of all Max User Travel Limit settings and make them
inactive.
5. Press [CANCEL] to exit the menu without making changes.
442
Settings
443
More Information Online
444
Other Equipment
10.5 UMC-750
The UMC-750 is a versatile five-axis mill that features an integrated dual-axis trunnion
table.
445
More Information Online
446
Index
A canned cycles
absolute positioning (G90) general information .......................... 251
versus incremental ........................... 136 check box selection ................................. 90
Active Codes .......................................... 57 circular interpolation .............................. 143
active program ........................................ 90 control display
active tool display .................................... 57 active codes ..................................... 49
Advanced Tool Management (ATM) .......... 100 active tool ........................................ 57
macros and .................................... 104 basic layout ...................................... 44
tool group usage .............................. 103 offsets ............................................. 47
auto door (option) control pendant.................................. 30, 31
override ........................................... 31 USB port .......................................... 31
axis motion coolant
absolute versus incremental ............... 136 operator override ............................... 43
circular .......................................... 143 setting 32 and ................................. 386
linear ............................................. 143 coolant gauge ........................................ 58
counters
B reset ............................................... 48
background edit .................................... 127 CT tooling .............................................. 99
beacon light Current commands .................................. 47
status .............................................. 31 cutter compensation
Block Delete ........................................... 36 circular interpolation and ................... 151
block selection ...................................... 125 entry and exit .................................. 148
BT tooling .............................................. 99 feed adjustments ............................. 149
general description........................... 145
C improper application example ............. 149
Calculators Setting 58 and ................................ 146
Milling / Turning ................................. 53
Standard .......................................... 51 D
Tapping ........................................... 54 device manager
Canned Cycles create new program ........................... 89
Boring and Reaming ......................... 155 edit ................................................. 92
Drilling ........................................... 154 file display ........................................ 88
R Planes ........................................ 155 operation ......................................... 87
Tapping ......................................... 154 device manager (List Program) .................. 86
directory
create new ....................................... 93
447
display I
axis positions .................................... 61 incremental positioning (G91)
settings ........................................... 56 versus absolute ............................... 136
distance to go position ............................. 61 input
drilling canned cycles ............................. 154 special symbols ................................ 94
dynamic work offset (G254)..................... 347 input bar ............................................... 62
interpolation motion
E circular ........................................... 143
edit keys ............................................. 124 linear ............................................. 143
editing
highlight code ................................. 124 J
editor .................................................. 127 jog mode ............................................. 117
Edit menu ...................................... 129
File menu ....................................... 129 K
Modify menu ................................... 131 keyboard
pull-down menu ............................... 128 alpha keys ....................................... 40
Search menu .................................. 130 cursor keys ...................................... 34
Error Report Shift F3 ............................... 66 display keys ..................................... 35
function keys .................................... 33
F jog keys .......................................... 41
Fanuc ................................................. 146 key groups ....................................... 32
Feature List ......................................... 167 mode keys ....................................... 35
200-hour tryout ............................... 168 numeric keys .................................... 39
Enable/Disable ................................ 168 override keys.................................... 42
feed adjustments
in cutter compensation ...................... 149 L
feed hold line numbers
as override ....................................... 43 remove all....................................... 131
file linear interpolation ................................. 143
deletion ........................................... 93 LIST PROGRAM display .......................... 87
file display columns ................................. 88 local subprograms (M97) ......................... 160
file selection
multiple ........................................... 90 M
M30 counters......................................... 59
G machine data
G-codes .............................................. 245 back up and recover .......................... 94
cutting ........................................... 143 Machine Data Collection ......................... 433
graphics mode ..................................... 120 machine position .................................... 61
machine power-up .................................. 85
H machine restore
Haas Connect ...................................... 436 full data ........................................... 97
help function .......................................... 67 selected data.................................... 98
high-speed SMTC machine rotary zero point (MRZP)............. 191
heavy tools and ............................... 108 macro variables
axis position .................................... 220
448
Macros memory lock .......................................... 31
#3000 programmable alarm ............... 217 mode display ......................................... 45
#3001-#3002 timers ......................... 217
#3006 programmable stop ................. 219 N
#3030 single block ........................... 219 Network Connection ............................... 424
#5041-#5046 current work coordinate posi- Icons ............................................. 425
tion .................................................... 220 Net Share Setting ............................. 431
1-bit discrete outputs ........................ 225 Wired Connection ............................ 427
aliasing.......................................... 241 Wired Network Settings ..................... 428
arguments...................................... 203 Wireless Connection Setup ................ 428
block look ahead and block delete....... 201 new program ......................................... 89
DPRNT ......................................... 237
DPRNT editing ................................ 239 O
DPRNT execution ............................ 239 offset
DPRNT formatted output ................... 237 tool ............................................... 140
DPRNT settings .............................. 238 work .............................................. 140
G65 macro subprogram call ............... 239 offsets
global variables ............................... 207 display ............................................ 47
introduction .................................... 199 operating modes .................................... 45
local variables ................................. 206 operation
look ahead ..................................... 201 unattended ........................................ 7
macro variable display ...................... 202 operator position .................................... 61
macro variable table ......................... 208 optional stop ......................................... 356
round off ........................................ 200 overrides .............................................. 43
setting aliasing ................................ 242 disabling ......................................... 43
system variables ............................. 207
system variables in-depth .................. 214 P
timers and counters window............... 203 part setup ............................................ 116
useful g- and m-codes ...................... 200 offsets ........................................... 116
variable usage ................................ 226 tool offset ....................................... 118
macros work offset ...................................... 117
M30 counters and .............................. 59 position display ...................................... 61
variables ........................................ 206 positioning
main spindle display ................................ 65 absolute vs. incremental .................... 136
manual data input (MDI) ......................... 126 positions
save as numbered program ............... 126 distance to go ................................... 61
material machine .......................................... 61
fire risk .............................................. 7 operator .......................................... 61
M-code relays work (G54) ...................................... 61
with M-fin ....................................... 359 probe
M-codes .............................................. 353 troubleshooting ................................ 178
coolant commands........................... 143 probing ................................................ 173
program stop .................................. 142
spindle commands ........................... 142
media display ......................................... 54
449
program selection
active .............................................. 90 multiple blocks ................................. 125
basic search ..................................... 99 Setting 28 ............................................ 251
duplication ....................................... 93 setup mode ............................................. 8
rename............................................ 93 keyswitch ........................................ 31
programming side-mount tool changer (SMTC)
background edit .............................. 127 door panel ...................................... 112
basic example................................. 132 extra-large tools ............................... 110
safe startup line............................... 134 moving tools ................................... 109
subprograms .................................. 156 recovery ......................................... 112
zero pocket designation ..................... 109
R special G-codes
r plane ................................................ 155 engraving ....................................... 155
Rapid Mode ......................................... 423 mirror image ................................... 156
remote jog handle (RJH) ........................ 179 pocket milling .................................. 156
rotary rotation and scaling .......................... 156
axis disable / enable......................... 189 special symbols....................................... 94
configuring new ............................... 184 spindle load meter ................................... 65
custom configuration ........................ 187 spindle orientation (M19) ......................... 172
grid offset....................................... 188 spindle warm-up ...................................... 86
tool change offset ............................ 188 subprograms ........................................ 156
rotary offset external .......................................... 157
tilt center........................................ 197 local .............................................. 160
run-stop-jog-continue ............................. 119
T
S tabbed menus
safe startup line .................................... 134 basic navigation ................................ 66
safety tapping canned cycles ............................ 154
decals ............................................. 11 text
door interlock ...................................... 5 find / replace ................................... 130
during operation .................................. 4 selection ........................................ 125
electrical ............................................ 4 Through-Spindle Coolant .......................... 41
glass window ...................................... 6 drilling cycle and .............................. 154
introduction ........................................ 1 M-code .......................................... 365
maintenance....................................... 5 tilt axis
part loading/unloading .......................... 5 center of rotation offset ...................... 197
robot cells ........................................ 10 timer and counters display
safety decals reset ............................................... 48
standard layout ................................. 11 timers and counters display ....................... 59
symbol reference ............................... 12 tool center point control........................... 343
safety information ................................... 16 G54 and ......................................... 344
search rotary setup and ............................... 190
find / replace................................... 130 tool change offset
second home ......................................... 31 rotary ............................................. 188
450
tool changer ......................................... 105
safety ............................................ 113
tool loading
large / heavy tools ........................... 106
tool management tables
save and restore ............................. 105
tool offset ..................................... 118, 140
remote jog handle and ...................... 180
tooling
pull studs ....................................... 100
Tnn code ....................................... 141
tool holder care ................................. 99
tool holders ...................................... 99
U
umbrella tool changer
loading .......................................... 110
recovery ........................................ 111
unattended operation ................................. 7
user positions ....................................... 439
W
work (G54) position ................................. 61
work offset .................................... 117, 140
macros and .................................... 221
remote jog handle and ...................... 183
workholding ......................................... 116
safety and .......................................... 5
451
452