Freesteel Blog » Feedback in the CNC drive configuration

Feedback in the CNC drive configuration

Monday, September 17th, 2012 at 10:30 am Written by:

Last month in Austria I woke up and got out of my tent to be greeted by some fusspot who had just washed all my dirty dishes from the night before and was now lecturing me about what a slob I was for never doing my washing up. She was on safe ground because it was now impossible to disprove her as to my actual intentions because it was too late, the dishes were already washed up. And if I dutifully washed up before her every morning for the next seven days she would have been vindicated for telling me off and making me to get my act together. So it’s a lose-lose situation. The answer is you have to wash up immediately when there are fusspots on the loose who are looking for social credit to steal that they intend to cash in at the end of the expedition when it is time to clean out the toilets and it suddenly be your job by default.

Ideas are like dirty dishes. You have to publish them immediately before someone else washes them for you and leaves you with the job of merely making them work for the next 20 years.


  • CAD model – a list of geometric structures in 3D space, usually in the form of splined surface patches, and their adjacency relations
  • CAD system – software for editing and adding to a CAD model, including the function to create an approximation of the model by a large list of triangles.
  • 3D graphics – software and hardware for rendering and viewing large lists of triangles on a flat screen display.
  • CNC machine tool – a milling machine composed of (1) a spinning tool similar to a drill bit driven by a robot that can cut metal in every different direction, and (2) a control system capable of driving this tool linearly through a sequence of 3D points given to it.
  • Tape file – a file containing a list of 3D points in the appropriate format for a CNC machine tool controller to read and interpret.
  • DNC – a system for delivering the tape files to the CNC machine tools.
  • CAM system – software for outputting a tape file that will result in the CNC machine tool cutting out the shape defined by a CAD model, with knowledge of the physical dimensions of the cutting tool and the size and position of the uncut solid block of metal (the stock).


In the conventional configuration for this process there is a strict one-way flow of data from the CAD model all the way through to the CNC machine tool, like so:

Note the reuse of the Triangle list intended for the 3D Graphics by the CAM system. This has always been annoying to me as a triangulation that is good for viewing at is not always the best for machining. However this oversight is pretty much normal practice.

(In the early versions of Machining Strategist in 1994 we did operate two triangulations, one for the graphics and one for the machining. But then it turned out that these newfangled OpenGL graphics cards were powerful enough to view the machining triangulation directly, so we could make the system simpler. This is, however, distinct from normal practice where the graphics triangulation is applied to machining, resulting in minor flaws such as not matching the tolerance or curvature accurately with what should be an adequate number of triangles, and therefore needing to run at an over-tight tolerance with predictable performance degradation.)

This system configuration was established since before the invention of the HTTP protocol and all the network technology that has been built upon it. It is therefore due for a review.

There are two clear deficiencies: (A) the overuse of the users’s device for heavy calculations, and (B) the total lack of any feedback anywhere within the chain, in particular from the CNC machine tool back to the CAM system that is setting its trajectory.

To solve the (A) situation, which is an issue as we start using more of these handy portable devices that are really good at graphics and network connection, but don’t have the capacity for specialized heavy numerical calculations because you’d like to fit them in your briefcase, we migrate everything to the cloud, like so:

As you can see, all we have done is declare that what used to be the big box with fans in it underneath the work desk an internet server, and give the user a souped up 3D graphics device with some user interface layer built into it. Think of it as an iPad merely acting as a remote desktop onto their old machine. Subject to issues with responsiveness, this could be pretty good. You’re carrying the screen instead of the entire processing device, which can now be as heavy and low-cost as you like, as well as share the interface among other designers at a distance more effectively.

But this doesn’t get us anywhere new. What is truly lacking is feedback:

First, let’s look at how the CAD and CAM systems have been split into a control part on the user’s device and a kernel part on the internet server.

What this means with CAD is that operations such as selecting surfaces (determining what geometrical structures in the CAD model the user clicked on) are done on the user’s device, but then the heavy operations, such as smoothing a blend between the selected surfaces are done on the internet server, which then sends back a new triangle list containing the differences.

What this means in CAM is that setting the layers at which toolpaths are calculated and the order in which toolpaths are linked are done on the user’s device, while the non-trivial toolpath computations are done on the internet server.

It is fair to say there is no advantage to doing it this way in comparison to the Cloud based CADCAM configuration above in terms of processing efficiency — unless there is a feedback process.

Feedback process on CAD – There are some part designers who are really good because consider themselves as part of the team and they think about how to manufacture the part when they are creating their CAD models, so that the total cost, from the conception, to the physical object is much lower than when they dispatch unnecessarily difficult parts to the manufacturing department who have to lump it. Suppose the CAM kernel was always running in the background on the server against the part being designed and is able to provide a live estimate of the cost and difficulty of manufacture. Then even a novice designer would get a feel for when they were getting it wrong because they would be confronted with knowledge of the cost going forward to the end product.

