Tool radius compensation G41. Initial move

More
10 Mar 2015 19:21 - 10 Mar 2015 19:45 #56615 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:
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?
Attachments:
Last edit: 10 Mar 2015 19:45 by juergen-home.

Please Log in or Create an account to join the conversation.

More
13 Apr 2015 23:28 - 13 Apr 2015 23:33 #57763 by johns00056
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
Last edit: 13 Apr 2015 23:33 by johns00056.

Please Log in or Create an account to join the conversation.

More
13 Apr 2015 23:52 #57765 by andypugh
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.205 seconds
Powered by Kunena Forum