Subroutine using generic funac

Anonymous

Subroutine using generic funac

Anonymous
Not applicable

I am kinda of new to this. I have successfully posted a test of 4 holes on a plate for helical interpolation. I am having trouble learning how to turn this into a program with subroutines because the job I need this for will have 1843 holes in one plate and the code will be to big to put on the fanuc controller. Thanks in advance for any help!

0 Likes
Reply
344 Views
3 Replies
Replies (3)

seth.madore
Community Manager
Community Manager

Are the holes equally spaced around the part? 

As it sits, the Fanuc w/Sub Program Post Processor isn't going to give you everything you need. There will be some work on your end. For instance, it's not posting out code in an incremental fashion, but rather, absolute. So, it will return to that exact XY position each time. If we make the center of the hole as X0 Y0, we can then create a macro that increments the XY value of your work offset each time.

 

I did something very similar not too long ago with a job in my shop. I had a 14 hour cycle time of a part with very repetitive features. Upon recognizing that there was an even spacing among every feature, I programmed up one of the features, stuck it into a sub program and away I went


Seth Madore
Customer Advocacy Manager - Manufacturing
0 Likes

Anonymous
Not applicable

Yes the holes are equally spaced but are staggered from row to row like this

0 Likes

seth.madore
Community Manager
Community Manager

Couple of easy options:

1) Can your control hold two columns or rows of holes? After that, it's a matter of a macro to increment the offsets. Here's what I came up with for my program, I wasn't too inclined to be absent for long periods, thus the M0 between feature patterns:

M0
#601=0
#5241=#5221(STORES G54 IN G55)
N1
G65P4103(CALL PROFILE MILLING SUB PROGRAM)
M0
#601=[#601+1]
#5221=[#5221+1.080]
IF[#601LE8]GOTO1
M0(MILLING SHOULD BE DONE)
#5221=#5241(RESETS G54 BACK TO ORIGINAL VALUE)
M0(VERIFY THAT G54 AND G55 ARE EQUAL)
#601=0
N2
G65P4104(CALL DEBURRING SUB PROGRAM)
M0(BLOW OFF PART)
#601=[#601+1]
#5221=[#5221+1.080]
IF[#601LE9]GOTO2
M0(ONE SECTION DEBURRED?)
#5221=#5241(RESETS G54 BACK TO ORIGINAL VALUE)
M0(VERIFY THAT G54 AND G55 ARE EQUAL)
#601=0
G0G53Z0M19
G53X13.5
G53Y0
M30

Seth Madore
Customer Advocacy Manager - Manufacturing
0 Likes