pro grammer

The dumbest thing I have ever seen in a mastercam post

Recommended Posts

 

27 minutes ago, hehuahome said:

Thank you, but the email address is not correct!

Please contact your authorized Mastercam dealer 

They will be happy to help with your request

 

JBM Engineering

JBM's website

 

  • Like 1

Share this post


Link to post
Share on other sites
56 minutes ago, hehuahome said:

Thank you, but the email address is not correct!

Unless their website is wrong, that is the correct address

[email protected]

and it is wrong on the webstite

[email protected]

Share this post


Link to post
Share on other sites
39 minutes ago, JParis said:

除非他们的网站错误,否则这是正确的地址

[email protected]

这在网站上是错误的

[email protected]

Email has been sent, no effect! Because the last company uses the genuine software, now leaves at home, studies needs the mp post document!

Share this post


Link to post
Share on other sites
22 minutes ago, hehuahome said:

Email has been sent, no effect! Because the last company uses the genuine software, now leaves at home, studies needs the mp post document!

If you're stating that you're not a licensed user, which it seems you are saying, you are not entitled to the document. Which is likely why no one will provide it to you.

Share this post


Link to post
Share on other sites
12 minutes ago, JParis said:

如果您声明自己不是许可用户,那么您似乎无权获得该文档。这很可能就是为什么没人会提供给您的原因。

I can't describe my mood now!

Thank you in the end

Share this post


Link to post
Share on other sites
40 minutes ago, hehuahome said:

I can't describe my mood now!

Thank you in the end

You are quite welcome!

Share this post


Link to post
Share on other sites

and he just admitted in the Post Forum not a legit user

  • Haha 1

Share this post


Link to post
Share on other sites

 

9 hours ago, JParis said:

Unless their website is wrong, that is the correct address

[email protected]

and it is wrong on the webstite

[email protected]

 

Just an update that [email protected] and [email protected] are both valid addresses and go to the same place, although [email protected] is the one that is handed out these days for contact information. If anyone has any problem reaching either of these emails, please let me know so that we can address this for you.

  • Like 3

Share this post


Link to post
Share on other sites
On 3/23/2020 at 7:40 AM, pro grammer said:

pe              #End of line
      e$

pfe             #Forced end of line
      *e$

pn              #Line numbering
      n$

pfn             #Forced line numbering
      *n$

 

 

Yeah. This takes the cake for both arrogance and stupidity.

Very interesting read. MP was created by someone with a background in "C". '*' is a pointer to a variable. '$' is a notion that a variable is a string. Everything here is according to standard. It's similar to complaint that we didn't use his iphone to launch Saturn-V rocket to the Moon!

Share this post


Link to post
Share on other sites
15 hours ago, Joe777 said:

Very interesting read. MP was created by someone with a background in "C". '*' is a pointer to a variable. '$' is a notion that a variable is a string. Everything here is according to standard. It's similar to complaint that we didn't use his iphone to launch Saturn-V rocket to the Moon!

Your analogy is absolutely correct.   Keep in mind that MP has been able to drink for almost 15 years now, so really, it was that or PASCAL, LISP, or FORTRAN as the common languages in use at the time.  You're even almost 10 years ahead of the release of Delphi!  

  • Like 2

Share this post


Link to post
Share on other sites
On 9/14/2020 at 7:04 PM, Joe777 said:

Very interesting read. MP was created by someone with a background in "C". '*' is a pointer to a variable. '$' is a notion that a variable is a string. Everything here is according to standard. It's similar to complaint that we didn't use his iphone to launch Saturn-V rocket to the Moon!

You're on the right track, but there are some significant differences.

The MP Language was written by John Summers, and he loosely based the language on Standard C.

However, the language was designed as a 'scripting language', so although there are similarities between Standard C and the MP Language, there are differences.

The asterisk character is used to 'Force variable output regardless of modality'. When MP was invented, there was simply an ordered list of 'predefined variables'. These variable names were reserved for use, and you would get a 'duplicate initialization' error, if you happened to create a variable name that was already a predefined variable. The situation was like this for many years (maybe 15?), from at least Version 6, through V9.2.

When Mastercam X was released, the MP Language went through a significant overhaul. In addition, the Code Expert Editor was released. Coinciding with the release of the editor, predefined variables were updated to include a dollar sign at the end of the variable. This is true for all predefined variables, regardless of if they are a String or a Numeric Variable. In addition, you will get an error if you try and include a $ with a User Defined Variable. So predefined variables all end in the dollar sign character, while user defined variables do not.

I think of MP as cross between Standard C and VBScript.

