Hello Guest it is April 15, 2021, 09:46:34 PM

Author Topic: tool force compensation  (Read 4730 times)

0 Members and 1 Guest are viewing this topic.

tool force compensation
« on: December 01, 2010, 03:43:05 PM »
I get a different sized hole depending on the direction I cut it. Most of the problem lies in a machine designed for wood, which is being used to cut aluminum stock.

In every machine there is some slop, the machine will bend as the tool is forced through the material being cut.

Is there a way to compensate the path for the forces on the tool?

These forces will be 90 deg from the direction of the tool path. I am aware that that the actual force cannot easily be measured, but a nominal value could be assumed for a given material, rotary speed, tool feed rate, and depth of cut. In my case, these items are relatively constant, and one number, for each axis, may do the trick.  It may even be possible to pick up some of these values from the g-code settings.

I haven't ruled out backlash, but I have done a lot to minimize it.

Thanks, Bill

Re: tool force compensation
« Reply #1 on: December 01, 2010, 03:54:19 PM »
Give a try to Gwizard program


I think there's a function to calculate tool deflection.

Re: tool force compensation
« Reply #2 on: December 03, 2010, 03:49:08 PM »
Trying to compensate for tool deflection is a very large variable, influenced by;
(1) Weight/rigidity/design of the machine itself.
(2) Type of cutting tool, roughing mill cutter/finish mill cutter type.
(3) Sharpness of the cutting tool.
(4) Cutter design, cutters for aluminum have more chip clearance than general cutters.
(5) Type and alloy being cut; aluminum, mild steel, tool steel, high-carbon, stainless etc.
(6) Material hardness.
(7) Speed the cutter is being pushed through the work.
(8) Depth of cut.
(9) Direction of cut; climb cutting v.s. conventional cutting.
(10) Type of coolant, if any?
(11) Solid carbide tool v.s. High speed steel cutter.
(12) Length v.s. diameter of cutter.
(13) Spindle precision.
(14) Tool holder/collett quality.

and, probably a few more I have not thought of here.

Climb cutting gives a better finish, but must be used carefully, as machne backlash may allow the table to let the tool dig in unexpectedly.
For consistent production type machining, use a roughing cutter leaving the part oversize (approx .010/.015") and finish off with a finish style cutter
using a climb cut. This will permit the lightest possible tool load for the finish dimension, and the variation of the roughing deflection will not enter into
finish dimension equation.

Also, the finish cutter will see less material to (less cubic inches of material to plow through) to dull it's new sharpness.
If the finish cutter is a high quality carbide, it will be even better, as carbide will retain it's edge longer than H.S.S. 

All tools deflect to some degree or another. It depends on how close and how smooth your finished part has to be. It is all a trade-off, and how much
time and money can be expended per part.


Re: tool force compensation
« Reply #3 on: December 03, 2010, 05:03:12 PM »
to add to Johns list,
a flexible machine could be the "loosest" at or near the mid point of each axis's travel, getting more rigid towards each end of its travel.
This would make it infinitely variable and quite difficult to compensate for ..... in this head anyway. :P
Just a thought,

Offline RICH

  • *
  •  7,419 7,419
    • View Profile
Re: tool force compensation
« Reply #4 on: December 03, 2010, 05:33:20 PM »
I would suggest you put something under what your trying to drill to keep the piece from bending.....or maybe get a new drill bit.
Before you injure yourself.
Re: tool force compensation
« Reply #5 on: December 03, 2010, 05:37:58 PM »
I was aware of about half of the items you mentioned and understand how the others have an impact on the tool path. And you are right, a finish pass and sharp tools do make a big difference.

I was wondering if there is a setting or a macro that I can use to generate a compensation that will get me closer to the optimal path. If I could normalize out the larger errors, I would be in great shape. I suspect that only one or two of the variables are causing most of the error, and I would like to minimize them.

For instance, if I could offset the tool path in the y direction when traveling in the x direction, the amount based on speed, I could make the flexing in the y direction appear to be stiffer that it is. A parameter in the g-code could enable and scale the effect depending on the material I use.

I am in the process of improving the structural integrity of the machine, but there are a few original design flaws that will be difficult to overcome without a total reinvestment.  

Unfortunately compensating for applied forces would entail an algorithm that runs real-time.
Re: tool force compensation
« Reply #6 on: December 03, 2010, 08:11:06 PM »
Now, I would think using a formula would work for that. ;)

Thou it still comes down to what John, Rush & Rich refer too.

I'd have to say... don't fudge, fix!
Re: tool force compensation
« Reply #7 on: December 03, 2010, 09:23:51 PM »
This might work for you, or a variation of such depending on the offset you need.

Function Cfg's
don't forget to enable formulas


Looks like it works but I did not do a full test to prove it out.
Re: tool force compensation
« Reply #8 on: December 03, 2010, 10:49:36 PM »
By Golly that just might work. Simple and elegant. I will read up on implementing that.

Can I define the multiplier as a user variable and set it from the G-code at the start of a project?

Re: tool force compensation
« Reply #9 on: December 04, 2010, 06:36:59 AM »
This still does not make sense to me how you get defection in X or Y for a hole your drilling in Z if you have good drilling practices.

But whatever, I was always use a center drills first to get true position, then start will smaller drills and work up to the hole size I need. Using a pecking cycle helps also.

As far as a multiplier, you could change the multiplier to a variable like a b c (which is an axis your not using) and just change the value of that. So you would have f(x)=x-(y-y*c)
Now, just put .99 in the C axis DRO or enter in your code a G0C0.99.(don't forget to change back to G1 if need be, or you learn some new lessons) Later in the program I guess you could change it to some other value like C0.88. It's not a good practice and quite obscure & convoluted, but have fun and be safe.