When I started this blog I knew it would be hard to update it in an often basis… but I didn’t know it would be so hard! I sincerely apologize for the HUGE interval between my posts, hopefully I have a plenty of work to do and the rest of my time I’m spending with my family, or sleeping…
I was enjoying some deserved vacations when I started www.camzone.org , so during the first weeks I was posting more often… anyway, as I said in my first post, the idea about this place is to exercise my idiom skills, learn new things and offer a bit of what I’ve learned from others in the past 13 years in the machining world… if I don’t have anything new or worth to post, I simply keep thinking about something until I can come up with a subject and a content reasonably interesting…
Many things happened since my last post – I spent an entire week at the EMO show in Germany, where I could re-visit some friends, make new ones and see what is going on in the metalworking industry. I also went through a CAM benchmark and I can’t tell you how much I learned in the past months…
Even being a post-writer for at least 8 years, I also learned some interesting new things about the subject we’re going to discuss today… glad I did not write about post-processors earlier because what I saw there is worth to be discussed and I didn’t know certain things until this exhibition… sit tight…
What is a post-processor?
I always said that this blog maybe is not the best place for newbies in the CAD/CAM world, and by newbies I mean people who don’t even know what a post-processor is. So why am I starting this with a “What is a post-processor?” – Let me explain… I’m sure there are a plenty of places where you can learn about these things… www.cnczone.com, www.practicalmachinists.com, the help files of your CAM systems and that dude that mess with the posts in your company can explain you… so today I’ll take for granted that you know the basic tasks of a post-processor so that I can tell you what else you should know beyond the basics…
A post-processor is in essence software and/or a sequence of instructions to deal with a neutral format generated by a CAM system and translates that neutral language to one that makes your CNC control happy. With a few exceptions (Fidia/Hurco CNC controls with embedded CAM for example); CAM systems do not generate instructions for any CNC machine in particular. One of the challenges that the CAD/CAM fathers had to overcome in the sixties was to create an architecture that could deal with other possible variations in the design of the machine tools and the language used by their controls.
Because many institutions started the development in the same period, their efforts were not coordinated and therefore standards where not set. This is still valid in other segments of the manufacturing and software world: consider for example the IGES and STEP protocols… if you read this post on Evan’s Yares blog you’re going to understand that much of the problems we have today are caused by companies that created their own implementation of the standards that were set. The same happens with machine tools NC code.
In my last post, in the very first comment I’ve got the feedback of a CAM developer saying that he does not agree with the lack of standardization for the ISO code and that the machine tool vendors should come up with a universal and common language for their equipment.
Well, as I replied in the comment, why such thing will never exist is because CNC machine tools are incredible pieces where technology is applied to every single component. I doubt there’s a single off-the-shelf CNC machine tool these days that does not have its structure analyzed by FEA software, and in a effort to create differential, the machine tool vendors have to create unique solutions for the market needs. And that is also true in regards the CNC controls and the cycles and G code commands they develop. I deal with these things in an often basis… unique machine tools doing things (In the programming end) in a totally different way than others…
Unless the STEP-NC consortium figure out the whole deal, each machine tool will have its own languages… even so, I wonder about the resistance for the adoption at the machine builder end… will they be able to deliver differential solutions for their customers using STEP-NC? Time will say…
A post-processor is a builder – Maybe a bit more than that… but not too much.
A post-processor is essentially a builder, an assembler. It takes parts of your neutral data (APT, NCL, NCI, whatever) parse them, extract information, store in variables and manipulate them… it’s a data miner… post-processors usually have tools to manipulate strings, mathematical functions (trigonometric, cross dot product, matrix manipulation and all usual math functions used in the engineering field). As a software, a post-processor enables the usage of logic to solve common problems in the CNC machine world. A simple example: Thanks to the power of MP language, Mastercam users that are suffering with a long-standing bug in the product (One that’s being overlooked since the X version) about tool offset numbers are fixing the bug in their PPs or at least issuing warnings to the programmer saying the tool offset number it’s not matching the expected output.
So, a post-processor is an important piece of the whole thing, but rarely a system can’t do something because of the PP that comes with it. When I see a CAM vendor “selling” the advantages of his system and he says his post-processor is much better than someone’s else, I simply laugh, because he’s being a fool. There’s absolutely nothing in the post-processor of his system that is so much better. Maybe NURBS, Arc-Fitting, Rotary Turn Around, blablabla… but these things are heavily dependent on what you want to do… NURBS in CNC for example is a dead effort IMHO… I’ve seen a guy once arguing to management that UG (NX) post-builder was much better than GPOST, which comes bundled with Pro/NC. I don’t know what UG Post-Builder can do that GPOST can’t. Post-processors don’t create toolpaths. They only format them.
The guy was a fanboi anyway.
Personally, I believe that a good post-processor is the one you don’t even notice. I always strive to work on our posts to make them to deliver edit-free code to our NC-Programmers. More than that, I add a ton of small checks to help them to avoid common traps, like for example the sense of the turning spindle when the tool is flipped 180 degrees in a MillTurn machine – It has to be reversed too. Or the spindle sense with a left hand tap… or an unfortunate combination of values in a drilling cycle…
I can check all these values in the context they are working and make decisions… I can fix the problem at the runtime or warn the user to go back to the CAM system and fix it there, avoiding future issues when other guy post that file… or when that file is re-used to build a similar product… endless possibilities… you can save time and money by investing time in making your post-processors the hidden heroes… the ones that will save you when you are not in your best days…
Why you should invest the right money in a decent post – And find the right partners
A good post-writer is someone with great logical skills, a good math background (A must for multiaxis posts) and patience to put up with the constant needs of changes. Some users don’t even know what to ask for the post-writer. That’s a common place for small medium shops, specially when they are acquiring their first machines or CAM systems. Some sharks in CAD/CAM business love to deal with these.
Because many companies do not invest time (Or can’t afford it) in having a technology dude to help with the decisions in regards the infra-structure resources for NC Programmers, they usually face the following problems (And many times don’t even notice)
- They pay the full price for a out-of-the-box PP that the vendor wrote a long time ago and is selling out as fresh fish.
- They do not know the CAM system / machine tool capabilities yet, and therefore trust blindly in the CAM vendor / PP supplier believing everything they need is there already. A costly mistake.
- As they don’t know what else they should cover, they don’t put it in a clear and documented form. Months or years later, when they get along with the CAM system and the machines, they need a dedicate functionality to handle a task, and the guy smiles while he says you need to order the whole thing again or pay an exorbitant price to get it.
Many of the issues above are caused by the fact that in order to save money, the companies put jack-of-all-trades to handle everything, since job quoting and part programming to machine setup. The guy needs time to develop a keen eye for the issues in this business, and due to this lack of time and experience, all the money and investments in CAM systems, machine tools and training are not used at their fullest. I recommend you to read this article from a SME member, Tim Markoski, showing the do’s and don’ts to run a CNC shop.
Another common mistake A LOT of companies make is to save money in posts that are supposed to drive very expensive machine tools. The post-processor investment must be allocated in the whole plan just like cutting tools, as mentioned in Markoski’s article. In the real life, incompetent planners forget to do this and later they try to hide from the company the fact they did not account for the post, the truth is that they ran out of budget.
They end up forcing the NC Programmer to use the PP that the CAM vendor told him it would run “smoothly”. – “We’ve done it before… in fact, we did it for… (Competitor’s name)”
We’ll discuss more commercial traps ahead… hang in there…
Last but not least, it’s important to find the right tool for you company, and the right partner. The problem to get everything from the CAM vendor or their resellers is that you are tied to the whole thing. Many resellers can write post-processors. A few resellers can write GOOD post-processors. Most of them claim they can handle it, but it’s NOT true. They don’t have that guy with logical skills and a great math background I mentioned above. They don’t want to hire someone with that profile, because it’s working as is. You’re putting money on their pockets, right?
If your company have, let’s say, more than 5 machine tools, and if at least 2 of them are multiaxis or multitasking machines, you should consider to buy a third-part tool to develop your post-processors. Why is that?
- Because you own your key technologies. You don’t have to put dead money in an encrypted post-processor from someone in Canada that will kick you butt when you complain about a 40% raise in the maintenance.
- Because you have freedom to experiment and to find what works best for you. I deal with people who write posts for me and I hate when I put a challenging task to the guy and he comes to me saying: “Why do you want to do that? – Everybody does it like this….” – Ahhhrgh… – You are the one who knows what works best for your company and its NC programmers. If you have to write a complex logic to get rid of a common programming mistake, then do it. Your deadlines, your customers, your NC-Programmers. Ok, you’re paying the NC-Programmer to program the machines for you, but that does NOT mean his life needs to be miserable. With the right CAM tools and good post-processors, the productivity of your programmers can increase dramatically. Some people get so sick of bad infra-structure to work that they simply quit the job once they find something “apparently” better.
- Because you can get the support from experts that writes posts-processors all day long. If you don’t plan to have someone writing posts at your place, even so a third-party tool is interesting because you can hire the vendor to write the posts for you. They know their product inside out and most of the times they will do everything in a shorter time with a great focus on speed, performance and clean and efficient code. They created the thing… they know how to make it fly…
- Because they don’t know your CAM system nor work for them, they do not ask you to take shortcuts or workaround something in the CAM system. They do it. Period.
Being a Pro/NC dude, I have a plenty of experience with GPOST. There’s virtually nothing you cannot do with it, and I posed many challenging requests to their post-developers. So if I had to recommend something based on my experience, I’d say GPOST. If you want a complete kick-ass post-processing/verification solution ($$$ too), ICAM can make it. A few functionalities that are very important in aerospace and frame machining are only found in ICAM post. There are other european solutions and service providers as well, mostly focusing high-end systems like NX and CATIA. Janus Engineering for example is well-known in the NX world as the best post-developers for NX.
All the systems above can read neutral files from many popular systems and get the job done. If you are tired of being rapped for post-processors and service, you should try a third-party tool. I’ve seen many people saying they have dozens of post-processors written for a specific system and that’s the reason they don’t move on… the good side of having existing post-processors is that you have a proven tool that can be used to validate the new effort in A LOT less time. Send the guy the neutral file and the output of the “old” post and he will make it deliver exactly what you need. I wouldn’t fear the change if I had such possibility. Much better than be to tied to a system that can’t deal with my future aspirations or that makes the day of my NC-Programmers frustrating.
(Note: With the exception of GPOST, I don’t have experience with any other tools listed above. Use them at your own risk.)
Don’t buy it by their appearance – Great tools are being developed by small / tiny companies
Some post-builders out there are being developed by a couple of guys… so they don’t have budget to go to every trade show around the world or to pollute CNCZone or CAM forums out there with publicity. That does not mean they don’t have excellent tools as well.
I’ve got the best service out there from small companies. I always say that the best technology is on the hands of small companies… until they grow up… then they go after that marketing dude and the money that were going to R&D is re-routed to finance advertising in CNC forums…
Be careful with complex terminology
I know some guys that can’t refrain themselves to mention the word…. “Singularity” in the first 5 minutes of a conversation about PPs. Singularity is a rare event that occurs in multiaxis machining… it’s not difficult to be avoided in machine tools with a few changes in the part orientation… the more degrees of freedom you have in a kinematic model, the more chances you have to face it… robots are really prone to have it, and for this reason, dedicated software is recommended to deal with them because the algorithms are enhanced to deal with singularity much more efficiently…
For day-to-day work, seldom you need the most advanced post-processor tool unless you are in very specific market niches such as turbomachinery, energy, aerospace, etc. So, be careful – If the guys start to use complex terminology, it’s likely his product is too much for you or he wants to create difficulties to sell solutions.
Third-party or not, what you need to know:
Put your needs in a list. Complex functionality like angle-heads, probing, multiaxis machining needs to be clearly documented and detailed. The post-developer may spend dozens of hours to figure out the math to get the job done. It’s important to give him a sample code in advance and tell him you want the perfect code. Invest time in learning you CAM system and how to create the information the PP developer needs to use in the neutral file using the minimal effort from the NC Programmer.
Some things to consider:
- Are you planning to work with angle heads? Will they do multiaxis motion as well? Will they work with drilling cycles, polar mode, etc…
- Probing – How far you want to go? Steady rests, special optional and/or accessories?
- Multiaxis – Axis rewind, tool repositioning, feedrate handling, etc
- Drilling – A very time-consuming task… how many cycles you want to cover? Gun-Drilling?
- CNC / Machine Custom cycles?
- Tool lists? Documentation? Generation of reports?
- Tool changes / Comment handling?
- Special tool changes for special tools?
- Tool breakage detection?
- Canned cycles for turning? Sub-program support?
To name a few… you need to be EXTREMELY detailed and write your specs and send them over to the PP supplier. Get a quote and put the requirements on the P.O. – If you can work on a contract with deadlines and penalties, even better. And make sure to create the environment and the opportunity at your end to have a guy working to meet the goals and to develop the functionality you bought. Many PP suppliers complains that their customers do not invest the necessary time to develop what they ordered, and later they blame the product or the CAM system.
- It’s important to clearly define what you want before buying it. PP suppliers also need to make a living, so they need to know in advance how much work they have to put in the development effort. I know many people who buy the post as is and then start to ask for complex functionalities without paying for them. Balance and discipline is the key here. Chinese are doing well because they have discipline. Be careful with Turn-Key posts. Be EXTREMELY careful with Turn-Key posts. Work with the vendor to have some margin for changes.
- Run away from encrypted posts. Or at least get a contract with the vendor that in event he runs out of the business you can have access to the source code of your PP. If he says no, find a new CAM or consider a third-party tool with an interface with your CAM of choice. Post-processors are key technology… I would NEVER leave my key technology on someone’s else hands without a minimal level of protection for my company.
- NC-Programmers use posts everyday. A PP developer struggles once. You HAVE to put the hard work on the developer’s end. If your NC Programmer has to follow a bunch of steps to get the necessary output, or to edit the code manually, you didn’t do you homework, mentioned above. It’s ALWAYS possible to make it easier for the end-user. ALWAYS. If your PP developer/supplier is lazy, kick his ass. He’ll always have a lot of work on the queue and he will always try to find the best way for him. You need to be there to say how YOU want it to be.
- It’s pointless to ask a PP developer to do such work when you don’t even know your CAM system. I worked for a company that used to blame the PP vendor for poor results when in fact the NC Programmers didn’t know even the basics about the structure of neutral files in the CAM system and were asking the developer to code for them when the necessary information was not in the neutral file or every day they asked the same thing but were doing it differently. There are many ways to achieve the same result on a CAM system. For certain tasks, it’s important to standardize the working approach in order to have consistent results in the neutral file. Post-processors don’t have mood, they are pieces of software and they demand discipline from their users. It’s likely your wife can kick your ass when she is on her days. A PP will never do that if you play by the rules. (Probably neither will your wife )
Be ethical – Don’t do to others what you don’t want others do to you
Well, a lot was said above about avoiding encrypted posts… but the truth is that the suppliers only encrypt their posts because people trade them. It’s very common to go to a public forum and see people asking for posts for free.
What is really disappointing is that even when nobody answers to that topic, behind the scenes someone sends a private message or an email with the post attached. When I started writing posts for Mastercam, I uploaded some of my posts at CNCZone.com – But they were mine, I didn’t share someone’s else IP. Even so, I don’t plan to do it ever again.
Every serious CNC shop should take the following measures to protect the intellectual property of the post-writer:
- Put all posts in a network drive with read-only permissions, denying also the copy of the PPs to other location.
- Add an addendum in the work contract clearly informing that the post-processors shall NOT leave the facility under no circumstances.
- From time to time, remind them about this.
- Take all measures you would take to protect your own IP.
A post-writer told me once that he recognize his code in several posts distributed freely at WEB. Is that fair? Would you like to see your ideas and developments available to everybody in a CNC forum?
Some people don’t have strong ethical values, but fortunately they are not representing the greatest. Piracy only helps to increase the price of the products to end-users, and in some cases, it’s almost impossible to the post-writter to do not encrypt at least portions of his work because that is his (and YOURS) competitive advantage, especially in PPs targeting multiaxis / multi-tasking machines.
If you want to protect your investment and make sure the post-processor supplier won’t reuse or sell what they developed exclusively to you, you can ask a lawyer to write a contract between your company and the post-processor supplier. It’s does not protect you 100%, but it’s better than nothing. This is a very complex subject, and each case needs to be evaluated carefully.
Many of the problems we’re facing today, in a global context, were caused by the lack of ethics. We will NOT change this situation without getting back to it.
The future of post-processing tools
I think the future of post-processors already started. We already have the best from them out there as purchasable options. When ICAM and IMS started to use 3D models and kinematic models to develop PPs, they walked the extra mile. The complexity in the products are demanding complex machines, and therefore, bigger neutral files to process. I think multi-core technology is already available during the post-processing in a few systems and the future now is to streamline the output supporting canned cycles, helical motions, loops and conditional logic, but that intelligence shall be created at the CAM level and the neutral files will contain information to enable the PP to generate a code that is closer to what a human would write. I think that’s the future, and some tools already have such intelligence. You just need to look around carefully, and avoid heavily marketed products. The future of CAD/CAM is on small companies…
There are many reliable and honest people in the CAD/CAM business, and a lot of sharks too. Do some investigation, visit product forums, use Twitter, search for blogs, talk to people, whatever. Never buy a CAM system without a profound investigation.
I’m confident that if your company follow some of the suggestions above, you will have a better experience and return of your investments, and more than that, you will be able to compete more efficiently in these hard times.
See you in our next post,