1. ## finishing a hole

I have a part that has a hole in it and I want to run an endmill one pass just to clean it up. How do I do that? All I can get it to do is plunge up and down all the way around the inside of the hole.

2. You want to use the finish mill bore operation. It is one of the options in the drilling process. You can set it to bore in one pass or in as many steps as you want, with or without retracts.

3. ## Finishing holes, helical interpolation.

The following code will give you a helical toolpath to bore or clean up a hole. The { } comments are not part of the code, just an explanation.
This example does not use tool compensation.

G90 G00 X [x.xxxx] Y[y.yyyy] Z[z.zzzz] {Do an absolute, G90, move to the center of the hole; x.xxxx is the location in X in your current work coordinate system, y.yyyy the location in Y and z.zzzz the clearance distance above the part. If you make the center of the hole the work coordinate location then it becomes X0. Y0. If you make the surface of the part 0. for the tool Z offset you can make z.zzzz 1.0 which gives you an inch of clearance at your first approach.}

G91 G00 X0. Y[y.yyyy] Z-0.98 {G91 changes to incremental and moves the tool so the periphery of the tool is at the correct radius, y.yyyy in this case is the required hole radius minus your tool radius, X does not move and Z moves to 0.02 above the part.}

G91 G03 I0. J-[y.yyyy] Z-0.1 F[f.fff] L[ll] {G91 is really not needed on this line but it reminds you incremental mode is still active, G03 is counterclockwise interpolation around a center located 0.0 distance from the current tool position on the X axis and minus the distance move on the previous line in the Y axis. In other words at the hole center. Z-0.1 is the distance the Z axis moves down for each G03 circle, f.ffff is the feedrate and ll is the number of circles. For example if your hole has to be 1.0 inch deep ll will be 10.}

G90 G03 I0. J-[y.yyyy] Z-1.0 L2 {Because you started 0.02 above the part your hole from the previous line is 0.98 deep so this line changes back to absolute motion and goes twice around; the first circle takes you to the correct depth and the second cleans up the end of the helical ramp.

G00 Z1.0 {This lifts your tool clear for any subsequent X, Y moves}

With values inserted for cleaning up a rough hole 1-3/4" diameter to a finished hole 2.000 in diameter and 1.000 inch deep, using a 1/2" cutter in the center of a 6" square block of material with the work coordinate system placed at the corner closest to machine home and leaving out commands that are modal the code would read: (the feed rate is not specified)

G90 G00 X-3. Y-3. Z1.0
G91 X0. Y0.75 Z-0.98
G03 I0. J-0.75 F[f.ffff] Z-0.1 L10
G90 G03 I0. J-0.75 Z-1.0 L2
G00 Z1.0

4. I will give finish bore a shot. Thanks