/// <summary> /// 自动取点 /// </summary> public static List <PointData> AutoSelPoint(ElecManage.Electrode electrode, CMMConfig config, bool isUploadFile = true) { var positions = new List <PointData>(); var tempPositions = new List <PointData>(); var elecInfo = electrode.GetElectrodeInfo(); config.ElecMaxZ = electrode.ElecBody.Box.MaxZ; var elecName = elecInfo.Elec_Name; Helper.ShowMsg(string.Format("{0}基准面取点", elecName)); tempPositions = GetHorizontalDatumFacePositions(electrode, config); if (tempPositions.Count < 3) { throw new Exception("基准面取点异常!"); } //根据象限排序 positions.AddRange(OrderPointDatas(tempPositions)); Helper.ShowMsg(string.Format("{0}侧面取点", elecName)); tempPositions = GetVerticalDatumFacesPositions(electrode, config); if (tempPositions.Count < 8) { throw new Exception("侧面取点异常!"); } positions.AddRange(tempPositions); Helper.ShowMsg(string.Format("{0}电极头部面取点", elecName)); tempPositions = GetElectrodeHeadFacePositions(electrode, config); if (tempPositions.Count <= 0) { throw new Exception("电极头部面取点异常!"); } //排序 tempPositions = tempPositions.OrderBy(u => u.A).ThenBy(u => u.B).ThenByDescending(u => u.Position.Z).ToList(); positions.AddRange(tempPositions); //名称 foreach (var item in positions) { item.PointName = string.Format("P{0}", positions.IndexOf(item) + 1); } if (isUploadFile) { WriteCMMFile(electrode, GetPointInfo.GetCMMPointInfo(positions, electrode, _EactConfigData), config); } return(positions); }
/// <summary> /// 上传CMM文件 /// </summary> public static void WriteCMMFileByPointData(ElecManage.Electrode elec, List <PointData> pointData, CMMConfig cmmconfig) { WriteCMMFile(elec, GetPointInfo.GetCMMPointInfo(pointData, elec, _EactConfigData), cmmconfig); }