Browse Source

修改添加方法StageFile

sunyi 5 years ago
parent
commit
3a72d62513
1 changed files with 131 additions and 42 deletions
  1. 131 42
      OTS/OTSModelSharp/Measure/GetStageInfo/StageFile.cs

+ 131 - 42
OTS/OTSModelSharp/Measure/GetStageInfo/StageFile.cs

@@ -566,6 +566,72 @@ namespace OTSModelSharp
             return pDomain;
         }
 
+       public CDomain GetDomain(List<String> a_listString)
+        {
+            // domain
+            CDomain pDomain = null;
+
+            // check value string list size
+            if ((int)a_listString.Count != DOMAIN_ITEM_NUMBER)
+            {
+                return pDomain;
+            }
+
+            // shape 
+            int nValue = 0;
+            String strValue = a_listString[0];
+            if (!StringToInt(strValue, nValue))
+            {
+                return pDomain;
+            }
+            // check the shape value
+            if (nValue < (int)DOMAIN_SHAPE.MIN || nValue > (int)DOMAIN_SHAPE.MAX)
+            {
+                return pDomain;
+            }
+            DOMAIN_SHAPE nShape = (DOMAIN_SHAPE)nValue;
+
+            // position 
+            strValue = a_listString[1];
+            if (!StringToInt(strValue, nValue))
+            {
+                return pDomain;
+            }
+            int nCentreX = nValue;
+            strValue = a_listString[2];
+            if (!StringToInt(strValue, nValue))
+            {
+                return pDomain;
+            }
+            int nCentreY = nValue;
+
+            // diameter/width
+            strValue = a_listString[3];
+            if (!StringToInt(strValue, nValue))
+            {
+                return pDomain;
+            }
+            int nDiameter_Width = nValue;
+
+            // height/spare
+            strValue = a_listString[4];
+            if (nShape == DOMAIN_SHAPE.RECTANGLE)
+            {
+                if (!StringToInt(strValue, nValue))
+                {
+                    return pDomain;
+                }
+            }
+            int nDiameter_nHeight = nValue;
+
+            // create domain
+            Rect aa =new rectDomain(0, 0, nDiameter_Width, nDiameter_nHeight);
+            pDomain = new CDomain(nShape, rectDomain);
+            pDomain.OffsetDomain(new System.Drawing.Point(nCentreX - (nDiameter_Width / 2), nCentreY - (nDiameter_nHeight / 2)));
+            // return the domain pointer
+            return pDomain;
+        }
+
         // get Hole
         public CHole GetHole(String a_strValue)  //改完hole类再改此处
         {
@@ -888,38 +954,38 @@ namespace OTSModelSharp
             String strStageTextBody = "";
 
 
-            //// stage name
-            //String strTitle = "";
-            //strTitle = GetStringByKey(OTSModelresource.IDS_STAGE_FILE_TITLE_FIRST.ToString());            
-            //strStageTextBody += strTitle + otsdataconst.FILE_TITLE_SPLIT + " " + a_pStage.GetName() + otsdataconst.LINE_END;//OTSModelConst类修改完再修改此类
+            // stage name
+            String strTitle = "";
+            strTitle = OTSModelresource.IDS_STAGE_FILE_TITLE_FIRST.ToString();
+            strStageTextBody += strTitle + otsdataconst.FILE_TITLE_SPLIT + " " + a_pStage.GetName() + otsdataconst.LINE_END;
 
-            //// coordinate system 
-            //// always export OTS coordinate system stage
-            //strTitle = GetStringByKey(OTSModelresource.IDS_STAGE_FILE_TITLE_FIRST.ToString() + 1);           
-            //strStageTextBody += strTitle + otsdataconst.FILE_TITLE_SPLIT + " " + "0" + otsdataconst.LINE_END;//OTSModelConst类修改完再修改此类
+            // coordinate system 
+            // always export OTS coordinate system stage
+            strTitle = OTSModelresource.IDS_STAGE_FILE_TITLE_FIRST.ToString() + 1;
+            strStageTextBody += strTitle + otsdataconst.FILE_TITLE_SPLIT + " " + "0" + otsdataconst.LINE_END;
 
-            //// boundary
-            //strTitle = GetStringByKey(OTSModelresource.IDS_STAGE_FILE_TITLE_FIRST.ToString() + 2);            
-            //strStageTextBody += strTitle + otsdataconst.FILE_TITLE_SPLIT + " ";
-            //String strDomain = GetDomainTextBody(a_pStage.GetBoundary());
-            //strStageTextBody += strDomain;
+            // boundary
+            strTitle = OTSModelresource.IDS_STAGE_FILE_TITLE_FIRST.ToString() + 2;
+            strStageTextBody += strTitle + otsdataconst.FILE_TITLE_SPLIT + " ";
+            String strDomain = GetDomainTextBody(a_pStage.GetBoundary());
+            strStageTextBody += strDomain;
 
-            //// STD 
-            //strTitle= GetStringByKey(OTSModelresource.IDS_STAGE_FILE_TITLE_FIRST.ToString() + 3);
-            //strStageTextBody += strTitle + otsdataconst.FILE_TITLE_SPLIT + " ";
-            //strDomain = GetDomainTextBody(a_pStage.GetSTD());
-            //strStageTextBody += strDomain;
+            // STD 
+            strTitle = OTSModelresource.IDS_STAGE_FILE_TITLE_FIRST.ToString() + 3;
+            strStageTextBody += strTitle + otsdataconst.FILE_TITLE_SPLIT + " ";
+            strDomain = GetDomainTextBody(a_pStage.GetSTD());
+            strStageTextBody += strDomain;
 
-            //// holes
-            //foreach (var pHole in a_pStage.GetHoleList())
-            //{
+            // holes
+            foreach (var pHole in a_pStage.GetHoleList())
+            {
 
-            //    strTitle = GetStringByKey(OTSModelresource.IDS_STAGE_FILE_TITLE_FIRST.ToString() + 4);
-            //    strStageTextBody += strTitle + otsdataconst.FILE_TITLE_SPLIT + " ";
-            //    strStageTextBody += pHole.GetName() + otsdataconst.FILE_VALUE_SPLIT + " ";
-            //    strDomain = GetDomainTextBody(pHole);
-            //    strStageTextBody += strDomain;
-            //}
+                strTitle = OTSModelresource.IDS_STAGE_FILE_TITLE_FIRST.ToString() + 4;
+                strStageTextBody += strTitle + otsdataconst.FILE_TITLE_SPLIT + " ";
+                strStageTextBody += pHole.GetName() + otsdataconst.FILE_VALUE_SPLIT + " ";
+                strDomain = GetDomainTextBody(pHole);
+                strStageTextBody += strDomain;
+            }
 
             //// return stage text body
             return strStageTextBody;
@@ -1284,27 +1350,50 @@ namespace OTSModelSharp
         }
 
         //public CStage GetWorkingStage() { return null; }
