|
By John Nelson, Haas Applications Manager
This page has some tips and tricks to use when programming complex
3-D surface toolpaths.
All of my experience in 3-D programming has
been with Mastercam® software. Many of the terms I will be using
will be specific to Mastercam, but most CAM systems have similar
features. Although the names of the features may be different,
your system should still have them.
Modeled Surfaces
To get a good surface toolpath, you must start with a good
surface. If your surfaces were created in a software program
different from the software you are using to generate the
toolpaths, it will be well worth your time to do some checks
on the surfaces provided.
You need to determine the direction of the “positive surface
normal.” A surface normal is a vector (direction) that is
perpendicular to the tangent plane of a surface at the point
of tangency. It is an attribute that is attached to each
individual surface and not to a specific part shape. In the
diagrams below, the green arrows represent the vector that is
perpendicular to the surface at the point where the vector
intersects the surface, and they point in the direction of the
positive surface normal.
Each surface has two normal vectors, which point in opposite
directions. One is referred to as the positive (front,
outward) direction; the other as the negative (back, inward)
direction. The positive surface normal side of the surface
should always be the side you are machining. When a surface is
created, the default positive normal direction is based on the
relative directions of the curves defining the surface. This
becomes a problem if you are machining a model that has
several surfaces, with some positive normals pointing inward
and some outward. The normal direction must be flipped so all
the positive normals point in the same directions. In the
graphic below, the surface on the left has the positive
surface normal pointing outward. The surface on the right has
the positive surface normal pointing inward.
|

|
It is important to know the surface normal direction, because it
affects the ways in which offset surfaces are created, curves are
projected onto surfaces, and fillet surfaces are created between
two sets of surfaces.
Also, check the surface creation tolerance or maximum surface
deviation tolerance. These will determine the maximum distance by
which a surface can be separated from its generating curve. If the
tolerance is too large, the final machined surface may not be
desirable.
Tip: I usually set my maximum surface deviation tolerance
set to 0.00005" (0.0013mm).
|
Surface Finish Toolpaths
Surface finish toolpath selection can be more difficult. There are
a few basic concepts that must be understood in order to produce
an excellent quality surface finish toolpath. In 99% of cases, a
finish toolpath will be created using a spherical (ball) endmill.
A ball endmill is used specifically because of its spherical
shape. This shape allows it to move over all surfaces and cut at
any point around the sphere. For example, think of a ball bearing
placed in a bowl. You can roll the ball over any part of the bowl
and it will make contact with the surface in different points
around the sphere, depending on the location of the ball in the
bowl. The point of contact is called the tangent point.
The next concept to understand is called radial step-over.
Radial step-over is the distance between centerlines of successive
parallel cuts. When the radial step-over is increased, the cusp
height will increase. The cusp height is the primary factor
that will determine the smoothness of the machined surface. A cusp
height of 0.00003" to 0.00005" (0.00076 to 0.00127 mm) will
produce a very fine finish. Since the cusp height is controlled by
the radial step-over (rso) and the tool diameter, the following
formula can be used to calculate the cusp height on a flat
surface:
|
 |
|
 |
When selecting a finishing toolpath, the first consideration
should be the required surface finish. If you are creating a mold
and the surface finish must be extremely smooth, you will have to
make different choices than if you are cutting sculpted surfaces
with a large surface finish tolerance.
The first type of finishing toolpath is called a parallel path. It
moves the tool across the surfaces in straight, parallel cuts.
These straight cuts do not need to be parallel to a machine axis.
They can be produced at any angle, but all passes over the
surfaces will be parallel to each other. This toolpath produces
the best finish in most situations.
There are two ways to cut a parallel toolpath. The first is
zigzag, and the second is one way. A one-way parallel toolpath
takes a pass, rapids up in the Z axis, rapids back to the
beginning and takes another pass in the same direction at the
specified radial step-over. All passes are made in the same
direction.
Zigzag cutting moves the tool back and forth across the part,
stepping over at each change in direction.
TIP: It has been my experience that a one-way toolpath will
produce a better surface finish, but will take longer to run
because of the rapid moves at the end of each pass. Zigzag
toolpaths have a tendency to climb cut while moving in one
direction across the part, but conventional cut while moving in
the other direction. This usually produces uneven surface
finishes, and can cause premature cutter wear on hard or abrasive
materials.
The scallop toolpath is another common one. Scallop-finish
toolpaths create consistent scallop heights over an entire set of
surfaces. The toolpath consistently touches the surfaces and
minimizes retraction motion. This path works very well because it
can start from the outside and “collapse” in toward the center, or
start in the center and expand outward. The drawback to this
toolpath is the same: Because it expands outward or collapses
inward, it changes the cut direction on the surfaces. When the
cutter changes direction, it leaves visible “seams” on the
finished surface. Still, this toolpath is very useful as a
semi-finish toolpath to get rid of the steps from the constant
Z-axis surface rough toolpath. It also works great when a very
fine surface finish is not required.
Cut Tolerance
In all cases with surface toolpaths, the cut tolerance controls
the precision with which the cutter follows the surface. This is
sometimes referred to as linearization tolerance. The cut
tolerance determines the accuracy of the surface using chordal
deviation (distance between the toolpath and the true curve,
surface, or solid face). The cut tolerance linearizes the toolpath
and controls how closely the tool follows the true curve, surface,
or solid face.
|
 |
