/// <summary> /// 解析数据 /// </summary> public void ResolveData() { //解析项目工程 if (MainLaserProject.FileList.Count <= 0) { MessageBox.Show("项目中无可用文件!!!"); return; } //读取DXF文件 DxfDocument dxf = DataResolve.Read_File(MainLaserProject.FileList[0].Path); if (dxf == null) { MessageBox.Show(string.Format("{0}数据读取失败!!!", MainLaserProject.FileList[0].Name)); return; } //指定文件名 File_Entity_Datas = new File_Entity_Data(); File_Entity_Datas.FileName = MainLaserProject.FileList[0].Name; //提取Mark信息 if (MarkType == 1) // 1 - 整块板定位(取4角) { File_Entity_Datas.DxfMarkInfo = DataResolve.DistractMark(dxf, "Mark"); //mark信息 } //获取分区编号序列 List <int> SectionList = new List <int>(); foreach (var o in MainLaserProject.FileList[0].LaserLayer) { SectionList.AddRange(DataResolve.DistractSectionColor(dxf, o));//追加数据 } SectionList = SectionList.Distinct().OrderBy(o => o).ToList(); if (SectionList.Count <= 0) { return; } //按分区提取数据 Integrate_Entity_Data TemData = new Integrate_Entity_Data(); //图层数据 Section_Entity_Data TemSectionData = new Section_Entity_Data(); //分区数据 foreach (var o in MainLaserProject.FileList[0].LaserLayer) { TemData.LayerName = o; foreach (var p in SectionList) { TemSectionData.Color = p; TemSectionData.ArcLine = DataResolve.DistractArcLine(dxf, p, o); //圆弧直线数据 TemSectionData.Circle = DataResolve.DistractCircle(dxf, p, o); //整圆数据 TemSectionData.LWPolyline = DataResolve.DistractLWPolyline(dxf, p, o); //多边形数据 if (MarkType == 2) //2 - 阵列文件定位(小分区取4角) { TemSectionData.DxfMarkInfo = DataResolve.DistractMark(dxf, p, "Mark"); //mark信息 } TemData.SectionEntityDatas.Add(new Section_Entity_Data(TemSectionData)); TemSectionData.Empty();//释放数据 } File_Entity_Datas.LayerSectionDatas.Add(new Integrate_Entity_Data(TemData)); TemData.Empty();//释放数据 } }