There have been a few attempts made to add these cycles. I did one
myself as a remap as a test of a type-2 algorithm.
https://github.com/LinuxCNC/linuxcnc/tree/andypugh/g71type2remap
Mine is in C++ and is integrated into linuxcnc.
The hope was that someone else who was working on this at the time
would combine the two to give a built-in version.
The reason that I feel it should be built-in is so that cutter
compensation is done in only one place. I am away from home at the
moment so can't easily check if this is the case with your version.
Yes it uses the cutter compensation already in linuxcnc. The other stuff
such as allowing the use of X[#<name>+3] and Oxxx REPEAT and so on is
also re-use of the code already in linuxcnc.
What I do is to inject an "Oxxx CALL" line into the interpreter and then
take whatever it feeds me back until the subroutine is finished.
The main reason, though, that I mention my experimental branch is that
I did document the cycles, with explanatory images. This might be
re-usable, if your version of the G71 cycles behaves the same way.
https://github.com/LinuxCNC/linuxcnc/blob/andypugh/g71type2remap/docs/src/gcode/g-code.txt#g71-lathe-roughing-cycle-turning
It is at least very similar. I see you're using straight sections
to follow the final shape at a distance, while my method uses round
and straight sections as required to maintain a fixed distance.
Unfortunately I use different letters for almost everything :-(
I've taken the Fanuc Series 0/00/0-Mate for Lathe operator's manual
section 13.2.1 to 13.2.2 as a guide. There is however no limit (unless
you exhaust the memory of your computer) on the number of pockes. Pockets
may also be nested in other pockets. My cycle also does not have to start
beyond the end of the path. I do this to allow boring and finishing
the bottom of that bore using the same path.
A comparison of the parameters:
You Me
P Q The Q kind of looks like an O to me, and I wanted to
use P to give the number of passes for the G70 cycle
D I I used I for increment.
R R A perfect match :-) (but it is used)
J W It adds to the distance specified with D in my cycle
L U This is also added to D, U and W are simply an extra
displacement added to the resulting profile.
I/K Not implemented, the finishing pass starts at a distance D
from the final profile and ends at distance E. Each pass
the distance is decreased with (D-E)/P. Both numbers
E and D may be positive or negative. The distances can
be quite large until further extension of the distance
would make the curve non-monotonic (Currently I just
remove the non-monotonic parts, but maybe I should give
an error). This large distance allows G70 to be used
almost like a Fanuc G73 cycle.
F Specify this in advance, just like the T, S and G43. If
you want to use cutter compensation you also have to
specify the G41/G42 before starting G70. It is an error
to start G71/G72 when G41 or G42 is active.
D This is used to specify a distance to keep from the final
profile during G71/G72. This letter is used to specify the
initial distance in the G70 cycle
E The final distance during the G70 cycle, this is usually
0 but may be positive to make it oversized, or negative
to make it undersized.
P The number of passes used in the G70 cycle to go from the
initial distance to the final distance.
X used as an initial postition, a rapid is done to the location.
Z also initial position
My default method is also type 2. If you require type 1, you also need
to specify G71.1/G72.1. There is an additional G71.2/G72.2 which can
be used after the .1 cycle to finish the path. This for example allows
you to use a CCMT roughing tool and use VCMT for the pocketing/finishing.
I don't do gouge detection, but linuxcnc does it when cutter compensation
is used.
My cycle only works in the G18 plane, it's for a lathe after all. It also
doen't work if G91 is active, but I can fix that when necessary.
I've included 3 demo/test files:
lathe_g70_71_demo.ngc The lathe pawn, using G71.1/G71.2 and G70.
lathe_g7x_quadrants.ngc This shows the 8 ways in which the cycles can
be used.
lathe_g7x_face_boring.ngc Shows the use of variables and a "O REPEAT".
regards,
Mark.
_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers