public int CircleArguJudge(ref string error_string, ModalCode_Fanuc_M modal_state, ref Vector3 ijk_coo, ref float rValue) { //终点坐标在原地 if (xyz_state[0] == false && xyz_state[1] == false && xyz_state[2] == false) { //若R有赋值,返回0停在原地 if (ijk_state[3]) { return(0); } //若R和IJK都没有赋值,返回0停在原地 else if (ijk_state[0] == false && ijk_state[1] == false && ijk_state[2] == false) { return(0); } else { //三种平面下的判断及圆心增量坐标获取,如果返回1则为整圆情况 switch (modal_state.PlaneCheck()) { case (int)CheckInformation.XYPlane: if (ijk_state[2]) { error_string = "平面选择与输入坐标不符"; return(-1); } else { ijk_coo = new Vector3(i_value, j_value, 0); return(1); } case (int)CheckInformation.ZXPlane: if (ijk_state[1]) { error_string = "平面选择与输入坐标不符"; return(-1); } else { ijk_coo = new Vector3(i_value, 0, k_value); return(1); } case (int)CheckInformation.YZPlane: if (ijk_state[0]) { error_string = "平面选择与输入坐标不符"; return(-1); } else { ijk_coo = new Vector3(0, j_value, k_value); return(1); } default: error_string = "平面选择错误,不存在这样的平面"; return(-1); } } } //有终点坐标 else { //三种平面下的判断及圆心增量坐标和Display坐标(增量或最终值),如果返回2则为IJK,返回3则为R switch (modal_state.PlaneCheck()) { case (int)CheckInformation.XYPlane: if (xyz_state[2]) { error_string = "平面选择与输入坐标不符"; return(-1); } else { //有R在 if (ijk_state[3]) { rValue = r_value; return(3); } //没有R else { if (ijk_state[2]) { error_string = "平面选择与输入坐标不符"; return(-1); } else { ijk_coo = new Vector3(i_value, j_value, 0); return(2); } } } case (int)CheckInformation.ZXPlane: if (xyz_state[1]) { error_string = "平面选择与输入坐标不符"; return(-1); } else { //有R在 if (ijk_state[3]) { rValue = r_value; return(3); } //没有R else { if (ijk_state[1]) { error_string = "平面选择与输入坐标不符"; return(-1); } else { ijk_coo = new Vector3(i_value, 0, k_value); return(2); } } } case (int)CheckInformation.YZPlane: if (xyz_state[0]) { error_string = "平面选择与输入坐标不符"; return(-1); } else { //有R在 if (ijk_state[3]) { rValue = r_value; return(3); } //没有R else { if (ijk_state[0]) { error_string = "平面选择与输入坐标不符"; return(-1); } else { ijk_coo = new Vector3(0, j_value, k_value); return(2); } } } default: error_string = "平面选择错误,不存在这样的平面"; return(-1); } } }