Freesteel Blog » Sample rate from machining tolerance

Sample rate from machining tolerance

Friday, April 14th, 2006 at 10:15 am Written by:

Diagram of machining tolerance

Someone asked how to work out the sample rate for cutter locations from a given machining tolerance. This value refers to how much a toolpath is allowed to gouge the part. Undercutting is a different and less critical problem since you can always go back and cut some more metal off; it doesn’t mean you have to throw away your part.

Looking at the problem from above in 2D (the principle is the same in 3D), you have two cutter positions A and B. The absolute volumes in space occupied by the cutter overlaps if the distance between A and B is less than twice its radius r.

We know that the cutter at location A absolutely does not interfere with the part, because that’s how we found its position (by moving it down or from the side until its very first contact with any triangle defining the part). The same is true for location B.

Now, when the machine tool drives the cutter from point A to point B, it passes through an area we don’t know anything about. There might or might not be material of the part in the cusped area I have marked as the “Volume of possible gouge”; it has not been checked.

Assuming the worst case scenario, there could have been a piece of the model that intruded into this unchecked volume as far as possible. And according to the geometry of the tool and the overlapping areas, the deepest it could come in is the distance t. That is the machining, or gouge limiting tolerance. It’s simple trigonometry to work backwards from the cutter radius, r a pre-set value of t, to the appropriate sample rate s for which the tool will never gouge the part by more than a tolerable amount. This distance is often larger than you would expect, particularly for big tools.

As I mentioned earlier, you can also take account of the contact points made with the part corresponding to cutter locations A and B, and notice when it changes suddenly to tell when there is a discontinuity in the model (a corner for example) where you need to subdivide the samples to make a better finish. This does not affect the gouging tolerance since it’s only about reducing the undercutting in these areas.


  • 1. Neil Buck replies at 15th April 2006, 10:59 pm :

    Martin /Julian,

    Being a Meshcam user I found freesteel via a link from Robert’s Yahoo group. I must say I’m really very impressed with both your proposed cam strategy and your philosopy regarding making it freely available with a view to creating customer driven demand. I’m a realtime software developer by trade but have spent the last two years building various cnc routers and milling machines. It’s been quite a journey of discovery. I’d be really interesed in trying out your standalone demo app. I’ve machined a number of 3d models using regular x/y slicing strategies/waterline finishing, etc but am very keen to get a feel for the power and elegance of your proposed adaptive algorithm.



  • 2. Julian replies at 29th April 2006, 9:22 am :

    I’m just checking through all posts. Did we get back to you? Let me know.

  • 3. Neil Buck replies at 12th July 2006, 10:30 pm :


    Re your reply of 29th April. I’ve been busy with day to day tasks of running a business but to answer your question, no you didn’t get back to me and yes I am still very interested in trying out your standalone demo app.



  • 4. Freesteel » Blog Ar&hellip replies at 11th January 2007, 1:57 pm :

    […] gether, the quantity of the material which can be over-cut from the model decreases. (See this post for a diagram). The sum of these two tolerances gives the user tolerance; the error is share […]

  • 5. Freesteel&hellip replies at 27th January 2009, 8:48 pm :

    […] throwing away valuable calculation results, I settled on the above way of doing it, when I observed that the geometric distance sample rate defines the machining tolerance. This gave my code an immediate two-fold advantage, though no one in the office seemed particularly […]

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>