What's new
What's new

Is it possible to block a certain work offset in a NGC machine?

FrodoLoggins

Plastic
Joined
Nov 10, 2019
So let's say I want to mill identical parts 2 at a time. Real easy, I just use my CAM program to output everything to apply to both G54 and G55. Cool. But let's say I load that program into memory and then decide that actually I only want to run the program for the first part, the G54 part. Is it possible to tell the control to disregard everything for G55?
 
Not that I know of, but it is one feature that would be very handy!

Perhaps the block deletes could be made to work, but it sure isn't as simple as - hey, ignore all but G54.

The way I typically write multi part programs where there is a good chance that only one needs to run instead of 4 or 8 is that I put all toolpaths into subroutines, and the main
body of the program only contain the tool changes and sub-calls.
So when I need to run only one ( or two ), I just edit the program by deleting the unwanted calls from the main, rename the program as -SINGLE and run it.
 
Just blocking the G55 won't help you - the machine would just run the 2nd part code against the 1st part WCS - which is most likely NOT what you want.
You want to do something like SeymourDumore describes.

Another route (assuming you get the post to put all the code for part 1 first, and not jump back and forth...) would be to put an IF test at the start of the second part.
Set a macro variable early in the program, edit this one line - later the IF test compute "uh, we're done" and does a GOTO to the end.
 
Not that I know of, but it is one feature that would be very handy!

Perhaps the block deletes could be made to work, but it sure isn't as simple as - hey, ignore all but G54.

The way I typically write multi part programs where there is a good chance that only one needs to run instead of 4 or 8 is that I put all toolpaths into subroutines, and the main
body of the program only contain the tool changes and sub-calls.
So when I need to run only one ( or two ), I just edit the program by deleting the unwanted calls from the main, rename the program as -SINGLE and run it.


Yes, I do the same I think this is the best way and its very easy to do.
 
Take all the work offsets out of the part program, put a block skip character in front of the M30, and put M99 on the following line. Call it as a sub from a main.

O1234 (MAIN)
G54
M98 P1235
G55
M98 P1235
M30

If you only want to run one, have block skip off. To run all, have block skip on.

You can do the same thing for multiple stations around a rotary, with a shared WCS; leave the work offsets in the program, and you can have multiple for feature shifts.

O1234 (MAIN)
G52 A0.
M98 P1235
G52 A90.
M98 P1235
G52 A180.
M98 P1235
G52 A270.
M98 P1235
M30
 








 
Back
Top