Browse Source

fix the bug of relocate particles function in cleanliness system.

shiyanshi 3 năm trước cách đây
mục cha
commit
d6e018db1a

+ 14 - 0
OTSIncAMeasureApp/0-OTSModel/Measure/2-OTSCleanliness/SmplMeasureCleanliness.cs

@@ -39,6 +39,7 @@ namespace OTSModelSharp
  
             // second step :filter the finded particles.
             FilterParticles((CFieldDataClean)curFldData);
+            CalculateParticlePos();
             COTSXRayParam pXRayParam = m_Sample.GetMsrParams().GetXRayParam();
             //collect xray data.
             if (pXRayParam.GetUsingXray() == (int)OTS_USING_X_RAY.Yes)
@@ -70,7 +71,20 @@ namespace OTSModelSharp
             return true;
 
         }
+        public void CalculateParticlePos()
+        {
+            double dPixelSize = m_Sample.CalculatePixelSize();
+            CSEMStageData pCSEMStageData = m_pMsrThread.GetProjResultData().GetSEMStageData();
+            foreach (var p in curFldData.ListAnalysisParticles)
+            {
 
+                Point fldOtsPos = new Point(curFldData.PoiPos.X, curFldData.PoiPos.Y);
+                Point semPos = new Point();
+                pCSEMStageData.ConverOTSToSEMPoint(fldOtsPos, ref semPos);
+                p.SetAbsolutPos(semPos);
+            }
+
+        }
 
 
         // save field data

+ 4 - 19
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/OTSSamplespaceWindow.cs

@@ -1305,10 +1305,7 @@ namespace OTSMeasureApp
                             {
                                 CheckShape = (int)CreateRectangleType.SampleBackGround_Rectangle;
                             }
-                            //if (!OTSSamplespaceGraphicsPanelFun.CheckMeasureAreaIsBeyondStageArea(rect, item.Region, CheckShape))
-                            //{
-                            //    break;
-                            //}
+                        
                             //样品孔菜单
                             m_IsSelectType = (int)ContextMenuType.SampleHoleMenu;
                             _Point = this.PointToClient(Cursor.Position);
@@ -3645,11 +3642,7 @@ namespace OTSMeasureApp
                     pMsrArea.SetShape((DOMAIN_SHAPE)shape);
                 }
                 pMsrArea.SetRectDomain(sampleHoleRect);
-                //////初始化
-                //if (!pFieldMgr.Init(pMsrArea, pImgScanParam, pSEMDataMsr, listPoint))
-                //{
-                //    return false;
-                //}
+         
             }
             else if (m_MeasureAppForm.m_MessageStates == MessageState.MeasureBSEPicture)
             {
@@ -3660,11 +3653,7 @@ namespace OTSMeasureApp
                 //设置样品孔当前位置信息
                 Rectangle sampleHoleRect = CMeasureThreadWrapper.c_DomainMessure.GetRectDomain();
                 pMsrArea.SetRectDomain(sampleHoleRect);
-                //////初始化
-                //if (!pFieldMgr.Init(pMsrArea, pImgScanParam, pSEMDataMsr, listPoint))
-                //{
-                //    return false;
-                //}
+       
             }
             else
             {
@@ -3719,11 +3708,7 @@ namespace OTSMeasureApp
                 //清除帧图信息
                 ClearImageAndSingleGDIObjects();
                 #region 获取帧图与绘制帧图
-                ////获取帧图信息
-                //if (m_SEMDATAFieldManage == null)
-                //{
-                //    m_SEMDATAFieldManage = new SEMDATAFieldManage(m_MeasureAppForm);
-                //}
+    
                 #region 获取当前工作的测量区域信息
                 //是否获取过帧图标识
                 bool IsSingle = false;