Tool radius compensation G41. Initial move
- juergen-home
- Offline
- New Member
Less
More
- Posts: 17
- Thank you received: 3
10 Mar 2015 19:21 - 10 Mar 2015 19:45 #56615
by juergen-home
Tool radius compensation G41. Initial move was created by juergen-home
What is best practice for a linear initailal move if I want to make a round pocket. (tool diameter is greater then the pocket radius)
What I did:
Question:
1. What is best practise for this move if the tool diameter is greater then the pocket radius?
2. Is there a way to make the compensation move complete inside the pocket?
What I did:
g17 (xy plane)
g21 (mm)
g40 (cancel cutter radius compensation)
g49 (cancel tool lengthoffset)
g90 (absolute distance mode)
g94 (units/min feedrate)
g54 (Coordinate system 1 default)
g0 z10
g1 x20 y20 f200
g42.1 D20 x20 y0 (tool compensation-left)
g1 z0
g2 x20 y0 i-20 j0 z-3 p3 (circle cw)
g40 (cancel cutter radius compensation)
g1 x0 y0
m30
Question:
1. What is best practise for this move if the tool diameter is greater then the pocket radius?
2. Is there a way to make the compensation move complete inside the pocket?
Last edit: 10 Mar 2015 19:45 by juergen-home.
Please Log in or Create an account to join the conversation.
- johns00056
- Offline
- Premium Member
Less
More
- Posts: 108
- Thank you received: 2
13 Apr 2015 23:28 - 13 Apr 2015 23:33 #57763
by johns00056
Replied by johns00056 on topic Tool radius compensation G41. Initial move
This is a common problem on many industrial CNC machines . I like to use the largest possible end mill to make counter bores and so on. I found a macro in a book that allows one to mill a circle without using G41 cutter diameter compensation . I converted the macro from Fanuc to Linux CNC.
I have have used it several times and it seems to work OK. It could probably use more error trapping in case an argument is omitted.
Feel free to post improvements , if you have any.
(put this program in nc_files mysubs)
g13.ngc
(subprogram to mill an inside circle without cutter diameter compensation like Fanuc g13)
(the useful feature of this program is that the end mill need only be a little bit smaller than the circle being milled.)
(ordinarily when g41 is used the cutter must be a good bit smaller than the circle to allow a lead in move long enough to apply cutter compensation)
(john seward 3/12/15)
(start with end mill at circle center , at depth and with spindle on) (correct tool diameter must be listed in the tool table)
(uses a circular lead in, starts cutting at the 3:00 position,cuts a full circle counter clockwise, then a circular lead out back to the center.)
(o<g13> call [circle diameter] [feed] ) (use this command to call the subprogram )
(#1 = .750 ) (desired circle diameter)
(#2 = 3) (feed rate)
( #5410) (tool diameter of currently loaded tool) (from tool table )
o<g13> sub
#10 = [[#1 - #5410]/2] (actual radius of tool path for circle)
o100 if [#5410 GT [#1-.005]] (tool must be .005 smaller than finished circle) (plot preview will show nothing if tool is too large)
(debug, tool too large)
m2 (program stops here and displays message if tool is too large)
o100 endif
#11 = [#10/2] (#11 = radius of lead in and lead out arc )
g91 g3 f#2 x#10 y0 i#11 j0 (lead in arc)(incremental positioning)
g91 g3 f#2 x0 y0 i-#10 j0 (360 circle counter clockwise)
g91 g3 f#2 x-#10 y0 i-#11 j0 (lead out arc ending at center of circle)
g90 (back to absolute positioning)
o<g13> endsub
I have have used it several times and it seems to work OK. It could probably use more error trapping in case an argument is omitted.
Feel free to post improvements , if you have any.
(put this program in nc_files mysubs)
g13.ngc
(subprogram to mill an inside circle without cutter diameter compensation like Fanuc g13)
(the useful feature of this program is that the end mill need only be a little bit smaller than the circle being milled.)
(ordinarily when g41 is used the cutter must be a good bit smaller than the circle to allow a lead in move long enough to apply cutter compensation)
(john seward 3/12/15)
(start with end mill at circle center , at depth and with spindle on) (correct tool diameter must be listed in the tool table)
(uses a circular lead in, starts cutting at the 3:00 position,cuts a full circle counter clockwise, then a circular lead out back to the center.)
(o<g13> call [circle diameter] [feed] ) (use this command to call the subprogram )
(#1 = .750 ) (desired circle diameter)
(#2 = 3) (feed rate)
( #5410) (tool diameter of currently loaded tool) (from tool table )
o<g13> sub
#10 = [[#1 - #5410]/2] (actual radius of tool path for circle)
o100 if [#5410 GT [#1-.005]] (tool must be .005 smaller than finished circle) (plot preview will show nothing if tool is too large)
(debug, tool too large)
m2 (program stops here and displays message if tool is too large)
o100 endif
#11 = [#10/2] (#11 = radius of lead in and lead out arc )
g91 g3 f#2 x#10 y0 i#11 j0 (lead in arc)(incremental positioning)
g91 g3 f#2 x0 y0 i-#10 j0 (360 circle counter clockwise)
g91 g3 f#2 x-#10 y0 i-#11 j0 (lead out arc ending at center of circle)
g90 (back to absolute positioning)
o<g13> endsub
Last edit: 13 Apr 2015 23:33 by johns00056.
Please Log in or Create an account to join the conversation.
13 Apr 2015 23:52 #57765
by andypugh
Replied by andypugh on topic Tool radius compensation G41. Initial move
Just to add a refinement, LinuxCNC G2 and G3 moves can take an optional P term that indicates a multi-turn arc. This can be used to create a spiral-down move in a single G-code line.
Please Log in or Create an account to join the conversation.
Time to create page: 0.092 seconds