Feedback process on CAM parameters – Having abolished the DNC, whose job is to deliver finished tape files to machine tools and not get any intermediate information back from them that could be useful to performance, we make it possible for the CAM system controller to communicate directly with the machine tool controller.

For example: (1) What tools have been loaded and can be used for cutting today? (2) What is the precise position of the stock or partly completed job on the work table as measured by a probing tool? (3) How much force was applied by the linear motors during the last ten toolpath motions?

Questions (1) and (2) are matters of convenience requiring small amounts of information that can anyway be updated by a human (by changing the tool or moving the part fixtures), or written down on a sheet of paper and transmitted to the CAM system operator

Question (3) is where it gets interesting.

Back in the old days when high speed machining was just getting popular, they frequently embarrassed the software by running toolpaths at speeds in the physical world more than twice as fast as the calculations could be made. Computing your toolpaths over two nights and batching everything up into a Tape file to run in the afternoon made sense.

But now we can compute toolpaths faster than machines can run them, so there is no point in doing it in advance. We can do it as we go along.

Suppose we direct the CNC machine to clear a layer of metal with a flat bottomed tool, and it turns out to overload the force limits on the machine and make it run slower than we expected it to. This could be because the metal is harder than expected, or the tool is a little bit blunt, or the spindle speed doesn’t go high enough. Then maybe the next layer should be cut a little bit shallower or the stepovers should be narrower. And in this fashion we can tune the machine’s performance as we go along like a JIT (just in time compiler) does for code, perhaps making equally great gains in productivity.

This is a feedback loop. It’s what would make the system come alive, like a rodent nibbling through a wall and feeling where it is softest as it goes along.

This is not OptiPath which is fundamentally limited because it can only change the feedrate, but not improve the trajectory.

A CAM system controller that issues short sections of tape file at a time through HTTP, and receives a response about how things are proceeding so far cannot be implemented under the conventional configuration with all its one-way filters. But this direct 2-way communication between some sort of CAM system controller and the Machine tool controller is the incremental step that must be implemented for feedback methods to eventually emerge and take root.


  • 1. On / Off replies at 17th September 2012, 1:04 pm :


    CAD/CAM “internet server” == older CAD/CAM mainframe system ?

    Twenty years old : catia, strim100, medusa, euclid, cadds and more others… worked like your description, except for CNC communication (punch card or floppy disk !) and computation time which was very slowly.

    Not a back to the future, you want a return to the past ? 😉


  • 2. AjanCnC replies at 2nd October 2012, 1:28 pm :

    Thank you for writing up this post. Information is good and point to point.

  • 3. Greg H. replies at 5th October 2012, 12:12 pm :

    I think CNC feedback is a great idea. Mazak has had a program feed/speed update feature for a long time. The way this works is, while the user is running the machine can adjust the spindle speed and feedrate then set a switch and those adjustments are saved in the program for the next run. but this only works for their own Mazatrol programs though.

    The ability to do the same for ISO programs would be a major real break through IMHO. We would have to spool feed the CNC from a PC then by reading the feed/speed outputs from the CNC controller and matching up program for real time program updating. I have a CNC shop in the US and would be up for this type experiment. The CNC controler would just magage the drives and toolpaths with offsets. The PC would really be driving and updating the CNC code.

    Just email and we can proceed.

  • 4. Dwg CAD replies at 9th October 2012, 7:19 am :

    Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts into the stuff you post!! Thumbs up

  • 5. Used CNC Equipment replies at 1st January 2013, 2:28 pm :

    In every kind of market, Asset-trade offers used CNC equipments available at Asset-trade that are used to be able to enhance the excellent and performance of the different procedures. Used CNC equipments have been used by men to reduce their work. Even the easiest device which is the handle has been confirmed beneficial in a lot of programs. Actually this has even been the reasons for the more complicated devices and resources that sectors are experiencing these days.

  • 6. Jason replies at 16th August 2013, 5:40 am :

    The idea of CNC feedback is not a new idea, the method has just changed over time. I think we will see many more advancements in CNC technology and feedback advancements in the years to come.

  • 7. Julian replies at 30th August 2013, 8:12 am :

    Most ideas aren’t new. The question is about getting it applied and whether it is any good.

    In this case it’s about being able to insert a proper full-on toolpath geometry creating CAM system into the feed-back loop, which I don’t think has been attempted yet.

    Most feedback loops insert a system that alters the feedrate applied to the toolpath. They don’t change the geometry.

    Come to think of it, most toolpaths alternate between cutting and linking moves. What if the machine tool was so responsive it could replace it with its own linking moves live as it went along using radar and material simulations?

Leave a comment

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