But what is a Post Processor? And, if you got through the Great Wall of Text, that hopefully helps explain a few things Colin, I appreciate your patients. It produces anxiety when you can't trust your NC Program to run the machine without error.
In addition, the right code, put in the wrong place, can easily crash your half-million dollar machine, and could possibly damage your spindle, to the tune of $20-60K for a replacement. But some suggestions for addressing the issue are: Above all, don't wait until a machine is down, or there is a problem on the shop floor to consider the issue of Post Processors, and how they are a critical link in your process chain.
By using an "implied post block", surrounded by Square Brackets, we can execute multiple "actions" if the results of that statement are true. Based on the value of that variable, we are controlling the output of Absolute or Incremental coordinates for Motion as well. Modality is a the heart of how the post functions, and can be used to control the "modal" output of String values as well. This is a call to a String Select Function. It is very nice though. It's value is manipulated by the programmer in the Operation inside Mastercam. the MCE editor has "auto-complete" functionality. This would typically happen at the Tool Change event, which starts every Operation. The post can even call another "jump" from there, and go do more processing. Along with pre-defined post blocks, MP has pre-defined string variables and pre-defined numeric variables as well. Well, maybe I shouldn't use absolutes like that, but let's just say that I've never met anyone that wanted too.
The 'absinc$' variable is used as the Selector Variable in a String Select Function for outputting either Absolute (G90) or Incremental (G91) codes. The String Select Table and Function Definition look like this: When 'sgabsinc' is encountered as a Parameter on a Post Line, it calls this function. If it is possible would like to call you. I am a processionel carpenter for the past 40 years, I run a wood trading company in the amazon for 10 years and I have processed hundreds of cubic of wood. Somebody has this machine? In our case, this particular String List has only 2 strings. It creates a "current" block, and a "previous" block. (Not to mention the wasted time waiting for the necessary repairs. This allows you to "force" the ABS/INC mode inside the Implied post block, so you are guaranteed to get Incremental output, but not effect the ABS/INC mode outside of this block. In Mastercam, click the Machine Type drop-down in the Machine tab, and then choose Manage List. ), and Implied Post Blocks. They will provide you with a Post Processor Request Form, which you can then fill out with your machine information.
While this can be expensive, it can also mean some seriously increased productivity, and reliability. (in this case the Asterisk (*) variable modifier "forces" the output) This is the Reference Return String Select, and based on the value of mi3$, it will output either "G28" or "G30". (A Lathe or Mill-Turn post might have "m" or "l" as the starting block characters to indicate "mill" or "lathe" processing.). I have sometimes fixed one problem only to break something somewhere else. I am looking for a source to help me learn the basics of this language. gundrilling, slow entry, Probing (custom or Renishaw Productivity+).
This is a Post Block Call, and we "jump" to the 'pfbld' post block. These "postblocks" or "subroutines" exist in one of two places: inside your PST file script itself, or inside MP DLL. Is the MP language based on something else with more information such as C+ or Java, etc., or even CNC macro B? If I had some perspective I would get much more out of my reading. Send me an email with your company information and Hasp Number, and I'll be happy to work with you, once I can confirm that you are a licensed customer of CNC Software. MP has a special mechanism called the String Select Function that works with a String Select Table that lets you create a list of string values. The 3rd Parameter is *sgabsinc. It, and all the lines that follow until the end of the block, are typically indented 2 or more spaces to give a structure to the code. Between looking for examples in existing posts and reading on this site I was able to get to the point were I can handle most of the edits I need.
I created my classes specifically to cover all these things. The third line is: pfbld, n$, sgabsinc, *sg28ref, "Z0. Please correct the marked field(s) below. ", e$. Need help to finish my G code processor.
The last Parameter is e$ and this is the end of every line of NC output code line. This is a Post Line with multiple "Output Parameters". They do this to make it clear to the developer that it is a post line, and not a post block. Postability is a bespoke software development firm focused on the development of NC post processors for Mastercam CAD/CAM Systems, which are used in the programming of computer-controlled machine tools. I still have a long way to go to do some of the stuff guys on here talk about. I just got a OMIOCNC router model X8-2200EPL. check out the. That means if you type in the name of a pre-defined variable, and you spell it correctly, it will turn Blue automatically (in the case of a numeric variable), Purple in the case of a String, and Red in the case of a pre-defined Post Block. That's it. This spacing isn't required, but greatly recommended as it helps with readability of the code when making edits. Step 2:
Strings output normally. It does help a great deal. So MP jumps to the 'pfbld' post block, and evaluates the post lines and Parameters. For post processors not already designed, Mastercam post processor partners In-House Solutions, Postability, ICAM, and CAMplete Solutions offer advanced and custom post processing support. Step 4: Must be someone out there that knows about post processor. These parameters are separated by commas. Even if you write two lines of output parameters, the line will continue as a single line of NC code until you encounter a e$. I'll have to give that a whirl. It's kind of there own language where they have some of there own functions.
Good luck in your search. You have to have an "entry" to kick of the subroutine script, and that is based on the processing order of the NCI data. This is what tells MP that it is a "post line" and not a new definition. The String Select functions are either forced, or are dependent on Modality. For example, what is this excerpt from a Fanuc Mill 3x doing here. The Post Processor is the fundamental link between the work you do inside your CAM system, and the machine that is removing the metal. It worked a treat and I've had no further tapping problems, except I imagine someday I'll need to put imperial threads in something and it will blow up! This isn't a one year cost either.
There is a Target Variable, which is a String, that gets its value changed constantly, based on the modality of the Selector Variable. If something starts in the first column (a string, numeric, function, postblock), it is the "definition" of that "thing". Step 1: (depending on your Mastercam and MCE version, you may get "auto-complete" as well). A Post Processor is a software script that is used to convert the generic CAM program into NC code that is formatted with the proper Syntax for your machine.
Without you I was not even able to cut a 2D square on my machine.
All User Defined Post Blocks must be called from somewhere inside a pre-defined Post Block. Most CAM Systems on the market today are quite complex, and the script that is used to generate your NC code can be even more daunting. This is a Literal String, which means the output is just forces to the NC output line. If you use the Mastercam Code Expert editor (MCE), you get "auto-highlighting" of the pre-defined variables and blocks. I've met so many different CNC Programmers over the years. Download the files.
Post processors take into account each individual machines kinematics how the tool or workpiece moves along the linear and rotary axes. Now here is my meaning: the company I bought the machine from DO NOT provide the post. 3D printing is one step in an o twitter.com/i/web/status/1, 3434 RT 22 West, Suite 130 Branchburg, NJ 08876, Mazak Technology Center700 Old County Circle Windsor Locks, CT 06096, HFO - Allendale Machinery 1545 Ocean AveUnit 12Bohemia, NY 11716, Mount Joy Business Center 955 W Main Street, Suite 12 Mount Joy, PA. There are only two data types: Strings and Numeric Variables (double values). Consider a 3rd-Party Post Solution. I showed those blocks up above. I think you will be very happy with what he provides. Banging my head against the wall dealing with hand edits and the Cam system not matching the program on the board.
When you make a hand-edit to a NC Program, you have broken the direct link between the CAM Program that produced the motion, and the NC code that is producing your part. (Technically, that isn't true now, as MP has been enhanced recently, but that would just complicate this overview, so ignore this for now.). Some distributors might charge for it, but now it is electronic instead of printed I am not sure if they still are or not.
If you run 5 days per week, that is $6,400 per week that could potentially be lost, waiting to get the spindle repaired.
This documentation seems to me to be written for advanced users. Did this fro Esprit and SmartCAM.
Every single Tool Path inside Mastercam contains a set of Miscellaneous Integers and Real Numbers (10 integers, 10 decimal numbers). I am going from a STL to a G code using MeshCAM but on this programme the rotary axe is X and my CNC is Y so need to change them. I'm tempted to duplicate the entire cutting cycle part of the post processor in case T100 is called instead of any other tool, however I can't help but think there's a better way. Let's assume that you are a CNC Programmer, and you create an average of 20 programs per week. The lines are variables expressions. This is known as "calling a post block". This means that every numeric variable holds the current and the previous value of the variable. Thanks. Based on the NCI G-code, the post will call an "Entry" post block. Now, most 5 Axis Programmers that I know probably have a burdened rate that is easily twice that amount, factoring in their higher hourly or salaried rate, plus the benefits and taxes.
I've taught many Post Classes in the past, but haven't done one for a while. I've always used other editors.
I now keep a backup and a note with each change I make in case I have a problem later on. It can be very frustrating at first. In addition to creating the NC Code, you can simulate and verify the code "virtually" inside their software package. What I am doing is reverse the X an Y then Reversing the Y- To Y and Y to Y- this portion is done but dont know how or what to do with the I and J. I am starting to learn and need help please. New posts will be added to the folder, but updated posts will overwrite the old versions. This is an ongoing expense, day after day, year after year. There is a PDF reference guide available from your local Mastercam dealer. This is a special pre-defined variable. The first line (NCI Gcode) tells MP what the data on the next line represents. Postability's Unified Post Kernel represents a step forward in Mastercam post development. The code is exported to the machine, and the manufacturing process begins. If the switch is off, MP ignores the parameter and moves on to the next parameter on the line. The first Parameter on the line is (pfbld). The other thing you might notice about these blocks is that they are "User Defined". This is essentially "by definition", since MP needs an Entry Post Block to start any kind of NC output processing. Fortunately, there are many options when it comes to post processors.
A post processor (referred to as a "post") converts generic CAM system output to machine-specific NC code that accounts for machine kinematics, control syntax, advanced control functionality, programmer style, shop standards, and operator preferences. To view or add a comment, sign in. Technically the comment isn't necessary, but I think it helps. Update Machines List. ", e$ pfbld, n$, sg92, *xh$, *yh$, *zh$, e$ absinc$ = sav_absinc ], pfbld = force block delete? eMastercam - your online source for all things Mastercam. The end result of a "jump" is a "return". If the switch is turned on, you get a N Block. Tips For Manufacturing Training CD's, DVD's for Mastercam, SolidWorks, Inventor, G-Code Training & More. Make sure you have a backup of your post and thoroughly test any changes you make. The first "pre-read" loop is used to capture things like Tool Data, to build a Tool List. The standard indenting inside the Mastercam Generic Posts is 6 spaces before the start of every line. And that you spend an average of 15 minutes making hand-edits to those programs. This means the "current" value and the "previous" value now match. Let's examine it: The first line starts with some Boolean Logic that tests the value of the Numeric Variable mi1$. Why or how does this work. Hey, I know a guy who is not only a wizard but he teaches other people how to be wizards. The cost of a typical 5X Post, that has been properly modified to support the advanced features and functions of this machine might cost in the range of $3,000 to $7,000, depending on the level of customization required. All of a sudden, you have introduced the necessity of "tribal knowledge" needed to make NC code. This is a recipe for disaster, and can be avoided by having a properly configured Post Processor in the first place. Develop a relationship with your CAD/CAM Reseller, or 3rd-Party Post Developer, and have them quote the necessary post development for new or existing equipment. Because the edit they made worked (in this case), they go on about their day, not realizing that they have broken some of the code that may be needed for a different job later on. I happen to know a guy (me), who is Post Processor Wizard, and could get your Post setup for 100% Post-and-Run NC Code, with zero hand-edits I want to say that I have come here only after doing much homework, watching every video on the subject. There aren't many sources for MP Post courses these days. Without having a properly configured post processor, your company is playing with fire. It also calls an "entry" post block, based on the value of the NCI Gcode. I've been using Mastercam to program CNC Machines since 1997. This is as simple as adding a line-item to the quotation, but be sure the language is specific on what you expect for delivery.
The thing that identifies the start of the block is that the 'p', 'l', or 'm' character starts in the first column of text in the editor. This course is online, on Tuesday and Thursday nights, from 7:30-9:30 PM, Eastern Time. I cover all of these details in my Eapprentice classes, but I can provide a brief summary here that will hopefully help you get "big picture" understanding of how the MP Language works. Save the files by machine type. How did you learn this work? Without a e$, the line does not break in the NC code file. Looked like a good machine to start with. The post processor can adjust things like feeds and speeds, transitions between toolpaths, and tool length compensation. You do not need a space between commas, but you should put them in for readability.
Sorry I can't help you out with that one, as I write Mastercam and NX Post, and have no experience writing Fusion 360 Posts. (The variable "one" is defined as a constant value of '1' at the top of the post). Done quite a bit of it self taught but know there's much more to learn and am very interested. All is done but 2 letters I and J. I can't tell you the number of shops I've been in where the Post Processor is basically an afterthought. Best regards, This motion data dictates how the post processor should use the original CAM code.
The next Tool Change is either a NCI Gcode 1000 (tool is the same tool as last op, otherwise known as a "Null Tool Change"), or the value is NCI Gcode 1002, which represents an "Actual" tool change, and we call a different block. ", but it is important to state because it is at the heart of how MP.DLL processes the data. ", "Y0. These values are stored in variables by MP, and allow you to use them with Boolean Logic to make decisions inside the PST file. Your link has been automatically embedded. Lasers,Engraving,woodworking,MetalWorking,Industrial Equipment, Manufacturing technolgies, still learning how posts/preditor work together, http://www.mmattera.com/html/mastercam_stuff.html. So starting the post block "psof$" in the first column identifies it as the beginning of a block of code. Many modern computer languages have many different data types (data structures) which determine the type of data they hold, and what operations you can perform on them. Step 2: lowcountrycamo, ), If your shop rate was $100 per hour (usually more for high-end equipment, but let's use that number for our example), and you run 2 shifts a day, that's 16 hours of billable time per day. It scans through the PST lines and it creates Variable Definitions (locations in memory with an "address" (where is it) and default value (what is stored). (X, Y, Z, I, J, K, and so on).
Meaning '0' calls the first item in the list, '1' calls the 2nd, '2' the third, and so forth. Understanding how to make the post processor output the proper code for your machine is a critical part of the program creation process. Awesome write up Colin. The 3rd line is: absinc$ = one. It needs a comment (TOOL_UNCLAMP_NOW) and an M0 directly after a tool change to T100, and then after the cuts and a G28 G91 Z0 G90, it needs an M5 and then the same comment and M0. MP is "old school" in that it only holds String Data or Numeric Data. So, to get back to your sample, we are testing the value of mi1$, and based on if that test is "True", we are executing each line of an Implied Post Block: "if mi1$ <= one, #G92 Local Work coordinate system", This line of code tests the value of 'mi1$' to see if it is "less than, or equal to" the value of the variable "one". I can't endorse this guy enough! I understand some of the individual components but how do they work together? This is not only inefficient, it is dangerous. It also takes the burden off your existing CNC Programmers for making them responsible for Post Development.
We have a new Basic Post Processing course coming in June. I actually work with Fusion 360 and must use one of the free post they provide and edit it by hand over and over, many things are still not working well.
Mastercam already has a library of prewritten post processors for machine series like the Mazak Mark IV, DMG Mori NT, and the Doosan Puma MX. Step 1: Sometime I don't even find the new problem until I use a tool path I don't normally use months later. Register now to participate in the forums, accessthe download area, buy Mastercam training materials, post processors and more. Once we evaluate all the Parameters and post block calls, we return to the same point from where the calling began, and process the next Parameter. If the same variable is encountered on a different post line, MP will check the values and if they are identical, the variable will be "passed over" and not output.
My post editing results in a lot of trial and error. What happens when the original programmer leaves your company, is out sick, or (God-forbid) gets into a car accident?
Mastercam Code Expert has had the "color coding" for pre-defined variables for much longer, but that only really helped with spelling errors. While this can also be expensive, often the Solution is bundled with Simulation and Verification Software. If the value is different, it triggers MP to write the variable to the NC output, and it then "updates" the variable.