Disclaimer: CNC Concepts, Inc. accepts no responsibility for the use
or misuse of techniques shown in this web page. We simply publish information
we feel will be of interest to CNC users. In all cases, the reader is totally
responsible for considering the implications, good and bad, of implementing one
or more of the techniques we show.
Questions about incremental/absolute and parametric programming
Good morning, Mike.
A copy of your
Fall issue of the Optional Stop newsletter showed up
in my mailbox over the weekend. I must confess to being
stumped. I do lead a rather sheltered life (24-year
but I'm slightly confounded by a couple of newsletter
We use CATIA V5 and canned postprocessor
software. I've done a bit of traveling for the company
(nowhere near as much as you obviously do), and all
the suppliers that I've visited use some form of (fairly
advanced) graphic programming software (mostly CATIA,
NCL or MasterCam) and canned postprocessors (admittedly,
I've visited very few Mom & Pop shops). I've visited
with my friends from supplier management. They tell me
all tier 1 and tier 2 aerospace suppliers have CATIA.
So, I'm puzzled that programming in the absolute vs.
incremental mode would even be an issue. Nowadays,
graphic programmers generally don't have a clue where
their cutter is (in terms of Cartesian coordinates).
When I first hired in, programmers were expected to
verify tool paths by double-checking post output. That
generation has mostly retired. Most programmers (here)
can't even read post output. CGTech's Vericut software
handles that (also at supplier shops that I've visited).
Today, NC programming is a point & click game. With
canned post processors arbitrarily set to the G90 mode
(individual programmers cannot influence this
decision). So, I'm surprised this is even an issue. I
read several trade journals, and don't recall stumbling
across anything about shops still 'hand programming' or
even wide-spread use of conversational controls (we
don't have any, and I've never seen a tier 1 or tier 2
shop that did).
The newsletter article (entitled G code primer: Try not to think
incrementallyhere) was aimed at entry-level manual programmers that
write programs at G code level - or at least people learning how G code works.
I should have made this more clear in the article. Since these people must
develop all coordinates that go into their programs (your CAM system is doing
this for you), they must correctly program each position through which the tool
must move for the entire program. And while working in the incremental mode
will have no adverse affect as long as motions are correct, it can be confusing
to work in the incremental mode.
This is why I recommend that manual
programmers work predominantly in the absolute mode. Since a CAM system doesn't
get confused in this fashion, and since motions at the machine will be identical
regardless of which mode is used, the incremental/absolute concern doesn't
apply. Indeed, many CAM systems that work with three dimensional shapes (like I
assume yours does) will output incremental motions since programs can be kept
There are still many CNC-using companies that have
not taken CAM system usage to your level. While almost
every company has and uses some kind of CAM system,
believe it or not, many still generate at least some
programs manually - especially for simpler work. Or at
the very least, they commonly edit programs at the
machine. In these cases, a knowledge of G code is still
This question was raised from the
article Macro Maven: Bar puller macro with bar replacing
The other puzzle is parametric programming. I'm far
from smart enough to realize how this (albeit handy)
technique could be applied to graphic software /
canned posting type of shop.
I know most high level CAM system
programmers cringe when the topic of CNC control based
parametric programming comes up. Most need "clean"
output that will run in CNC controls without
modification - and if misapplied - some applications for
parametric programming can really gum up the works.
Keep in mind that there are five
application categories for parametric programming and
I'd agree that at least some are not appropriate if a
CAM system is being used to generate CNC programs. Let
me list these five categories and make some comments.
There are exceptions to just about everything I'll say,
so remember that these are just general comments.
1) Part families - One parametric program
is used to machine several parts - operator changes
variables at machine to describe part being machined
Most CAM systems also offer part family
capabilities, and since many CNC users don't want
operators in control of programming, machine based
parametric programming for part families is
not a good
application for most CAM system users. There are some
exceptions, but I don't think they'd apply to you - so I
This tends to be the "classic" application
category for parametric programming. Indeed many people think it's the only one, feeling
that if you don't have part families, you don't have
application for parametric programming. It also tends
to be the one that gums up the works the most for CAM
system programmers. Shop floor people love the idea of
controlling their own destiny. They'd love it if they
could just change a few variables to make a different
part. In reality, many part family applications are too
complex to feasibly handle with parametric programming,
especially when a good CAM system is available.
2) User created canned cycles - a series
of motions can be executed from one G code level command
Most CAM systems will take advantage of
CNC control based canned cycles (like hole machining
cycles on machining centers - G81, G84, etc.) That is,
the actual posted output will include canned cycle
commands - they're part of the post.
The advantages of these built in CNC
control based canned cycles, of course, include
shortening programs and making it easy to modify
programs at the machine.
If your company performs a given type of
machining operation on a regular basis - but the
operation is not handled by a
control based canned cycle, it may be helpful to
"create" your own canned cycle and modify the CAM
system's post to output the appropriate command/s to
invoke it. A classic example is with thread milling.
Many CNC controls still don't have a thread milling
canned cycle. One can be easily created with parametric
programming. Once created, it will afford all benefits
of any other canned cycle - and again - can be invoked
by the CAM system. At the machine, the program will be
shorter - and the operator will have better control of
how the thread is milled.
3) Utilities - the machine's behavior is
enhanced in some way
The example shown in the
newsletter (the bar puller counter) is a utility
application. We're having the machine automatically
keep track of how many workpieces have been run from the
bar so an operator won't have to stay at the machine and
Applications in this category can be
helpful to any CNC-using company - including those with
CAM systems. Generally speaking, any time you're having
a problem at the machine - of any kind - is a time when
you should think about enhancing the machine's behavior
with a utility parametric program. This may sound like
a bold statement - and of course, not all problems can
be overcome with parametric programming, but it is
important to consider all possibilities when
problem-solving. Parametric programming provides many
tools to help in this regard.
With many utility applications, the CAM
system is not even involved. We're simply modifying the
way the operator works with the machine. Consider, for
example, the task of measuring program zero (origin) for
machining centers. If setups are qualified (fixtures
keyed to the machine table), of course, there is no need
for this task. Program zero can be calculated and
program zero assignment commands can be included in the
program. If qualified setups are not made, the position
of program zero must be measured during setup. One way
is to use a spindle probe (which, by the way, is driven
by parametric programs). If the machine doesn't have a
spindle probe, the setup person must measure use rather
crude tools (like edge finders and dial indicators) to
manually measure the program zero point location.
In this last condition, the "problem" is
the time and skill required. A parametric program can
be used that will allow just about anything that can be
done with a spindle probe to be done with an edge finder
(we recommend a conductivity-type edge finder that
lights up when it makes contact). The only difference
is that the setup person will have to manually touch
each surface (using the machine's hand-wheel function).
Everything else will be done by the parametric program.
I've just briefly explained but one
utility application - one that probably doesn't apply to
you. But my point should be clear - when you have
problems with the machine (wasted time, crashes, scrap,
and frustrations of just about any kind), you should at
least consider whether the problem can be solved or made
better through parametric programming.
4) Driving accessory devices - like
probes, tracking & reporting, and post process gauging
These higher-level accessory devices
require parametric programming features. So if a
machine has a spindle probe, it likely has parametric
programming capabilities. And since the probe can be
programmed, you can think of this application as similar
to what was described for user created canned cycles.
One or more probing "cycles" are often included within
CNC programs, meaning the CAM system must be able to
output the necessary commands.
5) Complex motions
Control manufacturers provide
interpolation types for needed motions. Linear,
circular, and helical motions are among the most
common. If you encounter a motion type that the machine
cannot perform, a parametric program may be the answer.
(Note that many CAM systems can generate just about any
kind of motion, but the program will become very lengthy
- the CAM system must generate a very long series of
very tiny straight or circular motions.)
Consider milling a tapered thread. This
requires a kind of spiral interpolation. Even many
newer machines still don't provide this motion type.
And older machines will not have this feature. A
parametric program can create the spiral motion
necessary to mill taper threads.
Applications in this category can often
keep programs much shorter than CAM system generated
programs. The taper thread milling parametric
program, for example, is only about fifty lines of G
code. Though this is the case, it may actually
generate thousands of motions when in use. If
generated on a CAM system, these motions would require
thousands of lines of G code.
Hopefully this answers your questions. I
did get a little wordy, but I didn't get too specific,
so please let me know if you have more questions.