OPA12
Plastic
- Joined
- Jun 5, 2017
- Location
- MONROE, NC
Trying to modify the attached macro in a Fanuc oi Control.
EXISTING - DRILL HOLES ON A RADIUS
X ABSOLUTE CENTER Y ABSOLUTE CENTER I RADIUS D ANGULAR DISTANCE BETWEEN HOLES
A ANGLE TO FIRST HOLE IN X H NUMBER OF HOLES
%
O9915( ARC - ORIGINAL )
(G65P9915X-Y-I-D-A-H)
#31=#4001
#33=#4003
#32=#5003
IF[#24EQ#0]GOTO10
GOTO20
N10#24=#5001
N20IF[#24EQ#0]GOTO30
GOTO40
N30#25=#5002
N40IF[#1EQ#0]GOTO50
GOTO60
N50#1=0
N60IF[[#11*#4*#7]EQ0]GOTO990
#12=FIX[#11]
IF[[#12-#11]NE0]GOTO990
IF[ABS[#7*#11]GT360]GOTO990
#100=1
WHILE[#100LE#11]DO1
#15=#1+[#100-1]*#7
#27=#4*COS[#15]+#24
#28=#4*SIN[#15]+#25
X#27Y#28
#100=#100+1
END1
G#31G#33F#9
GOTO999
N990#3000=81(DATA-LACK-0R-ERROR-I.D.H.)
N999M99
%
G81Z-2.0R.5F10K0
G65P9915X0Y0I16.0H4.D30.A15.0
G80G91G28Z0
DOES NOT ALLOW “D0” IF ONLY ONE HOLE REQUIRED, OR USING “G” CODE INSIDE SUB PROGRAM
***********************************
MODIFIED - TO ALLOW “G” CODES IN SUB AND ONE HOLE ON AN ARC.
X ABSOLUTE CENTER Y ABSOLUTE CENTER Z DRILL DEPTH R RAPID HEIGHT I RADIUS
D ANGULAR DISTANCE BETWEEN HOLES A ANGLE TO FIRST HOLE IN X H NUMBER OF HOLES
Q PECK # IF G83 K NO REPEAT F FEED RATE
%
O6008( ARC w/G SUB )
(G65P6008E-X-Y-Z-R-I-D-A-H-Q-K-F)
#31=#8
#33=#4003
#32=#5003
IF[#24EQ#0]GOTO10
GOTO20
N10#24=#5001
N20IF[#24EQ#0]GOTO30
GOTO40
N30#25=#5002
N40IF[#1EQ#0]GOTO45
GOTO50
N45#1=0
N50IF[[#11*#4*#7]EQ0]GOTO55
GOTO60
N55IF[#11GT1]GOTO990
N60#12=FIX[#11]
IF[[#12-#11]NE0]GOTO990
IF[ABS[#7*#11]GT360]GOTO990
#100=1
WHILE[#100LE#11]DO1
#15=#1+[#100-1]*#7
#27=#4*COS[#15]+#24
#28=#4*SIN[#15]+#25
X#27Y#28
#100=#100+1
G#31G#33Z#26R#18Q#17K#6F#9
END1
GOTO999
N990#3000=81(DATA-LACK-0R-ERROR-I.D.H.)
N999M99
%
Program:
G65P6008E81X0Y0Z-1.0R.5I8.4305D30.2A38.7H4.K0F10 ( * MOVES TO BUT DOES NOT DRILL FIRST HOLE * )
G65P6008E81X0Y0Z-1.0R.5I8.4305D30.2A-141.3H6.K0F10 ( * DRILLS ALL HOLES * )
IF[#900 GT 18] GOTO 100 (NO HOLE IF GREATER THAN 18” DIA)
G65P6008E81X0Y0Z-1.0R.5I8.4305D28.2A160.H2.K0F10 ( * DRILLS ALL HOLES * )
N100G80G0Z15
G0G91G28Z0
M0
THIS SUB WORKS EXCEPT IT MOVES TO THE FIRST LOCATION OF THE FIRST SUB CALL WITH A NEW TOOL BUT DOES
NOT DRILL HOLE.
EXISTING - DRILL HOLES ON A RADIUS
X ABSOLUTE CENTER Y ABSOLUTE CENTER I RADIUS D ANGULAR DISTANCE BETWEEN HOLES
A ANGLE TO FIRST HOLE IN X H NUMBER OF HOLES
%
O9915( ARC - ORIGINAL )
(G65P9915X-Y-I-D-A-H)
#31=#4001
#33=#4003
#32=#5003
IF[#24EQ#0]GOTO10
GOTO20
N10#24=#5001
N20IF[#24EQ#0]GOTO30
GOTO40
N30#25=#5002
N40IF[#1EQ#0]GOTO50
GOTO60
N50#1=0
N60IF[[#11*#4*#7]EQ0]GOTO990
#12=FIX[#11]
IF[[#12-#11]NE0]GOTO990
IF[ABS[#7*#11]GT360]GOTO990
#100=1
WHILE[#100LE#11]DO1
#15=#1+[#100-1]*#7
#27=#4*COS[#15]+#24
#28=#4*SIN[#15]+#25
X#27Y#28
#100=#100+1
END1
G#31G#33F#9
GOTO999
N990#3000=81(DATA-LACK-0R-ERROR-I.D.H.)
N999M99
%
G81Z-2.0R.5F10K0
G65P9915X0Y0I16.0H4.D30.A15.0
G80G91G28Z0
DOES NOT ALLOW “D0” IF ONLY ONE HOLE REQUIRED, OR USING “G” CODE INSIDE SUB PROGRAM
***********************************
MODIFIED - TO ALLOW “G” CODES IN SUB AND ONE HOLE ON AN ARC.
X ABSOLUTE CENTER Y ABSOLUTE CENTER Z DRILL DEPTH R RAPID HEIGHT I RADIUS
D ANGULAR DISTANCE BETWEEN HOLES A ANGLE TO FIRST HOLE IN X H NUMBER OF HOLES
Q PECK # IF G83 K NO REPEAT F FEED RATE
%
O6008( ARC w/G SUB )
(G65P6008E-X-Y-Z-R-I-D-A-H-Q-K-F)
#31=#8
#33=#4003
#32=#5003
IF[#24EQ#0]GOTO10
GOTO20
N10#24=#5001
N20IF[#24EQ#0]GOTO30
GOTO40
N30#25=#5002
N40IF[#1EQ#0]GOTO45
GOTO50
N45#1=0
N50IF[[#11*#4*#7]EQ0]GOTO55
GOTO60
N55IF[#11GT1]GOTO990
N60#12=FIX[#11]
IF[[#12-#11]NE0]GOTO990
IF[ABS[#7*#11]GT360]GOTO990
#100=1
WHILE[#100LE#11]DO1
#15=#1+[#100-1]*#7
#27=#4*COS[#15]+#24
#28=#4*SIN[#15]+#25
X#27Y#28
#100=#100+1
G#31G#33Z#26R#18Q#17K#6F#9
END1
GOTO999
N990#3000=81(DATA-LACK-0R-ERROR-I.D.H.)
N999M99
%
Program:
G65P6008E81X0Y0Z-1.0R.5I8.4305D30.2A38.7H4.K0F10 ( * MOVES TO BUT DOES NOT DRILL FIRST HOLE * )
G65P6008E81X0Y0Z-1.0R.5I8.4305D30.2A-141.3H6.K0F10 ( * DRILLS ALL HOLES * )
IF[#900 GT 18] GOTO 100 (NO HOLE IF GREATER THAN 18” DIA)
G65P6008E81X0Y0Z-1.0R.5I8.4305D28.2A160.H2.K0F10 ( * DRILLS ALL HOLES * )
N100G80G0Z15
G0G91G28Z0
M0
THIS SUB WORKS EXCEPT IT MOVES TO THE FIRST LOCATION OF THE FIRST SUB CALL WITH A NEW TOOL BUT DOES
NOT DRILL HOLE.