(for numbered parameter meanings http://www.linuxcnc.org/docs/html/gcode/overview.html#sub:numbered-parameters) #69 = 3 (bore diameter) #99 = [[#69/2] + 1] (#100 = upperY) (#101 = lowerY) (#102 = upperX) (#103 = lowerX) (#120 = cy) (#121 = cx) (find upper Y) #69 = #5421 G91 G38.2 Y#99 F30 M105 G91 G00 Y-0.040 G91 G38.2 Y#99 F1 M105 #100 = #5062 (yUpper) #80 = [#69-#5062] (original position) G91 G00 Y#80 (find lower Y) G91 G38.2 Y[-1 * #99] F30 M105 G91 G00 Y0.040 G91 G38.2 Y[-1 * #99] F1 M105 #101 = #5062 (yLower) #120 = [[#100 + #101]/2] #80 =[#120 - #101] G91 G00 Y#80 (find upper X) #69 = #5420 G91 G38.2 X#99 F30 M105 G91 G00 X-0.040 G91 G38.2 X#99 F1 M105 #102 = #5061 (xUpper) #80 = [#69 - #5061] (original position) G91 G00 X#80 (find lower X) G91 G38.2 X[-1 * #99] F30 M105 G91 G00 X0.040 G91 G38.2 X[-1 * #99] F1 M105 #103 = #5061 (XLower) #121 = [[#102 + #103]/2] #80 =[#121 - #103] G91 G00 X#80 G10 L20 P[#5220] X[#198] Y[#199] (apply calibration offsets) # = [[#5220-1] * 20] # = #[# + 5221] # = #[# + 5222] (DEBUG, [cx: # cy: #]) M30