Since the toolpath is linearized (all toolpath moves are G01,
linear interpolation), the cutter cannot always be in absolute
contact with any surface that has curvature to it. Therefore, the
toolpath leaves the actual surface by an amount specified in the
cut tolerance. When the cutter has deviated from the true surface
by the cut tolerance value, a block of motion is output to bring
the cutter back in contact with the surface. When the cutter is
back on the surface, another block of motion is output to avoid
violating the surface.
Because of this linear toolpath, the machined surface is actually
a series of flat surfaces called facets. Think of a diamond: It is
round and conical, but is truly a series of flat surfaces. If the
cut tolerance on a finishing surface toolpath is too large, the
resulting surface will have large facets. Also, because the
toolpath is deviating from the true surface, you will see gouges
in the machined surface. These gouges do not violate the true
surface – they are only gouges in the uncut stock left over from
the linearization process. This is because the tool will not
always deviate from the true surface by the same amount, in the
same position, along the true surface on successive step-over
passes. To solve this problem, I have found that a very small cut
tolerance will greatly reduce both gouging and size of the facets.
TIP: For the finest surfaces, I recommend setting the cut
tolerance to a value of 0.00002" (0.0005 mm).
Filtering Toolpaths
Filtering toolpaths is a great way to reduce the size of the
G-code file used to produce complex 3-dimensional surfaces. When
you filter a toolpath, the CAM system replaces toolpath moves that
lie within a specified tolerance, in a straight line, with a
single toolpath move. This is contrary to the purpose discussed
above of setting the cut tolerance to a small value, but if you
set the cut tolerance and the filter tolerance to the same value,
you will get very little reduction in the amount of code produced.
Now, we can set the arc filter to reduce the amount of G-code
without reducing any accuracy.
With the toolpath filter you can replace multiple linear tool
moves with a single arc move of a specified minimum and maximum
radius. You can choose to create arcs in the XY, XZ, and/or the YZ
planes, but the tool motion must be parallel to a machine axis to
get the arc output. Setting the arc filter parameters allows you
to smooth the faceting that is typical of linearized surface
toolpaths, and create a single arc move out of several linear
moves to reduce the amount of G-code produced.
|
High-Speed Machining
The high-speed machining option in the Haas control works by
analyzing the change in vector direction, or change in angle, from
one block to the next. When the change in vector direction is very
small, as with code produced by using a small cut tolerance value,
the control can interpolate the motion at a higher feedrate than
when the change in vector direction is greater. The greater the
change in vector direction, the more the control must slow the
motion to stay on the programmed path. For this reason, you never
want to drive your cutter into a sharp internal corner. The
machine motion has to come to a nearly complete stop to change
direction at such a sharp angle in the span of one block of
motion. In that brief period of hesitation in a sharp corner, any
tool pressure or tool deflection will be reduced and may result in
small gouges at the surface intersections. You should always model
a fillet radius larger than the radius of the cutter being used,
or select a cutter with a smaller radius than the required
fillets. This allows the machine to make the large change in
direction over more blocks of code. The machine motion will be
much smoother and faster, and produce better finishes in those
areas.
The Haas high-speed machining option can process at a speed of up
to 1000 blocks per second – that is, one block every
one-thousandth of a second
(1 millisecond). In order to maintain smooth, fluid motion, your
program should not contain any block of code that takes less than
1 millisecond to execute. For example, if your feedrate is 150
inches per minute, the commanded speed is 2.5 inches per second
(150 / 60 = 2.5). If you divide 2.5 in/sec by 1000, you will find
that, at 150 ipm, you travel 0.0025" every millisecond. You can
determine the 3-dimensional distance traveled (D) in a linear
block of code by using the following formula (d = distance moved
in that axis):
|
 |
G-Code Verification
The best tip I can give on 3-D surface machining is to get a
G-code verification software package. Every CAM system has
toolpath verification built in. The problem with this is that it
verifies the CAM operation, but the machine is reading the G-code.
Many things can happen in the posting process, especially if you
are applying the toolpath filter at the stage described above.
Every Applications engineers at Haas Automation, Inc., has Metacut®
Utilities on their computer. Metacut is an inexpensive software
program that produces a solid model graphical representation of
precisely what your programmed part will look like.
We hear complaints that a customer’s machine is leaving a gouge in
a part, but when the G-code is analyzed with Metacut, the gouge
shows up in the graphical representation.
The Metacut software has functions such as graphical editing,
verification, file and entity analysis, backplotting, and
graphical file comparison. It gives you the ability to click on
any block of code in the program and instantly analyze it. Metacut
will give you the X, Y, and Z coordinates at the start point, mid
point, and end point of each block. It calculates the
2-dimensional distance traveled in each axis as well as the
3-dimensional distance traveled in all axes combined.
You can download a copy for a 30-day free trial at
www.metacut.com
The software is helpful in determining if there is a major problem
with your program, such as a machine crash. It is even more useful
to determine the surface finish you can expect from your 3-D
surface-milling program.
Summary
1. Check your surfaces to make sure they can be machined.
2. Investigate copy mill roughing to see if it is the right
approach for your parts.
3. Finish with a ball endmill and set the step-over to produce an
acceptable cusp height.
4. Set the cut tolerance appropriately for the desired surface
finish.
5. Filter to arcs when possible.
6. Verify the G-code before you cut a part.
7. If the result is not what you expected, verify the G-code again
and zoom in on the area that doesn’t look right. This will help
you determine if the problem is in the program or caused by some
other factor.
8. For questions, contact a technical representative at your CAM
system, tooling manufacturer, or machine builder. If you own a
Haas machine, you can contact me directly: John Nelson,
Applications Manager, Haas Automation, Inc.
jnelson@haascnc.com
|
|