Jump to content

Welcome to eMastercam

Register now to participate in the forums, access the download area, buy Mastercam training materials, post processors and more. This message will be removed once you have signed in.

Use your display name or email address to sign in:

Heidenhain ISO subprogramming


Oppiz
 Share

Recommended Posts

  • 2 weeks later...

Did you ever find anything to help you out here?

 

For your Sub Program, do you want the sub to live "inside" your active file, or would you like it to be an external file, somewhere outside of the active file you are running, and the sub gets called up?

Preferably "inside" but I'd like to learn both. If you have any samples, that would be very helpful.

Link to comment
Share on other sites

Preferably "inside" but I'd like to learn both. If you have any samples, that would be very helpful.

 

 

Oppiz, below is some stuff I pulled together...It's a bit lengthy, sorry. hoep it helps...

 

 

 

 

N1 G53 P01 1

 

 

Line N1 above calls up DATUM #1 from the Datum Table

 

On a FANUC based Control, you would Call up G53, G54, G55, etc…

 

On the Heidenhain, using G53, you call up a DATUM # “xxx” by using “G53 P01”

 

It was confusing for me at first, because on a FANUC, G53 “is” the offset…

On the Heidenhain in ISO, G53 is a “call” code, to call up Datum #xxx…

 

Once that is active, you go into the Datum Table to adjust your X, Y and Z locations.

 

 

 

 

 

 

N4 G54 G90 X+1 Y+2 Z+3

 

 

Line N4 above calls up an ABSOLUTE (G90) Datum SHIFT (G54 is the "call code") (Not a DATUM # from the Datum Table)…

 

I have not used this in ABSOLUTE, so I don’t really know right now what it would do…

 

I have used it as shown down below a few lines, in INCRIMENTAL mode (G91)

 

What I believe it would do above is set Program Zero to 1” in X axis, 2” in Y axis and 3” in Z axis away from Machine Zero

 

 

 

 

 

 

N7 G54 G91 X+4 Y+5 Z+6

 

 

Line N7 above calls up an INCRIMENTAL (G91) Datum SHIFT (G54) (Not a DATUM #xxx)…

 

The INCRIMENTAL (G91) shift is from where ever in X Y Z your current DATUM # is set to…

 

If you have Called up “Datum 0” (NO Datum used from Datum Table, and NO Datum Shift) the incremental shifts will be from where your “readout” is currently zero’d

 

This is where it used to really get me screwed up.

 

You can “zero out” the ACTL Readout, pretty much just like you would on a Manual Mill with a digital readout.

 

The thing is that the Control on my machine will not tell you that there is NO ACTIVE DATUM…

 

I default to executing “G53 P01 0” so that I know there are no active Datums and no active Datum shifts…

 

 

 

 

 

 

N10 G98 L1 <------Internal Sub Program “Start”

 

N12 G01 Z+6 F2000 <------|

N10 G01 X+1.5 |--Body of your code

N10 G01 X-1.5 <------|

 

N10 G98 L0 <------Internal Sub Program “End”

 

 

 

Above is an example of defining a Sub Program within a program.

 

 

 

G98 is the code that defines the beginning of the sub

L1 is the “name” of the sub

On my machine you have to name it in numbers, from “1” to “999”

 

The body if the code is just the movements you want to define as a sub program

 

G98 L0 defines the “end” of the sub program

 

 

 

Anything between the G98’s is the sub…

 

 

 

 

 

 

Line 18 below is the Internal sub call (same sub as above), after having defined the sub program, along with the Code to “repeat” the sub…

 

 

N10 G98 L1 <------Internal Sub Program “Start”

 

N12 G01 Z+6 F2000 <------|

N10 G01 X+1.5 |--Body of your code

N10 G01 X-1.5 <------|

 

N10 G98 L0 <------Internal Sub Program “End”

 

 

 

N17 G53 P01 1

N18 L1.2

 

So, what line N18 is saying is “call up program L1, and repeat it 2 times", at the same Datum (Datum #1 is called up at line N17)

 

 

 

To run this Internal sub at multiple different Datums / Locations, I believe it would look like this:

 

 

N1 G53 P01 1

N18 L1.1

;

N1 G53 P01 2

N18 L1.1

;

N1 G53 P01 3

N18 L1.1

;

;

;

etc…

 

 

So, I said above “I believe” it would look like that because on the machine I run, I have only 1 position I put parts into (3R Chuck), and that is always Datum #1 for me…

 

 

 

 

 

 

N21 % SUB.I

 

 

Line N21 above calls an “external” program as a sub

 

In ISO, the % sign defines an external program call…

 

If you want to run the external sub at multiple Datums, you will NOT want to have a Datum call in the external file, but you want it right before you sub call…

 

I believe that would look like this:

 

 

N1 G53 P01 1

N2 % SUB.I

 

N1 G53 P01 2

N2 % SUB.I

 

N1 G53 P01 3

N2 % SUB.I

 

 

I get wordy, so sorry, but I hope this helps. Any Heidenhain Guru's are welcome to correct me...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • 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

×
×
  • Create New...