|  | @@ -255,7 +255,7 @@ namespace OTSMeasureApp
 | 
	
		
			
				|  |  |                      m_MeasureAppForm.m_RunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
 | 
	
		
			
				|  |  |                      //设定SEM数据
 | 
	
		
			
				|  |  |                      CMeasureThreadWrapper.DoRunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
 | 
	
		
			
				|  |  | -                    GetSEMData();
 | 
	
		
			
				|  |  | +                   
 | 
	
		
			
				|  |  |                      PrepareMeasureField(GetWorkingVisualSample());
 | 
	
		
			
				|  |  |                    
 | 
	
		
			
				|  |  |                      break;
 | 
	
	
		
			
				|  | @@ -275,11 +275,12 @@ namespace OTSMeasureApp
 | 
	
		
			
				|  |  |                  case "ShootBSEPicture":
 | 
	
		
			
				|  |  |                      //设置消息类型 拍摄样品孔
 | 
	
		
			
				|  |  |                      m_MeasureAppForm.m_RunType = MSR_THREAD_RunSTATUS.RUNSampleHoleImage;
 | 
	
		
			
				|  |  | +                    CMeasureThreadWrapper.DoRunType = MSR_THREAD_RunSTATUS.RUNSampleHoleImage;
 | 
	
		
			
				|  |  |                      //清除原图片信息
 | 
	
		
			
				|  |  |                      DeleteHoleBSEImageDataNoMessageBox();
 | 
	
		
			
				|  |  |                    
 | 
	
		
			
				|  |  |                      PrepareMeasureField(GetWorkingVisualSample());
 | 
	
		
			
				|  |  | -                    GetSEMData();
 | 
	
		
			
				|  |  | +                  
 | 
	
		
			
				|  |  |                      GetBSEPictures();
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  |                  case "DeleteBSEPicture":
 | 
	
	
		
			
				|  | @@ -1078,15 +1079,15 @@ namespace OTSMeasureApp
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                              var para = m_visualStage.GetSampleMeasurePara(sam.GetMeasureGDIObject());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                            m_MeasureAppForm.m_ProjParam.SetWorkSampleHoleAndMeasureArea(para);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                            m_MeasureAppForm.m_RunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
 | 
	
		
			
				|  |  | -                            CMeasureThreadWrapper.DoRunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
 | 
	
		
			
				|  |  | +                            m_MeasureAppForm.m_ProjParam.SetWorkSampleHoleAndMeasureArea(para);                          
 | 
	
		
			
				|  |  |                          
 | 
	
		
			
				|  |  |                              m_MeasureAppForm.SwitchWSample(m_SampleSelectName);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                            //--------------------read sem data draw measrue field and save these data to sample
 | 
	
		
			
				|  |  | +                            m_MeasureAppForm.m_RunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
 | 
	
		
			
				|  |  | +                            CMeasureThreadWrapper.DoRunType = MSR_THREAD_RunSTATUS.RUNMEASURE;
 | 
	
		
			
				|  |  |                              PrepareMeasureField(sam);
 | 
	
		
			
				|  |  | +                            //--------------------
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                              Invalidate();
 | 
	
		
			
				|  |  |                                 
 | 
	
	
		
			
				|  | @@ -1731,6 +1732,7 @@ namespace OTSMeasureApp
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                      var sam = GetWorkingVisualSample();
 | 
	
		
			
				|  |  | +                     
 | 
	
		
			
				|  |  |                      var curMeasureGdi = sam.GetMeasureGDIObject();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                        
 | 
	
	
		
			
				|  | @@ -2609,7 +2611,7 @@ namespace OTSMeasureApp
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              pFields = pFieldMgr.GetFieldCentrePoints();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            int iFieldCount = pFieldMgr.GetTotalFields();
 | 
	
		
			
				|  |  | +          
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              var oValue = new Rectangle();
 | 
	
		
			
				|  |  |              if (!pFieldMgr.GetFieldRectByIndex(0, ref oValue))
 | 
	
	
		
			
				|  | @@ -2617,10 +2619,9 @@ namespace OTSMeasureApp
 | 
	
		
			
				|  |  |                  return false;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              iSzie = oValue.Size;
 | 
	
		
			
				|  |  | -           
 | 
	
		
			
				|  |  | -            WSample.GetSEMDataMsr().SetTotalFields(iFieldCount);
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            return true;
 | 
	
		
			
				|  |  | +                return true;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          #endregion
 | 
	
		
			
				|  |  |          public void PrepareMeasureField(CVisualSampleArea sam)
 | 
	
	
		
			
				|  | @@ -2628,7 +2629,9 @@ namespace OTSMeasureApp
 | 
	
		
			
				|  |  |            
 | 
	
		
			
				|  |  |              try
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -               
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                GetSEMData();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  List<CRectangleGDIObject> visualfieldRects = null;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  visualfieldRects = GetOTSFieldVisualRects(sam);//get all the possible field rects through C++ code.
 | 
	
	
		
			
				|  | @@ -2659,11 +2662,12 @@ namespace OTSMeasureApp
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                         
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -                    
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    SaveFieldPositionInfoToSample(sam);
 | 
	
		
			
				|  |  | +                    m_MeasureAppForm.UpdatePropertyVal();
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                SaveFieldPositionInfoToSample(sam);
 | 
	
		
			
				|  |  | -                m_MeasureAppForm.UpdatePropertyVal();
 | 
	
		
			
				|  |  | +               
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              catch (Exception ex)
 | 
	
		
			
				|  |  |              {
 |