G71 and G70 in Pathpilot

Hello all,

New to Pathpilot controls, and very used to programming parts by hand for a Haas using G71 and G70 canned cycles. On my new to me 15L, programs that worked on Haas lathes no longer work and I get error messages for the canned cycles.

Any insights or work arounds would be greatly appreciated.

1 Like

We have a different adaptation of g71 than Haas. Check out this post

1 Like

I didn’t know what to think about that so I asked ChatGPT and it gave convincing answers. I can’t say if it’s right or not. But interesting, I hope it helps you!

Davie,

I did look at this post before I posted my question. I made some of those changes, but I was still getting an error message that the sub program number was not found when calling the PQ block for the profile I wanted to cut. Do I need to write the profile to be cut just like a subprogram call on the mill like a G97? Thanks!

I appreciate it and will definitely give it a go!

This is the program I currently have:

T101;
M04 G97 S500;
G54 G20;
G00 X0.86 Z0.1
G96 S200 M04
G71 U0.005 R0.005;
G71 P1 Q2 U0.005 W0.003 F0.01
N1 G42 G00 X0.0;
G01 Z0.0;
G01 X0.59 Z0.0;
G01 X0.59 Z-0.235;
G01 X0.795 Z-0.235
G01 X0.795 Z-0.685
N2 G01 X0.9 G40;
G00 G53 X0.0;
G00 Z2.0;

Would I need it to be:

T101;

M03 G97 S500;

G54 G20;

G00 X0.86 Z0.1;

G96 S200 M03;

G71 P1103 D0.005 R0.005 I0.003 K0.003 E1;

G00 G53 X0.0;

G00 Z2.0;

O1103;

G00 X0.0;
G01 Z0.0;
G01 X0.59 Z0.0;
G01 X0.59 Z-0.235;
G01 X0.795 Z-0.235
G01 X0.795 Z-0.685
G01 X0.9 G40;

M99;

Yes. You have to write the profile coordinates into a sub routine except throw it into parentheses.

Here is a top I make frequently that was created in conversational.

(----- Start of G-code -----)
()

G7 (Dia. Mode)
G18 (XZ Plane)
G90 (Absolute Distance Mode)
G40 (Turn Cutter Compensation Off)
G91.1 (Arc Incremental IJK)
G20 (units in inches)
G54 (Work Offset)

G30 (Park Tool)
T0404
G96 S 270 D 2500
G95 F 0.0080 (Units per Revolution Mode)

M8 (Flood Coolant ON)
M3 (Spindle ON, Forward)
G0 X1.1000 ( go to safe X, then start Z before issuing G71)
G0 Z0.0500
G71 P1292 D0.0200 F0.0080 J0.0040 L4 I0.0020 K0.0020 R0.0200 E1

(Finish Pass)
G96 S 270 D 2500
G95 F 0.0032 (Units per Revolution Mode)
G0 X1.1000 ( go to safe X)
G0 Z0.0500 ( go to start Z)
G42 (Cutter compensation - on)
G1 X0.0000 Z0.0500
G1 X0.0000 Z0.0000
G1 X0.0000 Z-0.0300
G1 X0.1200 Z-0.0300
G3 X0.2490 Z-0.1000 I-0.0055 K-0.0698
G1 X0.2490 Z-0.6800
G2 X0.5000 Z-0.8000 I0.1342 K0.0147
G1 X0.9000 Z-0.8000
G3 X1.0000 Z-0.9000 I-0.1929 K-0.1590
G40 (cutter compensation - off)
G1 X1.1000 ( go to safe X)
G0 Z0.0500 ( go to safe Z)

(“o-code subroutine for profile”)
(Note: all profile subroutine code is in parenthesis)
(o1292 SUB)
( G1 X0.0000 Z0.0500)
( G1 X0.0000 Z0.0000)
( G1 X0.0000 Z-0.0300)
( G1 X0.1200 Z-0.0300)
( G3 X0.2490 Z-0.1000 I-0.0055 K-0.0698)
( G1 X0.2490 Z-0.6800)
( G2 X0.5000 Z-0.8000 I0.1342 K0.0147)
( G1 X0.9000 Z-0.8000)
( G3 X1.0000 Z-0.9000 I-0.1929 K-0.1590)
(o1292 ENDSUB)

M9 (All Coolant Off)
M5 (Spindle OFF)

G30 (Park Tool)
()
(----- End of Profiling -----)

1 Like

That worked perfectly! I really appreciate the help.

Davie, I was wondering if you could help me with G76, I am having similar issues going from fanuac to pathpilot. I believe I have a good understanding of everything except for the I value and what it means. I really appreciate the help!

I haven’t gone down the rabbit hole in g76, yet, but here is a threading sample from conversational.

(----- Start of G-code -----)
()

G7 (Dia. Mode)
G18 (XZ Plane)
G90 (Absolute Distance Mode)
G40 (Turn Cutter Compensation Off)
G20 (units in inches)
G54 (Work Offset)

G30 (Park Tool)
T0303

G97 (RPM Mode On, CSS Off)
S 500

M8 (Flood Coolant ON)
M3 (Spindle ON, Forward)
G0 X0.5600
G0 Z0.1000
G76 P0.0556 Z-0.5600 I-0.0500 J0.0188 K0.0840 R2 Q30 D0.0214

G0 X0.5600 Z0.1000

M9 (All Coolant Off)
M5 (Spindle OFF)

G30 (Park Tool)
()
(----- End of Thread -----)

I completely understand. So far I have figured out everything but what the I value does. I need to do some more playing around to figure that out.

Tyler it might help to play around in conversational to sort that out. Craft a program and change various values to check the resulting output created.

Good luck out there