-      public  CStage GetWorkingStage()
-	  {
-		if (this == null)
+        //    public  CStage GetWorkingStage()
+        // {
+        //if (this == null)
+
+        //      {
+        //          Nloger.Error("GetWorkingStage: invalid pointer.");
+        //          return null;
+        //      }
 
+        //      CStage pStage = GetWorkingStage1();
+
+        //if (pStage == null)
+        //{
+        //              Nloger.Error("GetWorkingStage::invalide stage pointer");
+        //	return null;
+        //}
+
+        //       CStage pStageClr = new CStage(pStage);
+
+        //return pStageClr;
+        // }
+
+       public CStage GetWorkingStage()
         {
-            Nloger.Error("GetWorkingStage: invalid pointer.");
-            return null;
-        }
+           List< CStage> listStage = GetStagesList();
+            int nSize = (int)listStage.Count;
+            int nWorkingId = GetWorkingStageId();
 
-        CStage pStage = GetWorkingStage1();
+            if (nWorkingId > nSize)
+            {
+                Nloger.Error("GetWorkingStage: workingStage positon %d is error. ", nWorkingId);
+                return null;
+            }
 
-		if (pStage == null)
-		{
-                Nloger.Error("GetWorkingStage::invalide stage pointer");
-			return null;
-		}
+            if (nWorkingId == -1)
+            {
+                Nloger.Error("GetWorkingStage: stage list is empty. ");
+                return null;
+            }
 
-         CStage pStageClr = new CStage(pStage);
+            CStage pStage = listStage[nWorkingId];
 
-		return pStageClr;
-	  }
+            return pStage;
+        }
         public  CStage GetWorkingStage1()
         {
            List< CStage> listStage = GetStagesList();