The first thing to know is most every CAM package does a pretty poor job calculating feeds and speeds. Most CAM programs have some sort of simplified speeds and feeds calculator built right in, but most of them are painfully over simplified to the point where they don't do much more than your 4 function calculator would let you punch in with the basic Wikipedia formulas.
At CNCCookbook, we have no less than 5 different CAM programs installedr. They were all sent to us to evaluate and write about. Every one of them has cool features of various kinds that we love. But every one of them also has a very primitive notion of feeds and speeds. That's probably a good thing because it gives our G-Wizard business an opportunity to grow, but I wonder how many machinists just assume their CAM program is doing a good job for them on feeds and speeds.
You can tell how sophisticated a speeds and feeds calculator is by the information it takes in and the information it gives out. Take a look, for example, at the G-Wizard's Feeds and Speeds documentation page--there's a lot going on there. Heck, just check out a G-Wizard screen shot:
The G-Wizard Feeds and Speeds Calculator...
Now compare that information to what your CAM program is doing. Many of them have a lot of limitations. Here are just a few examples:
- A fixed chipload by tool without regard to material. This may be modified by some "chipload factor" by material, but that isn't how the manufacturer presents the data, so why should you stand on your head to think about it the way the crazy CAM program wants?
- No chip thinning calculations.
- Not much tooling-specific calculations.
- No qualitative rules, like when to use conventional vs climb milling (there are important distinctions there!).
- No analysis of cutter deflection to help optimize your cut widths (stepover) or depth of cut.
The short answer is using your CAM program is better than nothing, but not so great. For that reason, we're working on integrating G-Wizard with various CAM programs to make it easier for you. Meanwhile, it's easy enough to use G-Wizard and enter the values it produces into the CAM program. If you've never played with G-Wizard, sign up for our free 30-day trial now to check it out. You'll be happy you did so as our users report it does a better job than even the market leading CAM programs.
How is Your CAM Toolpath Treating Your Tooling?
After you've upgraded your feeds and speeds calculations beyond what is included with the CAM package, the next thing to look at is the effect of various toolpaths. There are an infinite number of toolpaths that will machine the shape you desire, and they are not all equal. For this article, we'll delve into some of the minutiae of toolpaths rather than looking too hard at big picture issues like which toolpath to choose. We'll be talking about things like how the tool enters and exits the workpiece and how it negotiates its way around curves and corners.
Why does it matter? Don't CAM programs all produce pretty good g-code?
Let's digress for a moment to talk about race cars. A fast driver can keep his car right at the edge of its performance envelope around the entire circuit. He knows that if the car is right at that edge, any control input might push it over the edge, resulting in the car moving off the optimal line he wants it on, or in the worst case, resulting in a loss of control. If he goes into a corner a little too fast, he knows that the act of breaking is applying an input that may make matters worse. If he twitches the wheel slightly through a turn, it makes the car hunt for the line and prevents it settling in gracefully. He must apply just the right amount of each input, and he must apply the input smoothly, without any jerking.
Your cutter needs exactly the same treatment for optimal performance. Every change of direction is an input that increases the forces on the cutter. The sharper the change, the greater the forces. It's very important to consider the difference between an impulse and steady force too. Imagine you're applying a force to the end of the tool. You can either apply it by tapping the end of the tool with a hammer using a tap that applies the exact amount of force, or you can steadily press against the tool with that force, perhaps having ramped it up smoothly. Which method do you think will allow you to apply the most force? It's not the hammer!
Let's go through some of the most critical toolpath goings on while milling and see what measures can be taking to keep it smooth and easy. Using these measures will reduce tool wear, improve surface finish, and ultimately allow you to run the cutter faster, further, or both.
Cut Entry and Exit
Entry into a cut is the worst case of interrupted cut, and causes the most wear and tear on the cutter. Ideally, you want to roll the cutter smoothly into the material with an arc motion rather than a straight line. If you must move in a straight line, avoid a head-on collision--try to enter almost tangentially. If you can't roll gently into a cut, try reducing the feedrate to half until the cutter is fully engaged in the cut.
I'm fascinated by these geometric effects. Chip thinning is another. Isn't it interesting how Mother Nature tends to like circles better than straight lines? Chip thinning, rolling into a cut, and the trochoidal paths of high speed maching are all about the behavior of circles as we try to use them (in the form of rotating cutters) to cut the straight lines that we humans are more comfortable with. Circles are more gentle and natural in these applications. Here is another look at the geometry:
Not the chip shape to the right of the feed line (the red line is the path the cutter follows): thin chips on exit are better!
To execute an entry like this means starting the cutter out one radius to the right of the original starting location and then rolling it in along a path that is an arc with the same radius as the cutter. The folks on PM report that this works as well for endmills as it does for the face mills Sandvik shows in their video. In fact, they say it really helps improve cutter life on materials like Stainless Steel.
Stay in the Workpiece and Avoid Straddling Slots
Try to keep the cutter engaged as much as possible. Every time it leaves the workpiece it has to do another entry, which is an interrupted cut of the worst kind. Your cutter and your workpiece will be happier if you can keep them engaged.
You can really make a cutter's life miserable by travelling over slots, holes, and other openings because you're forcing the cutter to enter the workpiece over and over again each revolution. Try to arrange your toolpath so that instead of straddling a slot, it cuts a pass on either side of the slot.
Anytime you must machine over interruptions, you can improve the situation by reducing the feedrate up to 50% depending on the toughness of the material.
Plunge, Ramp, or Helix (Circular Ramping)?
When preparing to pocket, you have a choice of plunging, ramping, or helixing to get the cutter into the material. Of course you could also use an insertable drill to quickly open a cavity to start from, but you'll have to way the cost of the tool change to see whether it's worth it. Not counting the tool change, a drill is the fastest way to make a hole of all these methods.
In order of preference, the Helix is the easiest on the tooling, followed by ramping, followed by plunging. Avoid the latter where possible.
Travel in the Cut
Stay off-center when Face Milling
If your cutter is wider than the cut, don't position the cutter right on the centerline--keep it on one side or the other. This loads one side of the cutter and makes for a more stable cut since the cutting forces will tend not to move around the way they do when the cutter is centered. Ideally, position on the side (based on spindle revolution) that results in climb milling where the chip starts large and gets smaller. This is left of center for a clockwise spindle rotation. A centered cutter has a large average chip thickness throughout, but an offset cutter can start chips large and have them get smaller, which is more favorable geometry as we discussed under Cut Entry and Exit.
Going Around a Corner
Going around corners is really tough on tools because the tool engagement angle, and hence cutting forces, can radically increase in the blink of an eye. This diagram helps explain:
Entering a corner doubles the cutter engagement...
As the cutter enters the 90 degree corner, the Tool Engagement Angle, which is the angle of the tool's circumference that is cutting, doubles. Cutting forces spike commensurately and tool gets hammered. This tells you why special HSM tool paths that control the engagement angle can run so much faster. A manufacturer's normal feeds and speeds have to assume there will be corners. As such they're dialed down to take the huge spikes in cutting force. If the manufacturer could be assured the tool would only be used in a straight line with no corners and no cutting force spikes, they could offer much higher speeds and feeds.
CAM programs provide several methods of avoiding problems in corners.
Adjusting Your Feedrate
Every machinist has had the experience of hearing the machine "squeak" out a little chatter as the tool goes around the corner. Most have broken tools in corners when they pushed too hard. At some point, machinists learn to "ride" the feedrate override. That is, they would dial back the feed by twisting the FRO dial as the cutter came to a corner. Eventually, utilities and CAM programs became available that would automatically slow down the feedrate in corners to keep the cutting forces constant.
This is not a bad solution compared to the alternative of plowing into the corner full speed. It will let you tune up your programs to run with higher feeds and speeds. However, pretty soon better ways were developed. The disadvantage of simply adjusting the feedrate is that machines are limited in how fast they can accelerate and decelerate. Inevitably, this means g-code has to slow the tool sooner and longer than is optimal.
Trochoidal Paths and "Peeling" Corners
What if instead of slowing down for corners you simply arranged the toolpath so there weren't any corners? This is the secret of all modern HSM toolpaths. The first approaches tried involved techniques called "Trochoidal Milling" and "Corner Peeling."
Corner Peeling invovles taking a series of arc moves to slice down gradually into the corner instead of plowing into it:
Corner Peeling involves using toolpath arcs to clean out a corner...
Trochoidal Milling was first introduced to clear slots. Imagine rolling a disc in a straight line along its edge, with a pencil stuck in the side of the disc. The tip of the pencil describes a looping figure called a "Trochoid" as it rolls. Now imagine cutting a slot with an endmill. Normally, the endmill just plows along the slow, full width. But suppose you used a smaller endmill, and suppose you made it loop around and around so that the loops were the full slot width. That's a Trochoidal Toolpath, and you can run it a lot faster than you can run the full width endmill.
Constant Engagement Angles
The problem with Peeling and Trochoids is they're special case "hacks" for corners rather than general purpose ways of controlling tool engagement angle. Eventually, CAM vendors solved the problem of how to generally create toolpaths that keep constant tool engagement angles. The productivity when roughing with such paths is huge. Here is a typical path created by GibbsCAM's Volumill for a pocket:
We'll have more to say about these sorts of toolpaths in the article devoted to HSM (High Speed Machining).
CAD/CAM Artifacts NURBS and Curve Fitting
One last thing I wanted to touch on related to the quality of g-code and toolpaths produced by CAM programs. These programs are working at a bit of a disadvantage from some perspectives. The reason is that they're typically building on layers of approximations, each of which has the potential to introduce errors and roughness in the final result. Let's start with the CAD model we're getting the geometry for our toolpaths from. Drawings and models consisting strictly of straight lines and sharp corners are relatively easy to create accurately. But when dealing with curves, all sorts of issues can crop up:
- Are we approximating the curves as a series of many line segments?
- Can we go beyond simple arcs to use more complex representations of the curves?
- Can we represent curves using NURBS (Non-Uniform Rational B-Splines)?
That's the order from lowest to highest quality representation of curve geometry. Suffice it to say that the further down the list your CAD operates, the better potential it has for delivering smooth accurate geometry.
Next, we need to consider what the CAM program is prepared to consume. For example, can it take in your CAD program's native files or did you have to convert to some other format? Consider STL, for example. STL is a common 3D format that represents 3D objects with thousands of small triangular facets. Clearly there is the potential for such an approximation to diverge from the smooth flowing curves you had in mind when you created the model. It's always best if your CAM program can import the native geometry format of your CAD. BTW, just because it happens to be integrated with the CAD program doesn't necessarily mean that's the case, although there is a high likelihood it is. You also have to consider whether the internal representation of the geometry used by the CAM program reverts to something less sophisticated than your CAD produces. The latter is something you're unlikely to ever find out for sure, but you can suspect it if you notice the CAM program acting like it ignores or approximates some of the geometry.
The last step is your CNC Controller. Basic g-code has line segments (G00 and G01 moves) and arcs (G02 and G03). That's it. It's only the higher end controllers that can directly operate on NURBS. So even after you've gone to great trouble to avoid losing fidelity throughout the CAD to CAM chain, your CAM program must still break things down to something your machine's controller can deal with.
Complex "curvy" toolpaths for tasks like 3D profiling can wind up with lots of operations as the curves are simulated as many very small line segments (and possibly arcs). In fact, the volume of data can overwhelm the controller, whether because it can't store it all and requires drip feeding, or because it can't process the moves fast enough to maintain the commanded feedrates. Your CAM program may also output changes of direction that are too frequent and sudden for the acceleration capabilities of your machine.
There are a host of ways that information, accuracy, and surface finish can be compromised on the road from drawing to finished part. How do you avoid these problems?
First, you can fiddle with the settings of your CAD and CAM. Settings like tolerance are pretty important for these situations.
Second, some CAM and other utility software has the ability to go back into the g-code and tune it up to run better. This is done using a process called "curve" or "arc" fitting. In essence, the idea is to convert a series of moves into a single smooth arc, provided the arc is within a specified tolerance of the original series of moves. Doing this can dramatically reduce the size of some g-code programs as well as making them run much better on machines that have trouble keeping up with all the little moves.
Another Take on Artifacts: Facets from STL
It's good to have a lot of choices for file formats and to know what the different formats strengths and weaknesses are. Depending on the job, some are better than others. Consider this part which is showing marked faceting where there should be smooth curves:
Faceting shows the g-code used lines where arcs might have been better...
The photo is from a CNCZone thread. The machinist had recently switched from using the DXF format for CAD to STL files. That's when the faceting began. The trouble is the STL file format has no way to represent a smooth curve or even arcs. It converts everything into triangles:
There's not necessarily anything wrong with this, except that you have to be aware of it. Your CAD and CAM software will allow you to specify the tolerances--how closely must the mesh match the idealized 3D part? With a small enough tolerance, the facets will disappear. The flip side is unless your CAM software is pretty clever, you'll be forcing your machine to make hundreds or even thousands of tiny little straightline moves for those facets. A clever CAM will spot the opportunity to use arcs to simplify the code. You can even purchase software that goes back into your g-code and looks for opportunities to substitute arcs.
The thing is, with this particular part, the desired result is very amenable to 2 1/2D programming. STL is more of a 3D format. Why go crazy profiling a bunch of triangular facets in 3D when you can just cut a simple profile with arcs and line segments in 2 1/2D?
How Fast Can Your Machine Controller Go?
As we've seen, a lot of changes can be made that result in smoother cutting. You want the smoothest toolpaths possible. You want fewer operations, for example, don't use lots of line segments where a single smooth arc will fit the tolerances required. Some of this is just good cutter dynamics, and some of it is trying to overcome the controller's shortcomings.
Older controllers can't necessarily process as many blocks per second as is needed to follow all those little line segments. Let's say you're approximating an arc with a series of short segments. The arc has a radius of 1/2" and your tolerance on the job is 0.001". Using G-Wizard's Chord calculator, we can see that each segment is about 0.001" long and covers an angle of 0.1146. Let's say we need to do 1/4 of a circle for a corner, which is 90 degrees, or 785 of these little segments.
Now let's assume we're cutting aluminum with a 3 flute 1/4" cutter at 40 IPM. Those little segments are supposed to be cut in 0.01 seconds. Put another way, your controller has to execute 78,000 blocks/second to keep up. Typical modern controllers can run 2000 - 4000 blocks per second. What happens is your cutting slows way down in the corner because the controller can't command the servos fast enough to keep up with the program.
This has been a somewhat extreme example, but programs call on their controllers to go faster than they're able more often than you'd think, especially if you're running an older controller.
World's Fastest Controller?
MTI (Miceli Technologies) claims to make the world's fastest CNC controller. It runs at 50,000 blocks per second. Because of its greater ability to run programs at the speeds intended, Miceli claims they will run jobs 25-75% faster, and in fact they guarantee your machine will run the Mercedes Test Geometry twice as fast as it did before the Miceli control was installed.