1
Conversational Programming on CNCs
New Developments to Increase Productivity
Long Yang
CNC Application Engineer
GE Fanuc Automation
ABSTRACT
In many machine shops, parts are machined in small quantities, and jobs are changed frequently.
In this environment, effective part programming is always an important factor to increase
productivity. Offline CAD/CAM packages can help, but they can be too expensive for small
shops, and it takes time to train machine operators to use this complex software. Conversational
programming on the CNC, on the other hand, can greatly help these shops to write part programs
quickly to increase productivity, and they are typically easy to learn.
The objectives of this paper are as follows,
• To identify the best features of conversational programming
• To identify the benefits of conversational programming and how to select the software
that best fits your shop
•
To discuss
the
latest development of conversational programming
Introduction
Conversational programming on the CNC was developed in the early 1980s and is popular in
many job shops, maintenance shops and tool rooms. In these shops, parts are machined in small
quantities, and jobs are changed frequently. In many cases, the part machining processes are
simple, such as face milling, outer diameter (OD) and inner diameter (ID) turning and bolt-hole
pattern drilling. If a machine operator can program these parts or machining processes quickly
based on the mechanical drawings, productivity will be increased significantly. Therefore,
effective programming is an important factor to increase productivity.
Three programming methods have been used to develop part programs:
• Manual G code programming
• Offline CAM software on a PC
• Conversational programming on the CNC
Manual G code programming can be very effective for some simple machining processes, such
as face milling. However, it has two main drawbacks. First, G code programming is not intuitive
and requires a lot of training. Many machine operators are intimidated by G code and are not
willing to learn G code programming. Second, G code programming for complex machining
processes, such as contour OD/ID turning and pocketing, is very tedious and time consuming. G
code programming becomes ineffective in this case.
Offline CAM software is designed to program complex parts on a PC and cannot be used on the
CNC without a PC front end. Another drawback similar to G code programming is that most
CAM software has a steep learning curve, which limits its use.
2
Conversational programming on CNC was developed to solve the inefficiencies of manual G
code programming and offline CAM software. A good conversational programming is intuitive,
simple, and yet capable of programming simple to complex parts. Conversational programming
on CNC becomes a very effective programming tool for many machine shops that manufacture
parts in small to medium lot sizes.
Conversational programming has advanced significantly in the last twenty years, with the
advances in computer technology. The operation of the early conversational programming is
very similar to DOS on PCs. The user interface was text based because of the limitations of the
hardware and was not intuitive. For example, it is difficult to describe geometry with text,
forcing the operator to have a good understanding of the geometric terminology.
The user interface of the latest conversational programming is based on graphical input. For
example, the geometry data is not only described in text, but also presented graphically.
Therefore, a user understands the input intuitively and can quickly develop the part program. The
operation of latest conversational programming is similar to Microsoft Windows.
This paper will discuss the latest development of conversational programming on CNC with the
emphasis on the following subjects,
• Identifying the best features of conversational programming
• Identifying the benefits of conversational programming and how to select the
software that best fits your shop
• Discussing the latest developments of conversational programming
Features of Conversational Programming on CNC
Design of a good conversational programming on CNC is a difficult task because many factors
need to be considered.
First of all, the programming tool must cover a broad user base. The first group of users is
experienced manual machinists who are familiar with machining process but with little or no
experience with CNC machines. The second group is CNC machinists who know how to operate
CNC machines and have limited knowledge of G code and M code. They may not be familiar
with machining processes, such as feeds and speeds. The third group has the combined
knowledge of the first two groups. It is difficult to satisfy the needs of all these groups with one
tool.
The programming tool also needs to cover a broad range of applications from simple machining
processes, such as OD/ID turning, face milling and bolt-hole pattern drilling, to complex
machining processes, such as turning with multiple turrets and a sub-spindle.
With above challenges in mind, this paper will discuss the features that an ideal conversational
programming system should incorporate.
Intuitive User Interface
The User Interface should be intuitive to users. The layout of the programming processes should
be presented in a manner that models the manual machining process that is familiar to the
operator.
3
Currently, there are two methods for the layout. The first one is to closely follow the manual
machine process, with the operator providing all the necessary geometry and cutting technology
data (such as feeds and speeds) as they are required. Face milling a cube is a good example to
use. The following are the natural steps to write a program:
1. Define the workpiece
2. Select a cutting tool and define feed and speed
3. Turn on spindle
4. Move the tool to starting position
5. Define face milling process
After these 5 steps, the machining process for face milling is defined. This layout is very
intuitive to manual machine operators, and they should not have any difficulty following the
program flow. The following illustration is an example of the softkey layout of GE Fanuc
Manual Guide for milling.
The second method is to separate a machining process into two groups of data: technology data
and geometry data. The technology data includes tooling, feed and speed, machining sequence
(M code). The geometry data includes the profile of the part and the machining processes to be
used. This input method is more logical and compact. The following illustration is an example of
OD turning process in GE Fanuc Manual Guide for Turning. The top right window shows
technology data and the bottom right window shows geometry data.
Graphical Program Input
The geometry input should be more graphical and less descriptive. This makes the input very
intuitive. The following is an example for bolt-hole pattern input. Both graphical representation
4
and text description of geometry data are presented. When cursor is on a data entry, the
corresponding letter will be highlighted in the geometry window.
Easy Contour Input
Contoured shapes are used frequently in frame milling, pocket milling and OD/ID turning. A
capable contour function will help a user to write programs quickly, by using information
available on the part drawing. A contour function should have the following characteristics:
1. Versatile geometry input
Different representations for the same geometry may be given in mechanical drawings. For
example, a line may be defined in combination of end points or an angle with length; a circle
may be defined in combination of a radius with end points, or a radius with center point, or a
radius with an angle. The contour function should take whatever dimensions are available for
the input.
2. Automatic calculation of connection point
The contour function should automatically calculate tangent points between arcs, or between
line and arc, and cross points between lines, or arcs. A user should not have to manually
calculate these connection points. If there are more than one possible connection point, for
example, two possible tangent points between a line with an arc, the program should
graphically present these points and allow the user to select the correct connection point.
3. Calculator
A handy calculator should be available in case a user needs to convert dimension data on the
mechanical drawing. The arithmetic should at least include +, -, *, /.
4. Absolute and incremental input
A mechanical drawing may be dimensioned in absolute (one reference point) or in
incremental (many reference points). The contour input should be freely switched between
absolute and incremental input.
Part Program Simulation
Graphical simulation can help a user to quickly check out the part program and increase
productivity. Consider the following functions:
5
1. Solid model (3-dimensional) simulation
Solid model simulation can provide an overall check for a part program, and give the
operator the confidence to run the part program. An operator can quickly find out any evident
geometry mistake in a part program using solid model simulation. It is desirable to include
cutting tools in solid model simulation, and this can provide better understanding of the
cutting process.
2. Solid model rotation
Solid model rotation will provide different perspective views for a part.
3. Tool path simulation
Tool path simulation can provide a detailed check for a part program. The following features
are found very useful in tool path simulation:
• G code display: G code corresponding to current tool path is displayed next to the
simulation screen. Most CNCs use G code at motion control level, and the G code display
can help users to make sure that a part grogram is correct. Some detailed information,
such as cutter compensation and tool length offset, can be easily checked using tool path
simulation together with the displayed G code.
• Single block execution: This allows a user to easily follow each tool movement.
• Tool path clear: When tool paths are overlapped in a part program, it is hard for a user to
follow the simulation. With this function, a user can erase any previously drawn tool path
and easily check the rest of the part program.
4. Sectional display
A sectional display is used to check inside of some machine features, such as a hole, groove
and pocket.
5. 3-plane display
A 3-plane display provides another visual aid for overall program checking.
6. Zoom function
Zoom function should allow zoom in (enlargement) and zoom out (reduction). Zoom out is
very useful to check auxiliary tool movements, such as tool change position.
7. Simulation speed adjustment
6
Simulation speed adjustment allows speed-up or slow-down of the simulation. Again, this is
useful for checking part program details.
Easy Tool and Workpiece Setup
Machine operators often spend a lot of time to setup tools and workpiece. Conversational setup
for tools and workpiece reduces the setup time. This is particularly beneficial to the operators
with less CNC experience. The following illustration is an example for workpiece setup in GE
Fanuc Manual Guide for Turning.
In the above example, a user first specifies the tool, then moves the tool to touch the outer
diameter of the work piece and inputs the diameter. Therefore, the work shift of X-axis is
determined. The work shift of Z-axis can be obtained similarly.
Another useful function is tool and material data file. Geometry data, offset value and material
information are assigned to each cutting tool. Cutting conditions, such as feed and speed, are also
assigned to each workpiece material and cutting process. Using this data, the software
automatically decides the cutting tool and cutting conditions when a machining process is input,
and programming time can be reduced.
Teaching Function
The teaching function is very beneficial to the machine shops that have experienced manual
machine operators. These operators know how to cut metals on manual machines but have little
or no knowledge on CNCs. The teaching function enables these machinists to generate simple
part programs. This can lead them to a full understanding of CNC programming and operation.
The teaching function should register both tool movements (G code) and miscellaneous functions
(M code). The tool movements should include slanted line and arc, which requires simultaneous
movements of two axes. The tool movements are typically executed using the electronic handle
wheel, which is similar to manual operation.
Another very useful teaching function is thread repair. When the thread of a large component,
such as an oil pipe, is damaged, it is desirable to be able to repair the thread. (If the thread cannot
7
be repaired, the component has to be discarded.) The difficulty of repairing a thread is to find the
start point of synchronization between spindle and linear axis for the thread. With the thread
repair function, the thread geometry data, such as diameter and pitch, and the starting point of the
thread can be taught conversationally as a machining process. Then, the damaged thread is easily
repaired. This function is very popular in machine shops that do maintenance work and
remanufacture for the oil and gas industry.
G Code Conversation Capability
Conversational programming is always expressed in macro statements or in plain English like
language. Part programs developed in conversational programming cannot be used on the
machines without conversational programming. Unfortunately, most CNC machines today do not
have conversational programming. Even for the machines with conversational programming, the
part program is not interchangeable for different vendors’ CNCs. It is desirable that the
conversational part programs can be converted to standard G codes so that they can be used on
other CNC machines.
G code has been the standard machining language for the past several decades and will be the
dominant language for the foreseeable future. Conversational programming language updates
very quickly, and the part program developed in previous conversational programming may not
be able to operate in later conversational programming. It is necessary to archive a part program
in G code for later use.
Background Editing
Background editing enables a user to develop new part programs using conversational
programming while the machine is cutting part. This function can allow a user to use all the
functionalities of editing and animation in conversational programming. A perception in the past
is that a machine has to stop running in order develop part program conversationally, and this
can waste valuable machine operation time. With background editing function, new part
programs are developed while the machine is running. This can reduce machine idle time and
increase productivity.
Currently, there are two ways to implement background editing. The first method is to convert
the conversational program to a G code program. Then, the G code program is executed on ISO
(regular) screens, and new part programs are developed on conversational screens. The second
method is that both machine program execution and new program development are performed in
conversational screens.
Easy Customization (Expandability)
Some job shops may need special cycles to produce the parts, and some OEMs may require
unique machining processes for their machines. A generic conversational programming does not
necessarily provide these special cycles because they only apply to specific machines and/or
special parts. However, it is important to provide the developing tools and interface for users to
add their own special cycles. This can be very valuable. For example, machining a flange surface
is shown below, where the machining processes include facing, frame milling, grooving and
bolt-hole drilling. If similar parts with different geometries are produced in a job shop, the user
8
should develop one cycle that combines all four of these machining processes. This speeds up the
program development.
Flexibility of addition and modification of text display is useful. This will help the OEM or end
user to customize the display and make it unique to their machines. For example, when each
machine uses unique M codes, it will be useful for the OEM to be able to add a pop-up window
to display these M codes with explanations. When machine operators develop the part programs,
they can quickly select the M code needed with the help of M code pop-up window shown
below. An OEM should freely add and modify the M code list based on the machine
requirements.
Complex Machining
Multi-task machine tools, which provide both milling and turning machining processes, have
become very popular in recent years. These machines are very efficient and increase productivity
significantly. Many machine tool builders offer these types of machines. (An example of these
machines is a multi-task lathe with three turrets, sub-spindle and tilting milling head.)
Programming these machines can prove to be difficult. A lot of offline software packages are not
capable of providing effective programming because of the complexity of the machines. Some
low-end offline software packages even do not have the programming capability for these
machines. One difficulty is the interference check for a multi-task machine, such as a lathe with
three turrets, sub-spindle and tilting milling head. Because multiple tools move simultaneously,
the interference check is critical. To prevent collision, machine data, such as the stroke limit of
9
each turret, the dimension of chuck and tail stock, tool geometry etc., are required. When a part
program is developed, the data needs to be considered for interference checking. Machine tool
builders build machines differently, and the data for the interference check may also be different.
All the machine data is stored in the CNC, and conversational programming uses the data in
conversational programming. Hence, collision between tools and workpiece can be prevented.
Implementation of interference check in offline CAM software is much more difficult.
The following are examples of multi-task turning centers.
The following are examples of multi-task machining centers.
Import of CAD Drawings for Complex Tool Path
Tool path geometry for most parts is a simple contour that can be expressed in terms of lines and
arcs (first order and second order curves). These contours can be manually input based on the
mechanical drawing. However, some parts have a complex contour that is expressed in higher
order curves. It is very difficult to manually input these curves. It is desirable that conversational
programming software can import geometry data, such as DXF or IGES file, from CAD
program. This will make the conversational programming more versatile.
2 turrets with milling head
and sub-spindle
T
M
/T
ATC
2 turrets with milling head
and sub-spindle
T
M
/T
ATC
T
T
M
/T
ATC
M
/T
ATC
T
T
2 turrets with sub-spindle
T
T
T
T
2 turrets with sub-spindle
T
T
T
3 turrets with sub-spindle
T
T
T
T
T
T
T
T
T
3 turrets with sub-spindle
T
T
M
/T
ATC
3 turrets with milling head and
sub-spindle
T
T
M
/T
ATC
T
T
T
T
M
/T
ATC
M
/T
ATC
3 turrets with milling head and
sub-spindle
T
1 turret with sub-spindle
T
T
T
1 turret with sub-spindle
1 turret with milling head and
sub-spindle
M
/T
ATC
1 turret with milling head and
sub-spindle
M
/T
ATC
M
/T
ATC
M
/T
ATC
Tool head
with tilting axis
B-axis
C-axis
Tool head
with tilting axis
B-axis
C-axis
B-axis
C-axis
Lathe machining
Tool head
Rotation by
spindle motor
Lathe machining
Tool head
Rotation by
spindle motor
Rotation by
spindle motor
5-axis (3+2) type machining center
Compound machine with both of
milling and lathe machining capability
10
PC Version for Training and Demo
A simplified version of conversational programming for PC can be very useful for product
demonstration and training. The software does not need to be comprehensive. A simplified PC
version can help control vendors to easily demonstrate the software without using a CNC. Good
conversational programming is self-contained and self-explanatory, and a user can easily learn
how to use it. Therefore, control vendors can send the PC version software to their customers and
let them evaluate the software. Another benefit is that the end user is able to learn basic functions
with the PC version, which reduces the time spent on a machine.
Modular Software
The goal of conversational programming is to help machine operators on the shop floor to write
part programs quickly and easily. To meet this goal, the programming must be easy to learn and
easy to use. However, when more functionality, such as complex machining and tool/material
data, is provided, the operation may become confusing and difficult to follow, which can
intimidate the average machine operator. Good conversational programming should have a
modular structure. The majority of job shops with conversational programming use it to develop
simple part programs, and users in these shops may not be proficient in CNC programming. For
these shops, simplicity and ease of use are the top priority. The basic software module should be
designed to meet this goal. For the jobs that need advanced functions, such as multi-task
machining cycles, the software modules for the advanced functions can be added to the basic
module. In general, the operators on these machines have better CNC programming skill and are
able to program these complex functions. The following is a schematic for the software structure:
Comparison between Online Conversational Programming
and Offline CAM Software
Both online conversational programming and offline CAM software are designed to help
development of machining programs and have many similarities. However, each programming
method has its advantages and disadvantages.
Advanced
Milling
Cycles
Advanced
Turning
Cycles
Advanced
Setup
Teaching
Customi-
zation
CAD
Interface
Basic Module for Conversational Programming
(Edit, tuning/milling cycles, animation, tool/work setup)
CNC System Software
Advanced Software Modules
11
Advantages of Online Conversational Programming
Program Verification and Optimization
Conversational programming significantly reduces the program verification time. After the
program is written, the operator can instantaneously find out any evident geometry error in the
program using solid model graphic animation. Then, the tool path together with G code display
can be used to check the machining details, such as tool length compensation and cutter
compensation. Dry run can also be used to check the physical machine movements in the
program. If any program error is found, it can be corrected immediately on the machine.
However, any error in the offline programming needs to be corrected on the PC and tested again.
This means that a program has to be transferred between PC and CNC, and both the machine
operator and NC programmer will have to be involved in the process. Therefore, longer program
check time will be required for offline programming.
Conversational programming also facilitates machining optimization. The programmed feed and
speed sometimes need to be adjusted to obtain better surface finish and better machine
performance during the machining. For conversational programming, this can be changed
instantly on the machine. However, for offline programming, the operator has to search the G
code program and find the feed and/or speed that need to be changed. Then, offline programming
has to update the change and post a new G code program. It is clear this can take much longer
than conversational programming.
Machine Setup Function
In many job shops that manufacture a wide range of different parts in small quantity, the setup
for tooling and workpiece can be a significant portion of production time. In these shops, the
parts are frequently changed, and therefore, the tools and fixtures have to be changed
correspondingly. With conversational programming, a machine operator can quickly measure
tools and set up workpiece, significantly reducing machine setup time.
Conversational probe calibration and measurement cycles are very useful as well. A machine
operator can interactively calibrate the probe, and the software automatically records the probe
data, such as probe length and stylus ball diameter. The measurement cycles will assist a
machine operator in examining the parts quickly. For example, the precision of some features on
a part, such as diameter of holes that are machined by an endmill, is critical and need to be
checked. (The precision error may be caused by programming error or quite often by tool wear.)
With the help of conversational programming, an operator will be able to program the measuring
cycle for the feature and inspect the part quickly.
Teaching Function
The teaching function is found to be valuable for training machine operators. In many job shops,
the machine operators never received adequate CNC basic training before they operated the
machines. A lot of them do not know how a CNC works or how to program a CNC. With the
teaching function, they can learn CNC fundamentals, such as machine movements (G code) and
machine operation logics (M code). This can lead them to being more efficient in working with
CNC machines and, in the long run, can increase the productivity in these job shops.
12
The teaching of machining cycles, such as thread repair, prove to be very useful in job shops that
perform a lot of maintenance work. These types of machining cycles can only be done with
conversational programming.
Customization
Customization allows OEMs and end users to further modify the programming interface to make
the conversational programming very unique to their machines. This enhances the machine
functionality and increases productivity in job shops. Customization can be accomplished in
conversational programming. However, offline CAM software is not be able to provide this
flexibility.
Utilization of CNC
A great advantage for conversational programming is that it fully utilizes the CNC’s capability.
CNC manufacturers develop their own conversational programming and know how to fully
utilize the control capabilities. For example, most CNCs today use G code as a low-level motion
control language, though this may be hidden from a user of conversational programming.
Therefore, the conversational programming uses G code internally to command the machining.
For many machining processes, such as OD/ID turning and drilling, canned cycle G codes will
be used instead of many G01 and G02/G03 blocks. When the conversational program is
converted to a G code program, the G code program is much more compact than the G code
program posted from offline CAM software because CAM software may not have the
information on the availability of canned cycles of the machine. The program storage is limited
on many CNCs, and shorter programs benefit the controls with limited program storage. Another
good example is to teach start synchronization point in thread repair, and this is not possible with
offline programming.
Disadvantages of Online Conversational Programming
Consumption of Machining Time
Conversational programming is done on a machine. This will inevitably consume some
machining time, even though background editing is used in developing part programs.
Consumption of machining time is not economical for any high production machine shop.
3-axis Contour Programming in Milling
3-axis contour programming for milling requires 3-dimensional graphic rendering capability and
interface with CAD software. Most conversational programming today does not provide this
function and will not be effective in 3-axis contour programming in milling.
5-axis Contour Programming in Milling
5-axis contour programming in milling requires intensive mathematical calculation for tool
vector and 3-dimensional graphic rendering capability. The programmer must have very solid
understanding of these mathematics and has to spend time on the control to check the tool
movements. Because of these concerns, most conversational programming today is not used for
5-axis contour programming.
13
Development Trends
Complex Machining
Development of new types of multi-task machines, such as multi-path lathe with tilted milling
head, will require efficient programming tools. Standard G code programming is ineffective for
these complex machines. CAM software will always be behind the development of the new
machines. Moreover, CAM software developers may not be willing to spend a lot of effort on a
special application because of economical considerations. Conversational programming may take
the lead to develop the programming tools to support these complex machines.
Implementation of More CAM Functions
The advancement of CNC hardware and reduction of hardware cost will enable conversational
programming to add more functions widely used in CAM software, such as 3-dimensional
graphic rendering and 5-axis programming. Another development will be that conversational
programming will apply more Microsoft Windows techniques, and the graphic user interface will
look very similar to Microsoft Windows. The interface will allow a user to open different
windows to edit programs, and functions like COPY, CUT, and PASTE will no longer be a
luxury. With a graphical interface, the OEM or user will have more flexibility to customize the
programming tool and make conversational programming more efficient. Computer input
devices, such as a mouse, trackball and writing pad, will be more widely used in conversational
programming.
Conversational CNC
The striking feature of conversational programming is the graphical and/or descriptive
interaction. This makes a complicated program development process become an easier task.
Future CNCs will surely adopt the conversational advantages. In the past, all major CNC
manufacturers developed conversational programming as add-on software on top of regular CNC
software. The conversational programming screens are different from the regular CNC screens.
Most conversational programming screens are developed later and provide a Microsoft Windows
look and feel. The regular screens may gradually be replaced with conversational screens. More
conversational features will be added to the CNC to help the OEM setup the machine or to help
maintenance personnel to troubleshoot the machine. These features may include servo setup and
tuning, machine setup, machine trouble-shooting and machine optimization. These tasks can
easily be performed using a conversational user interface.
Conclusions
Good conversational programming should allow an average machine operator to learn the
programming skills with minimum effort and to develop relatively complex part programs
efficiently. To achieve this goal, the conversational program must have the following basic
features: intuitive programming layout, graphical program input, comprehensive machining
cycles, easy contour input, excellent program animation, and easy tool/work setup. Other
features that will make conversational program more versatile and valuable are teaching
function, G code conversion capability, background editing, customization, and complex
machining.
14
Conversational programming is more suitable for machine shops that manufacture a wide variety
of different parts in small production. In these shops, a machine operator will often be required to
program the part, to setup tools and fixture, to verify and optimize the program, and to cut the
part. Conversational programming can significantly boost the productivity in these machine
shops. Conversational programming is also well accepted in tool rooms or model shops because
of the diversity of parts machined. For multi-task machines, such as a multi-path lathe with tilted
milling head, conversational programming has proved very successful in the past, and end users
should definitely consider conversational programming on these machines. Conversational
programming is valuable in providing CNC training. The teaching function can particularly help
machine operators to obtain a better understanding of CNC programming and CNC operation.
Well-trained CNC machine operators can greatly improve productivity.
Conversational programming is not ideal for high production machines (except multi-task
machines). Any idle time of these machines may increase production cost, and part programs
should be developed on offline CAM software.
Future conversational programming will have a more Microsoft Windows look and feel, and the
program input and edit will become more convenient. Functions widely used in today’s offline
CAM software, such as 3-dimensional graphic rendering, may be incorporated in some
conversational programming systems. Some high-end conversational programming software will
continue taking the lead in the area of programming multi-task machines.
Acknowledgments
The author would like to acknowledge Mark Brownhill and Bill Griffith from GE Fanuc for
providing many valuable suggestions and comments on this paper. Alicia Brower of GE Fanuc is
also acknowledged for proof reading the final draft.
References
1. GE Fanuc, Manual Guide for Turning Operator’s Manual
2. GE Fanuc, Manual Guide for Milling Operator’s Manual
3. GE Fanuc, Manual Guide i Operator’s Manual
4. GE Fanuc, Manual Guide i Setup Guidance Operator’s Manual
5. Mazak, Mazatrol Fusion 640 Technical Specifications
6. Heidenhain, iTNC 530 Technical Specifications
7. Heidenhain, MANUALplus 4110 Technical Specifications
8. Hurco, UltiMax Technical Specifications
9. Siemens, ManualTurn Technical Specifications
10. Siemens, ShopTurn Technical Specifications
11. Siemens, ShopMill Technical Specifications
12. Fagor, 8055 CNC Technical Specifications