What Is Parametric
Programming?
The best kept secret of
CNC!
There are few CNC people that even know what
parametric programming is -- and fewer still that know how to use it! Given the
enhancements that this kind of programming brings, it is surprising that more
machine tool builders, control manufacturers, and technical schools don't say
more about it. In this short discussion, we'll explain what parametric
programming is and show its main applications.
What it is
Parametric programming can be compared to any computer programming language like
BASIC, C Language, and PASCAL. However, this programming language resides right
in the CNC control and can be accessed at G code level, meaning you can combine
manual programming techniques with parametric programming techniques.
Computer-related features like variables, arithmetic, logic statements, and
looping are available. Like computer programming languages, parametric
programming comes in several versions. The most popular is Custom Macro B (used
by Fanuc and Fanuc-compatible controls). Others include User Task (from Okuma),
Q Routine (from Sodick), and Advanced Programming Language [APL] (from G& L)
In addition to having many computer-related
features, most versions of parametric programming have extensive CNC-related
features. Custom macro, for example, allows the CNC user to access many things
about the CNC control (tool offsets, axis position, alarms, generate G codes,
and program protection) right from within a CNC program. These things are
impossible with only normal G code programming techniques.
Applications:
Many companies have excellent applications for custom macro and don't even know
it. Of course, if you don't even know you have an application for something,
it's impossible to even consider using it. While these applications are covered
in much greater detail during this video course, applications for custom macro
fall into five basic categories. Do any of these sound familiar?
- Families of parts
- Almost all companies have at least some
applications for custom macro that fit into this category. Possibly you have
prints dimensioned with variables right on the print. The programmer must
reference a chart on the drawing to come up with values needed in the
program. Or perhaps you consistently find yourself editing one CNC program
to make another one. If you do, you have a perfect application for custom
macro!
- Inventing canned cycles
- Even if you don't have a perfect family of
parts application for custom macro, surely you have at least some workpieces
that require similar machining operations. Or maybe you find yourself
wishing your CNC control had more (or better) canned cycles. With custom
macro, you can develop general purpose routines for operations like thread
milling, bolt hole patterns, grooving, and pocket milling. In essence, you
can develop your own canned cycles!
- Complex motions
- There may be times when your CNC control is
incapable of easily generating a needed motion. To perform accurate thread
milling, for example, your control must have the ability to form a spiraling
motion in XY while forming a linear motion in Z (helical motion will not
suffice in this case). Unfortunately, most CNC controls do not have spiral
interpolation. But, believe it or not, with custom macro you can generate
this desired motion. In essence, custom macro allow you to can create your
own forms of interpolation.
- Driving optional devices
- Probes, post process gaging systems, and
many other sophisticated devices require a higher level of programming than
can be found in standard G code level programming. Custom macro is the most
popular parametric programming language used to drive these devices. In
fact, if you have a probe on one or more of your machines, you probably have
custom macro!
- Utilities
- There is a world of things you can do with
custom macro that you would never consider doing without it. Custom macro
can help reduce setup time, cycle time, program transfer time, and in
general, facilitate the use of your equipment. A few example applications
that fit into this category include part counters, tool life managers, jaw
boring for turning centers, using standard edge finders as probing devices,
and facilitating the assignment of program zero
Example:
To stress what can be done wit parametric programming, we show as simple example
written in custom macro B for a machining center application. It will machine a
mill a hole of any size at any location. Notice how similar this program is to a
program written in BASIC.
- Program
- O0001 (Program number)
- #100=1. (Diameter of end mill)
- #101=3.0 (X position of hole)
- #102=1.5 (Y position of hole)
- #103=.5 (Depth of counterbored hole)
- #104=400 (Speed in RPM)
- #105=3.5 (Feedrate in IPM)
- #106=3. (Tool length offset number)
- #107=2.0 (Diameter of counterbored hole)
- G90 G54 S#104 M03 (Select abs mode,
coordinate system, start spindle)
- G00 X#101 Y#102 (Rapid to hole center)
- G43 H#106 Z.1 (Instate tool length
compensation, rapid to approach Z position)
- G01 Z-#103 F[#105 / 2]
- Y[#102 + #107 / 2 - #100 / 2] F#105
- G02 J-[#107 / 2 - #100 / 2]
- G01 Y#102
- G00 Z.1
- M30
|