Bläddra i källkod

添加打开文件

wb_han 4 år sedan
förälder
incheckning
00b8edcb24
3 ändrade filer med 63 tillägg och 7 borttagningar
  1. 1 2
      MeasureData/CutHole.cs
  2. 1 0
      MeasureData/MeasureData.csproj
  3. 61 5
      MeasureData/MeasureFile.cs

+ 1 - 2
MeasureData/CutHole.cs

@@ -175,9 +175,8 @@ namespace MeasureData
                 this.END = END.value();
                 this.STATE = (State)STATE.value();
                 this.SWITCH = SWITCH.value();
+                this.HoleName = SampleName.value();
             }
         }
-
     }
-
 }

+ 1 - 0
MeasureData/MeasureData.csproj

@@ -38,6 +38,7 @@
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />

+ 61 - 5
MeasureData/MeasureFile.cs

@@ -11,7 +11,7 @@ using System.Windows.Forms;
 using FileManager;
 using System.Xml;
 using System.IO;
-
+using System.Drawing;
 
 namespace MeasureData
 {
@@ -120,9 +120,15 @@ namespace MeasureData
 
                 this.FileName = FileName.value();
                 this.FilePath = FilePath.value();
+                List<CutHole> tempCutHoleList = new List<CutHole>();
                 for (int i = 0; i < sCutHoles.size(); i++)
                 {
-                    ListCutHole.Add(sCutHoles.getItem(i));
+                    tempCutHoleList.Add(sCutHoles.getItem(i));
+                }
+                if (tempCutHoleList.Count == sCutHoles.size())
+                {
+                    ListCutHole.Clear();
+                    ListCutHole = tempCutHoleList;
                 }
             }
         }
@@ -167,6 +173,14 @@ namespace MeasureData
         //打开
         public void Open()
         {
+            XmlDocument doc = new XmlDocument();
+            doc.Load(this.FileName);//载入xml文件
+
+            XmlNode root = doc.SelectSingleNode("XMLData");
+
+            Serialize(false, doc, root);
+
+            doc.Save(this.FileName);
         }
 
         //保存
@@ -195,7 +209,6 @@ namespace MeasureData
                       
             XmlNode root = doc.SelectSingleNode("XMLData");
             Serialize(true, doc, root);
-            doc.Save(this.FileName);
 
             return true;
         }
@@ -357,9 +370,52 @@ namespace MeasureData
             }         
         }
 
-        public List<CutHole> GetCutHolesFromAnalysisPosition()
+        //从点集合对象中生成切割孔信息
+        public bool GetCutHolesFromAnalysisPosition(List<PointF> cutHolePointF)
         {
-            return null;
+            //集合中的数量
+            int nNum = Convert.ToInt32(cutHolePointF.Count);
+            if (nNum == 0)
+            {
+                return false;
+            }
+            else
+            {
+                List<CutHole> tempCutHoleList = new List<CutHole>();
+                for (int i = 0; i < nNum; i++)
+                {
+                    //切孔标识
+                    CutHole CHole = new CutHole();
+                    CHole.HoleName = (i + 1).ToString();
+                    //切孔位置
+                    SemPosition holePos = new SemPosition();
+                    holePos.X = Convert.ToSingle(cutHolePointF[i].X);
+                    holePos.Y = Convert.ToSingle(cutHolePointF[i].Y);
+                    holePos.Z = Convert.ToSingle(0);
+                    holePos.M = Convert.ToSingle(0);
+                    holePos.T = Convert.ToSingle(0);
+                    holePos.R = Convert.ToSingle(0);
+                    CHole.Position = holePos;
+                    //默认切割点均参与测试
+                    CHole.SWITCH = true;
+
+                    //更新切孔链表
+                    tempCutHoleList.Add(CHole);
+                    LogManager.AddHardwareLog("X =" + cutHolePointF[i].X
+                        + "Y =" + cutHolePointF[i].Y
+                        + "Z =" + 0
+                        + "M =" + 0
+                        + "T =" + 0
+                        + "R =" + 0
+                        , true);
+                }
+                if (tempCutHoleList.Count > 0)
+                {
+                    this.ListCutHole.Clear();
+                    this.ListCutHole = tempCutHoleList;
+                }
+            }
+            return true;
         }
         #endregion
     }