But why?
Why does this have to be done in real time? Why can’t you compile this and just run it?
Thirty years ago I worked for a company who sold CNC woodworking machines. They carried a big, full cnc line, and a small, Italian made machine that mostly drilled holes. To give you an idea of what I mean, Ikea uses many of this exact machine to make their adjustable shelving units. That machine uses a compiled code processor. It doesn’t do much machining, because compiled code isn’t up to the task, really. And there are several really good reasons why- at least for metalworking machines.
One of them is this. Watch this video all the way through.
Note the cutting times? yeah. Those are hours. 5 hour rough cut. 11 hour first pass. 15 hour second pass. 15 hour roughing level two. and so on and so forth.
Now, this is a true 5 axis machine in the video, which is still, in reality, a very simple mechainsm, and from a CNC programmer’s standpoint, still relatively simple. You just have to make sure your tool isn’t going to heel, that you have clearance for everything, that your tool is set with sub-micron precision, that the forging is bolted down and dialed in with sub micronic precision, and that the power to the machine isn’t going to go out for, oh, four or five days. The tooling, though, that’s another issue.
See, in order to make this all work, the finished pass (and in some cases, the roughing tools) have to be the same tool- on some critical components, changing a tool in the middle of a cut immediately scraps the part. So if you have to make a part that has a single tool that lasts for a 15 hour finishing pass, how do you keep it from wearing? You don’t. If it wears, how does that not change the profile of the part as it cuts? Offsets.
The most critical ability of a machine tool is it’s ability to do offsets. See, most of the time, a CNC part is programmed to it’s actual profile, and you have to tell the machine what the diameter of the tool is, and the machine offsets the path of the tool by it’s radius and cuts exactly the part you expect. On a five axis machine, this includes the diameter of the tool at it’s nose, the diameter of the ball, and the taper of the tool if it has one (Most do, to some degree)
At it’s most simple, the machine will stop the machining process every so often and use built in measuring tools to measure the tool and offset that amount. Tooling these days has predictable wear patterns in certain materials, and the machine can offset on the fly as the tool wears. Remember the ball we kicked? yes, it does happen that the geometry of the machine is changed in real time as conditions change. Oh, and let’s talk about changing conditions a moment. As a machine moves, the friction of the ways, ballscrew, gears, brakes, all causes temperature rise. Some machines- especially five axis machines- cannot be even operated without a specific warmup time. And when you are cutting, on something critical, even a three axis machine will have temperature monitoring equipment embedded into the castings at various locations through the machine, and that processor that’s keeping track of the circular path in real time will adjust the path, in real time, based on the tool wear and the increasing or decreasing temperature conditions in the machine. And we are STILL only talking about two axis, though the complexity involved in going to three axis or even five (Common in machine tools) is not really dramatically different. BTW, the turbine rotor in the video above is a classic example of how a curve can be interpolated in 5 axis at once.
I remember just enough of my Control Systems classes that when I try to think about the mathematics employed by the person who programmed the control system for that thing, my head asplode.
Wow. now that is some really neat shit right there.
Nice, thanks for the education!
I worked for 35 years in a factory that made steel. One type of steel we made was vacuum melted super alloy for internal jet engine parts, like this turbine that you show being machined. The jet engine blades of course are different, but the steel is a very unique thing, melted in a huge, I mean huge, vacuum chamber, and poured into thick walled steel pipes. When cooled, they are pushed out, then finished and sent to the customer for pouring into molds. The reason for melting in a vacuum is because O2 and N2 are trace elements that would be undesirable in the steel, weakening the xtal structure. Our head of technology, when I hired in 1978, and still there now, came up with a way to make the entire part form as one single crystal. This alloy, called single xtal 4, is what enabled Rolls Royce to make such huge strides forward in their jet engines, and is a huge part of the newest Airbus plane coming online soon. Of course, it is very expensive, and I myself have melted alloys in 8000 # batches which had a value of over 5 million $. They have Hf, Ta, Re, and often Rh. We had rare earth elements delivered that were so expensive that they came in via an armored truck with armed guards. Kept in a vault, they were weighed up to the nearest gram, and were accounted for as such. Being a corporation, they trusted us to run a furnace like that, but then they had a daily check list to make sure each shift swept the floor in their own area. This because some people had a lazy streak. You would think the right way to approach that would be to tell the lazy ones to step it up, but I guess that is why I ran the furnace and they made charts. The place is now owned by none other than Buffet and Berkshire Hathaway. In my 35 years I also worked in the lab and did every part of making air melted steel. Fun times, back breaking work, but now I am retired and just troll around the internet, bothering the smart kids.
Again, fascinating education.
I suspect what that what I’m thinking of as compiled code vs. the way the industry implements it must be different things. In every other kind of software I’ve ever seen, there’s nothing interpreted code can do that compiled code can’t.
My thought was that there was no need to calculate a tool path every time you made a part (which is what interpreted code does) because when you’re doing production your goal is to produce identical parts. That means the tool follows the same path for every part. Sure the operator has to put the part on the machine in the same position to the required tolerances, but instead of the computer calculating the path on the fly, the compiler calculated the path and put it in the program for that part.
In the video, for example, when they make the next turbine blade the tool paths will be exactly the same as the previous one. Any differences would be from measured differences in tool wear and that offset would be part of the calculated path.
On the other hand, if the machine is fast enough as it is, there’s nothing to be gained by going to a faster one.
Pigpen51 reminded me of working at company with a small mill in the late 80’s. We made our own steel out back. We had a small vacuum furnace, electric arc and some gas fired (long time ago, I may not remember correctly) I think we melted 2 million tons a year.
The product then went to the front of the property and was made into the LeTourneau L110 and the 210 ton dump truck.
Not exotic but very interesting for a farm hand from west Texas.
The offsets change, s.g, from tool to tool. And how they wear can change.