private CNCState.CNCState ProcessDrillingMove(Arguments block, ActionProgram.ActionProgram program, CNCState.CNCState state) { // TODO Handle G17, 18, 19 decimal?X = GetValue(block.X, state); decimal?Y = GetValue(block.Y, state); decimal?Z = GetValue(block.Z, state); // Drill depth decimal?R = GetValue(block.R, state); // Retract decimal?Q = GetValue(block.Q, state); // Pecking state.DrillingState.RetractDepth = DrillingState.RetractDepthType.RHeight; return(builder.ProcessDrillingMove(X, Y, Z, R, Q, program, state)); }