It is a homegrown programming language, built to take NCI Input, and convert it to NC Code Output. It opens the NCI file, and every pair of NCI Lines calls one, and only one, Entry Post Block. This is the 'entry point' into the instruction list. All the instructions in the Entry Post Block get read, line by line, from the start of the Post Block, to the end of the block. (Note that you can always call another Post Block from within the Entry block (like a Subroutine). These 'post block calls' can actually be nested up to 25 levels deep. Once the instructions in the 'called block' have been processed, MP returns back to where the call originated, and MP keeps processing the Post Lines, until it reaches the end of the entry block.

MP is a 'column dependent' language. The 'first column' holds special significance. Any variable, formula, or Post Block Name that starts in the 1st column, indicates that is the 'definition' of that thing. For a Post Block, all the Post Lines underneath must have at least one space character in front of the line (6 space characters is the standard 'indent' for all Post Lines). This indicates that the line is a continuation of the active block. The next '1st column character' that is detected, is what actually 'ends' the block above.

  • Thanks 1

Share this post


Link to post
Share on other sites
2 minutes ago, Colin Gilchrist said:

You're on the right track, but there are some significant differences.

The MP Language was written by John Summers, and he loosely based the language on Standard C.

However, the language was designed as a 'scripting language', so although there are similarities between Standard C and the MP Language, there are differences.

The asterisk character is used to 'Force variable output regardless of modality'. When MP was invented, there was simply an ordered list of 'predefined variables'. These variable names were reserved for use, and you would get a 'duplicate initialization' error, if you happened to create a variable name that was already a predefined variable. The situation was like this for many years (maybe 15?), from at least Version 6, through V9.2.

When Mastercam X was released, the MP Language went through a significant overhaul. In addition, the Code Expert Editor was released. Coinciding with the release of the editor, predefined variables were updated to include a dollar sign at the end of the variable. This is true for all predefined variables, regardless of if they are a String or a Numeric Variable. In addition, you will get an error if you try and include a $ with a User Defined Variable. So predefined variables all end in the dollar sign character, while user defined variables do not.

I think of MP as cross between Standard C and VBScript.

It is a homegrown programming language, built to take NCI Input, and convert it to NC Code Output. It opens the NCI file, and every pair of NCI Lines calls one, and only one, Entry Post Block. This is the 'entry point' into the instruction list. All the instructions in the Entry Post Block get read, line by line, from the start of the Post Block, to the end of the block. (Note that you can always call another Post Block from within the Entry block (like a Subroutine). These 'post block calls' can actually be nested up to 25 levels deep. Once the instructions in the 'called block' have been processed, MP returns back to where the call originated, and MP keeps processing the Post Lines, until it reaches the end of the entry block.

MP is a 'column dependent' language. The 'first column' holds special significance. Any variable, formula, or Post Block Name that starts in the 1st column, indicates that is the 'definition' of that thing. For a Post Block, all the Post Lines underneath must have at least one space character in front of the line (6 space characters is the standard 'indent' for all Post Lines). This indicates that the line is a continuation of the active block. The next '1st column character' that is detected, is what actually 'ends' the block above.

You are not mentioning all the work MP.DLL is doing in the background with the MP language. This is where most external 3Rd party people struggle getting good code from Mastercam. They only use the NCI and the NCI is not the whole equation for getting NC code. It is the PST working with MP.dll that creates all the magic; one without the other will not give the correct output. Years ago we could tweak the MP.DLL, but that ability got removed about X3 or X4 if memory serves me correctly. 

Share this post


Link to post
Share on other sites

My sales guy always asks why we don't just hold the part/ print up to the monitor and hit CTRL-P and have the machine make it.  Now THAT would be progress...

  • Haha 2

Share this post


Link to post
Share on other sites
4 hours ago, Bob W. said:

My sales guy always asks why we don't just hold the part/ print up to the monitor and hit CTRL-P and have the machine make it.  Now THAT would be progress...

A few years ago my 'ol chap (Carpenter) walked into the shop and asked why I looked stressed and "what exactly are you doing"?

So I started to quickly walk him through the process of grammin a part and he was tutting and sighing and getting more impatient - I was about 2 minutes into it.

He interrupted and said "well surely in this day and age, all you have to do is photograph the drawing and the machine should be able to do it for you huh"?

My reply was "Dad, go put the kettle on" :rolleyes:

 

Colin - nice explanation, and kudos to the Summers. It truly shows how cutting edge (no pun intended) they were back then. :cheers:

  • Like 2

Share this post


Link to post
Share on other sites
5 hours ago, crazy^millman said:

You are not mentioning all the work MP.DLL is doing in the background with the MP language. This is where most external 3Rd party people struggle getting good code from Mastercam. They only use the NCI and the NCI is not the whole equation for getting NC code. It is the PST working with MP.dll that creates all the magic; one without the other will not give the correct output. Years ago we could tweak the MP.DLL, but that ability got removed about X3 or X4 if memory serves me correctly. 

Well yes, MP.DLL is the Post Engine, that does all the heavy lifting. I did not bother going into data structures, buffers, stacks, enumerors, or the Parameter Memory Map. Mainly because those are more recent additions to the language. Some mechanisms, such as the 'Comment Buffer' mechanism (internal buffering of Comment Strings) have been available in MP for a very long time. However, a great deal of enhancements have been made to both MP.DLL and the language functions over time. Jeff Hill is the wizard who has been making many of the functional enhancements that have really brought MP into the modern era.

One of the greatest recent developments has been Post Block variable passing. You can now define a Post Block to accept 'arguments', and you can pass the arguements "by reference", or "by value".

Sounds fancy. But what does that jargon actually mean? It means you can pass data to a Post Block routine, and have the routine return a result. By Reference means the function updates the original variable that was passed into the Post Block. By Value means the Post Block makes a copy of the value to a separate internal variable.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

Join us!

eMastercam - your online source for all things Mastercam.

Together, we are the strongest Mastercam community on the web with over 56,000 members, and our online store offers a wide selection of training materials for all applications and skill levels.

Follow us