Browse Source

Merge branch 'master' of http://192.168.1.123:10080/SDD1/HOZ

HaoShuang 4 years ago
parent
commit
9d77315478

+ 2 - 2
HOZProject/App.config

@@ -50,8 +50,8 @@
       <add key="PT_Depostion" value="False"/>
       <!--FIB的放大倍数-->
       <add key="FIB_Magnification" value="1500"/>
-      <!--Z轴移动距离-->
-      <add key="ZDistance" value="20"/>
+      <!--Z轴移动距离,单位:mm-->
+      <add key="ZDistance" value="5"/>
       <!--层高分析的放大倍数-->
       <add key="FH_Magnification" value="1500"/>
       <!--层高分析的电压-->

+ 3 - 0
HOZProject/FormHOZMain.cs

@@ -175,6 +175,9 @@ namespace HOZProject
                 //人工干预
                 m_Ms.hand_intervene = Convert.ToInt32(ConfigurationManager.AppSettings["Hand_Intervene"]);
 
+                //Z轴移动距离
+                m_MeasureFile.MParam.ZDistance= Convert.ToSingle(ConfigurationManager.AppSettings["ZDistance"]);
+
                 m_Ms.InitMeas(m_MeasureFile);
                 //注册事件
                 m_Ms.SendThreadStatus += new ThreadStatusHandler(displayMessage);

+ 18 - 17
HOZProject/MeasureXML/MeasureStructXml.xml

@@ -24,25 +24,26 @@
     <Step Index="17" Code="1-17" IsData="True" Type="FIB" IsShow="True" Title="FIB分析前自动对焦" Details="FIB分析前自动对焦"></Step>
     <Step Index="18" Code="1-18" IsData="True" Type="FIB" IsShow="True" Title="FIB分析前拍照" Details="FIB分析前拍照"></Step>
     <Step Index="19" Code="1-19" IsData="False" Type="FIB" IsShow="True" Title="FIB分析" Details="FIB分析"></Step>
-    <Step Index="20" Code="1-20" IsData="True" Type="FIB" IsShow="True" Title="FIB分析后拍照" Details="FIB分析后拍照"></Step>
-    <Step Index="21" Code="1-21" IsData="False" Type="FIB" IsShow="True" Title="验证分析是否成功" Details="验证FIB分析是否成功"></Step>
+    <Step Index="20" Code="1-20" IsData="True" Type="FIB" IsShow="True" Title="FIB分析后自动对焦" Details="FIB分析后自动对焦"></Step>
+    <Step Index="21" Code="1-21" IsData="True" Type="FIB" IsShow="True" Title="FIB分析后拍照" Details="FIB分析后拍照"></Step>
+    <Step Index="22" Code="1-22" IsData="False" Type="FIB" IsShow="True" Title="验证分析是否成功" Details="验证FIB分析是否成功"></Step>
     
-    <Step Index="22" Code="1-22" IsData="False" Type="FIB" IsShow="True" Title="切换到SEM模式" Details="切换到SEM模式"></Step>
-    <Step Index="23" Code="1-23" IsData="False" Type="FIB" IsShow="True" Title="拍照放大倍数/3" Details="拍照放大倍数/3查找分析点位置"></Step>
-    <Step Index="24" Code="1-24" IsData="True" Type="FIB" IsShow="True" Title="SEM拍照" Details="SEM拍照查找分析点位置"></Step>
-    <Step Index="25" Code="1-25" IsData="False" Type="FIB" IsShow="True" Title="中心点获取并移动" Details="图像接口返回梯形中心点坐标并移动样品台"></Step>
+    <Step Index="23" Code="1-23" IsData="False" Type="FIB" IsShow="True" Title="切换到SEM模式" Details="切换到SEM模式"></Step>
+    <Step Index="24" Code="1-24" IsData="False" Type="FIB" IsShow="True" Title="拍照放大倍数/3" Details="拍照放大倍数/3查找分析点位置"></Step>
+    <Step Index="25" Code="1-25" IsData="True" Type="FIB" IsShow="True" Title="SEM拍照" Details="SEM拍照查找分析点位置"></Step>
+    <Step Index="26" Code="1-26" IsData="False" Type="FIB" IsShow="True" Title="中心点获取并移动" Details="图像接口返回梯形中心点坐标并移动样品台"></Step>
     
-    <Step Index="26" Code="1-26" IsData="False" Type="Photo" IsShow="True" Title="定位放大倍数" Details="定位的放大倍数"></Step>
-    <Step Index="27" Code="1-27" IsData="True" Type="Photo" IsShow="True" Title="定位-自动对焦消像散" Details="定位的高倍数对焦消像散"></Step>
-    <Step Index="28" Code="1-28" IsData="False" Type="FIB" IsShow="True" Title="设置观测时的角度补偿" Details="设置观测时的角度补偿"></Step>
-    <Step Index="29" Code="1-29" IsData="True" Type="Photo" IsShow="True" Title="分析-SEM拍照" Details="拍照获取梯形偏移角度"></Step>
-    <Step Index="30" Code="1-30" IsData="False" Type="FIB" IsShow="True" Title="获取观测形状的角度并补偿" Details="图像接口返回观测形状的角度并补偿"></Step>
-    <Step Index="31" Code="1-31" IsData="True" Type="FIB" IsShow="True" Title="分析-自动对焦消像散" Details="分析的高倍数对焦消像散"></Step>
-    <Step Index="32" Code="1-32" IsData="True" Type="FIB" IsShow="True" Title="分析-SEM拍照" Details="获取定位观测层高位置"></Step>
-    <Step Index="33" Code="1-33" IsData="False" Type="FIB" IsShow="false" Title="获取定位观测点并移动" Details="获取定位观测点位置并移动样品台"></Step>
-    <Step Index="36" Code="1-36" IsData="True" Type="FIB" IsShow="false" Title="分析层高拍照" Details="分析层高拍照"></Step>
-    <Step Index="34" Code="1-34" IsData="False" Type="Photo" IsShow="True" Title="光束复位" Details="光束复位"></Step>
+    <Step Index="27" Code="1-27" IsData="False" Type="Photo" IsShow="True" Title="定位放大倍数" Details="定位的放大倍数"></Step>
+    <Step Index="28" Code="1-28" IsData="True" Type="Photo" IsShow="True" Title="定位-自动对焦消像散" Details="定位的高倍数对焦消像散"></Step>
+    <Step Index="29" Code="1-29" IsData="False" Type="FIB" IsShow="True" Title="设置观测时的角度补偿" Details="设置观测时的角度补偿"></Step>
+    <Step Index="30" Code="1-30" IsData="True" Type="Photo" IsShow="True" Title="分析-SEM拍照" Details="拍照获取梯形偏移角度"></Step>
+    <Step Index="31" Code="1-31" IsData="False" Type="FIB" IsShow="True" Title="获取观测形状的角度并补偿" Details="图像接口返回观测形状的角度并补偿"></Step>
+    <Step Index="32" Code="1-32" IsData="True" Type="FIB" IsShow="True" Title="分析-自动对焦消像散" Details="分析的高倍数对焦消像散"></Step>
+    <Step Index="33" Code="1-33" IsData="True" Type="FIB" IsShow="True" Title="分析-SEM拍照" Details="获取定位观测层高位置"></Step>
+    <Step Index="34" Code="1-34" IsData="False" Type="FIB" IsShow="false" Title="获取定位观测点并移动" Details="获取定位观测点位置并移动样品台"></Step>
+    <Step Index="35" Code="1-35" IsData="True" Type="FIB" IsShow="false" Title="分析层高拍照" Details="分析层高拍照"></Step>
+    <Step Index="36" Code="1-36" IsData="False" Type="Photo" IsShow="True" Title="光束复位" Details="光束复位"></Step>
     
-    <Step Index="35" Code="1-35" IsData="False" Type="FIB" IsShow="True" Title="自动层高分析" Details="自动进行层高分析"></Step>
+    <Step Index="40" Code="1-40" IsData="False" Type="FIB" IsShow="True" Title="自动层高分析" Details="自动进行层高分析"></Step>
   </MeasureFlow>
 </MeasureList>

+ 36 - 36
HOZProject/UserControls/UControl_Init.Designer.cs

@@ -101,7 +101,7 @@
             this.label1.ForeColor = System.Drawing.Color.LightGray;
             this.label1.Location = new System.Drawing.Point(15, 9);
             this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(109, 20);
+            this.label1.Size = new System.Drawing.Size(93, 17);
             this.label1.TabIndex = 0;
             this.label1.Text = "初始化设置";
             // 
@@ -138,7 +138,7 @@
             this.tbCutHoleFilePath.Location = new System.Drawing.Point(129, 49);
             this.tbCutHoleFilePath.Name = "tbCutHoleFilePath";
             this.tbCutHoleFilePath.ReadOnly = true;
-            this.tbCutHoleFilePath.Size = new System.Drawing.Size(347, 30);
+            this.tbCutHoleFilePath.Size = new System.Drawing.Size(347, 27);
             this.tbCutHoleFilePath.TabIndex = 5;
             // 
             // txtWPTF
@@ -147,7 +147,7 @@
             this.txtWPTF.Location = new System.Drawing.Point(129, 100);
             this.txtWPTF.Name = "txtWPTF";
             this.txtWPTF.ReadOnly = true;
-            this.txtWPTF.Size = new System.Drawing.Size(346, 30);
+            this.txtWPTF.Size = new System.Drawing.Size(346, 27);
             this.txtWPTF.TabIndex = 7;
             // 
             // lblCutHoleCount
@@ -157,7 +157,7 @@
             this.lblCutHoleCount.ForeColor = System.Drawing.Color.LightGray;
             this.lblCutHoleCount.Location = new System.Drawing.Point(127, 79);
             this.lblCutHoleCount.Name = "lblCutHoleCount";
-            this.lblCutHoleCount.Size = new System.Drawing.Size(179, 20);
+            this.lblCutHoleCount.Size = new System.Drawing.Size(153, 17);
             this.lblCutHoleCount.TabIndex = 8;
             this.lblCutHoleCount.Text = "成功导入0个分析点";
             // 
@@ -169,7 +169,7 @@
             this.chkManul.Location = new System.Drawing.Point(455, 181);
             this.chkManul.Margin = new System.Windows.Forms.Padding(2);
             this.chkManul.Name = "chkManul";
-            this.chkManul.Size = new System.Drawing.Size(115, 24);
+            this.chkManul.Size = new System.Drawing.Size(98, 21);
             this.chkManul.TabIndex = 15;
             this.chkManul.Text = "手动对焦";
             this.chkManul.UseVisualStyleBackColor = true;
@@ -183,7 +183,7 @@
             this.label6.Location = new System.Drawing.Point(13, 54);
             this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label6.Name = "label6";
-            this.label6.Size = new System.Drawing.Size(109, 20);
+            this.label6.Size = new System.Drawing.Size(93, 17);
             this.label6.TabIndex = 17;
             this.label6.Text = "导入分析点";
             // 
@@ -201,7 +201,7 @@
             this.cbbWPZD.Location = new System.Drawing.Point(129, 258);
             this.cbbWPZD.Margin = new System.Windows.Forms.Padding(2);
             this.cbbWPZD.Name = "cbbWPZD";
-            this.cbbWPZD.Size = new System.Drawing.Size(132, 28);
+            this.cbbWPZD.Size = new System.Drawing.Size(132, 25);
             this.cbbWPZD.TabIndex = 99;
             this.cbbWPZD.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.cbbWPZD_KeyPress);
             // 
@@ -218,7 +218,7 @@
             this.cbbWPZF.Location = new System.Drawing.Point(439, 258);
             this.cbbWPZF.Margin = new System.Windows.Forms.Padding(2);
             this.cbbWPZF.Name = "cbbWPZF";
-            this.cbbWPZF.Size = new System.Drawing.Size(132, 28);
+            this.cbbWPZF.Size = new System.Drawing.Size(132, 25);
             this.cbbWPZF.TabIndex = 98;
             this.cbbWPZF.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.cbbWPZF_KeyPress);
             // 
@@ -236,7 +236,7 @@
             this.cbbWQGD.Location = new System.Drawing.Point(129, 301);
             this.cbbWQGD.Margin = new System.Windows.Forms.Padding(2);
             this.cbbWQGD.Name = "cbbWQGD";
-            this.cbbWQGD.Size = new System.Drawing.Size(132, 28);
+            this.cbbWQGD.Size = new System.Drawing.Size(132, 25);
             this.cbbWQGD.TabIndex = 97;
             this.cbbWQGD.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.cbbWQGD_KeyPress);
             // 
@@ -253,7 +253,7 @@
             this.cbbWQGF.Location = new System.Drawing.Point(439, 301);
             this.cbbWQGF.Margin = new System.Windows.Forms.Padding(2);
             this.cbbWQGF.Name = "cbbWQGF";
-            this.cbbWQGF.Size = new System.Drawing.Size(132, 28);
+            this.cbbWQGF.Size = new System.Drawing.Size(132, 25);
             this.cbbWQGF.TabIndex = 96;
             this.cbbWQGF.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.cbbWQGF_KeyPress);
             // 
@@ -270,7 +270,7 @@
             this.cbbWLZ.Location = new System.Drawing.Point(439, 344);
             this.cbbWLZ.Margin = new System.Windows.Forms.Padding(2);
             this.cbbWLZ.Name = "cbbWLZ";
-            this.cbbWLZ.Size = new System.Drawing.Size(132, 28);
+            this.cbbWLZ.Size = new System.Drawing.Size(132, 25);
             this.cbbWLZ.TabIndex = 95;
             this.cbbWLZ.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.cbbWLZ_KeyPress);
             // 
@@ -286,7 +286,7 @@
             this.cbbWXZ.Location = new System.Drawing.Point(129, 344);
             this.cbbWXZ.Margin = new System.Windows.Forms.Padding(2);
             this.cbbWXZ.Name = "cbbWXZ";
-            this.cbbWXZ.Size = new System.Drawing.Size(132, 28);
+            this.cbbWXZ.Size = new System.Drawing.Size(132, 25);
             this.cbbWXZ.TabIndex = 94;
             // 
             // cbbWCS
@@ -297,7 +297,7 @@
             this.cbbWCS.Location = new System.Drawing.Point(438, 215);
             this.cbbWCS.Margin = new System.Windows.Forms.Padding(2);
             this.cbbWCS.Name = "cbbWCS";
-            this.cbbWCS.Size = new System.Drawing.Size(132, 28);
+            this.cbbWCS.Size = new System.Drawing.Size(132, 25);
             this.cbbWCS.TabIndex = 93;
             // 
             // cbbWYP
@@ -308,7 +308,7 @@
             this.cbbWYP.Location = new System.Drawing.Point(129, 215);
             this.cbbWYP.Margin = new System.Windows.Forms.Padding(2);
             this.cbbWYP.Name = "cbbWYP";
-            this.cbbWYP.Size = new System.Drawing.Size(132, 28);
+            this.cbbWYP.Size = new System.Drawing.Size(132, 25);
             this.cbbWYP.TabIndex = 92;
             // 
             // label58
@@ -319,7 +319,7 @@
             this.label58.Location = new System.Drawing.Point(13, 347);
             this.label58.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label58.Name = "label58";
-            this.label58.Size = new System.Drawing.Size(89, 20);
+            this.label58.Size = new System.Drawing.Size(76, 17);
             this.label58.TabIndex = 91;
             this.label58.Text = "校正角度";
             // 
@@ -331,7 +331,7 @@
             this.label50.Location = new System.Drawing.Point(13, 261);
             this.label50.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label50.Name = "label50";
-            this.label50.Size = new System.Drawing.Size(109, 20);
+            this.label50.Size = new System.Drawing.Size(94, 17);
             this.label50.TabIndex = 90;
             this.label50.Text = "拍照电压/V";
             // 
@@ -343,7 +343,7 @@
             this.label54.Location = new System.Drawing.Point(299, 262);
             this.label54.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label54.Name = "label54";
-            this.label54.Size = new System.Drawing.Size(129, 20);
+            this.label54.Size = new System.Drawing.Size(110, 17);
             this.label54.TabIndex = 89;
             this.label54.Text = "拍照放大倍数";
             // 
@@ -355,7 +355,7 @@
             this.label46.Location = new System.Drawing.Point(13, 304);
             this.label46.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label46.Name = "label46";
-            this.label46.Size = new System.Drawing.Size(109, 20);
+            this.label46.Size = new System.Drawing.Size(94, 17);
             this.label46.TabIndex = 88;
             this.label46.Text = "定位电压/V";
             // 
@@ -367,7 +367,7 @@
             this.label42.Location = new System.Drawing.Point(299, 305);
             this.label42.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label42.Name = "label42";
-            this.label42.Size = new System.Drawing.Size(129, 20);
+            this.label42.Size = new System.Drawing.Size(110, 17);
             this.label42.TabIndex = 87;
             this.label42.Text = "定位放大倍数";
             // 
@@ -379,7 +379,7 @@
             this.label38.Location = new System.Drawing.Point(299, 348);
             this.label38.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label38.Name = "label38";
-            this.label38.Size = new System.Drawing.Size(169, 20);
+            this.label38.Size = new System.Drawing.Size(144, 17);
             this.label38.TabIndex = 86;
             this.label38.Text = "拉直操作放大倍数";
             // 
@@ -388,10 +388,10 @@
             this.chkWIsP.AutoSize = true;
             this.chkWIsP.Font = new System.Drawing.Font("宋体", 10F);
             this.chkWIsP.ForeColor = System.Drawing.Color.LightGray;
-            this.chkWIsP.Location = new System.Drawing.Point(247, 181);
+            this.chkWIsP.Location = new System.Drawing.Point(130, 181);
             this.chkWIsP.Margin = new System.Windows.Forms.Padding(2);
             this.chkWIsP.Name = "chkWIsP";
-            this.chkWIsP.Size = new System.Drawing.Size(95, 24);
+            this.chkWIsP.Size = new System.Drawing.Size(81, 21);
             this.chkWIsP.TabIndex = 85;
             this.chkWIsP.Text = "仅拍照";
             this.chkWIsP.UseVisualStyleBackColor = true;
@@ -405,7 +405,7 @@
             this.label48.Location = new System.Drawing.Point(13, 218);
             this.label48.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label48.Name = "label48";
-            this.label48.Size = new System.Drawing.Size(89, 20);
+            this.label48.Size = new System.Drawing.Size(76, 17);
             this.label48.TabIndex = 81;
             this.label48.Text = "样品类型";
             // 
@@ -417,7 +417,7 @@
             this.label56.Location = new System.Drawing.Point(299, 219);
             this.label56.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label56.Name = "label56";
-            this.label56.Size = new System.Drawing.Size(49, 20);
+            this.label56.Size = new System.Drawing.Size(42, 17);
             this.label56.TabIndex = 80;
             this.label56.Text = "厂商";
             // 
@@ -429,7 +429,7 @@
             this.label59.Location = new System.Drawing.Point(13, 147);
             this.label59.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label59.Name = "label59";
-            this.label59.Size = new System.Drawing.Size(119, 20);
+            this.label59.Size = new System.Drawing.Size(103, 17);
             this.label59.TabIndex = 79;
             this.label59.Text = "FIB文件名称";
             // 
@@ -441,7 +441,7 @@
             this.label61.Location = new System.Drawing.Point(13, 105);
             this.label61.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label61.Name = "label61";
-            this.label61.Size = new System.Drawing.Size(109, 20);
+            this.label61.Size = new System.Drawing.Size(94, 17);
             this.label61.TabIndex = 78;
             this.label61.Text = "PT文件名称";
             // 
@@ -450,10 +450,10 @@
             this.chkWPT.AutoSize = true;
             this.chkWPT.Font = new System.Drawing.Font("宋体", 10F);
             this.chkWPT.ForeColor = System.Drawing.Color.LightGray;
-            this.chkWPT.Location = new System.Drawing.Point(351, 181);
+            this.chkWPT.Location = new System.Drawing.Point(234, 181);
             this.chkWPT.Margin = new System.Windows.Forms.Padding(2);
             this.chkWPT.Name = "chkWPT";
-            this.chkWPT.Size = new System.Drawing.Size(95, 24);
+            this.chkWPT.Size = new System.Drawing.Size(82, 21);
             this.chkWPT.TabIndex = 77;
             this.chkWPT.Text = "使用PT";
             this.chkWPT.UseVisualStyleBackColor = true;
@@ -478,7 +478,7 @@
             this.txtWFIBF.Location = new System.Drawing.Point(129, 142);
             this.txtWFIBF.Name = "txtWFIBF";
             this.txtWFIBF.ReadOnly = true;
-            this.txtWFIBF.Size = new System.Drawing.Size(346, 30);
+            this.txtWFIBF.Size = new System.Drawing.Size(346, 27);
             this.txtWFIBF.TabIndex = 103;
             // 
             // pbDelWLZ
@@ -650,7 +650,7 @@
             this.cbbWFIB.Location = new System.Drawing.Point(130, 390);
             this.cbbWFIB.Margin = new System.Windows.Forms.Padding(2);
             this.cbbWFIB.Name = "cbbWFIB";
-            this.cbbWFIB.Size = new System.Drawing.Size(132, 28);
+            this.cbbWFIB.Size = new System.Drawing.Size(132, 25);
             this.cbbWFIB.TabIndex = 114;
             this.cbbWFIB.Visible = false;
             this.cbbWFIB.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.cbbWFIB_KeyPress);
@@ -663,7 +663,7 @@
             this.label2.Location = new System.Drawing.Point(13, 393);
             this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(119, 20);
+            this.label2.Size = new System.Drawing.Size(103, 17);
             this.label2.TabIndex = 113;
             this.label2.Text = "FIB放大倍数";
             this.label2.Visible = false;
@@ -672,9 +672,9 @@
             // 
             this.chkWqxkc.AutoSize = true;
             this.chkWqxkc.ForeColor = System.Drawing.Color.LightGray;
-            this.chkWqxkc.Location = new System.Drawing.Point(129, 181);
+            this.chkWqxkc.Location = new System.Drawing.Point(336, 181);
             this.chkWqxkc.Name = "chkWqxkc";
-            this.chkWqxkc.Size = new System.Drawing.Size(115, 24);
+            this.chkWqxkc.Size = new System.Drawing.Size(98, 21);
             this.chkWqxkc.TabIndex = 115;
             this.chkWqxkc.Text = "倾斜观测";
             this.chkWqxkc.UseVisualStyleBackColor = true;
@@ -688,7 +688,7 @@
             this.label3.Location = new System.Drawing.Point(299, 393);
             this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(149, 20);
+            this.label3.Size = new System.Drawing.Size(129, 17);
             this.label3.TabIndex = 116;
             this.label3.Text = "移动Z轴大小/mm";
             this.label3.Visible = false;
@@ -697,7 +697,7 @@
             // 
             this.cbbYDZZDX.Location = new System.Drawing.Point(438, 390);
             this.cbbYDZZDX.Name = "cbbYDZZDX";
-            this.cbbYDZZDX.Size = new System.Drawing.Size(131, 30);
+            this.cbbYDZZDX.Size = new System.Drawing.Size(131, 27);
             this.cbbYDZZDX.TabIndex = 117;
             this.cbbYDZZDX.Visible = false;
             this.cbbYDZZDX.TextChanged += new System.EventHandler(this.cbbYDZZDX_TextChanged);
@@ -732,7 +732,7 @@
             // 
             // UControl_Init
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 20F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 17F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.BackColor = System.Drawing.Color.Black;
             this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;

+ 3 - 0
HOZProject/UserControls/UControl_Init.cs

@@ -889,6 +889,8 @@ namespace HOZProject
         {
             if (chkWIsP.Checked)
             {
+                chkWqxkc.Checked = false;
+                chkWqxkc.Visible = false;
                 chkWPT.Checked = false;
                 chkWPT.Visible = false;
                 label61.Visible = false;
@@ -906,6 +908,7 @@ namespace HOZProject
             }
             else
             {
+                chkWqxkc.Visible = true;
                 chkWPT.Visible = true;
                 label61.Visible = true;
                 label59.Visible = true;

+ 102 - 90
MeasureThread/Measure.cs

@@ -1297,6 +1297,7 @@ namespace MeasureThread
                 arg.Message = "自动对焦失败";
                 arg.State = false;
                 SendMsg("1-6");
+                return false;
             }
             //判断是否停止进程
             if (key_stop)
@@ -1412,6 +1413,7 @@ namespace MeasureThread
                     arg.Message = "自动FIB对焦失败";
                     arg.State = false;
                     SendMsg("1-10");
+                    return false;
                 }
                 //判断是否停止进程
                 if (key_stop)
@@ -1718,18 +1720,18 @@ namespace MeasureThread
             Thread.Sleep(1000);
 
             //增加FIB对焦
-            if (FIBFocus("1-17"))
+            if (FIBFocus("1-20"))
             {
                 arg.Message = "FIB自动对焦完成";
                 arg.State = true;
-                SendMsg("1-17");
+                SendMsg("1-20");
             }
             else
             {
                 LogManager.AddHardwareLog("设置观测点后,自动对焦失败。", true);
                 arg.Message = "自动对焦失败";
                 arg.State = false;
-                SendMsg("1-17");
+                SendMsg("1-20");
 
                 return false;
             }
@@ -1742,12 +1744,12 @@ namespace MeasureThread
             {
                 arg.Message = "FIB切割后拍照失败";
                 arg.State = false;
-                SendMsg("1-20"); 
+                SendMsg("1-21"); 
                 return false;
             }
             arg.State = true;
             arg.Message = "FIB切割后拍照成功";
-            SendMsg("1-20");
+            SendMsg("1-21");
             iSEM.CmdFocusRate();
             cycle_time = iSEM.GetCycleTime();
             Thread.Sleep(Convert.ToInt32(cycle_time) + 1000);
@@ -1763,7 +1765,7 @@ namespace MeasureThread
             {
                 arg.Message = "图像接口参数state返回值为零";
                 arg.State = false;
-                SendMsg("1-21");
+                SendMsg("1-22");
                 if (hand_intervene == 1)
                 {
                     if (DialogResult.Yes != MessageBox.Show("网络参数State返回为0。\n是否继续操作?。", "确认消息", MessageBoxButtons.YesNo))
@@ -1778,7 +1780,7 @@ namespace MeasureThread
             }
             arg.State = true;
             arg.Message = "FIB切割校验成功";
-            SendMsg("1-21");
+            SendMsg("1-22");
             //判断是否停止进程
             if (key_stop)
             {
@@ -1801,12 +1803,12 @@ namespace MeasureThread
             {
                 arg.Message = "SEM模式切换失败";
                 arg.State = false;
-                SendMsg("1-22");
+                SendMsg("1-23");
                 return false;
             }
             arg.State = true;
             arg.Message = "SEM模式切换成功";
-            SendMsg("1-22");
+            SendMsg("1-23");
             arg.Picture_Information.Work_Status = "SEM";
             Thread.Sleep(Convert.ToInt32(cycle_time) + 1000);
             //判断是否停止进程
@@ -1820,46 +1822,25 @@ namespace MeasureThread
             {
                 arg.Message = "电压设置" + m_MsParam.Location_Voltage.ToString("0.0") + "失败";
                 arg.State = false;
-                SendMsg("1-23");
+                SendMsg("1-24");
                 return false;
             }
             if (!iSEM.SetMagnification(m_measureFile.MParam.Location_Magnification/3))
             {
                 arg.Message = "放大" + (m_measureFile.MParam.Location_Magnification / 3).ToString("0.0") + "倍失败";
                 arg.State = false;
-                SendMsg("1-23");
+                SendMsg("1-24");
                 return false;
             }
             arg.State = true;
             arg.Message = "放大" + (m_measureFile.MParam.Location_Magnification/3).ToString("0.0") + "倍成功";
-            SendMsg("1-23");
+            SendMsg("1-24");
             //判断是否停止进程
             if (key_stop)
             {
                 return false;
             }
 
-            //从高倍到低倍不用对焦,这里应该使用程序去判断要不要对焦
-            ////2.控制SEM自动对焦、亮度、对比度-接口,,将自动对焦提出单独函数调用
-            //if (ImageFocus("1-18"))
-            //{
-            //    arg.Message = "自动对焦完成";
-            //    arg.State = true;
-            //    SendMsg("1-18");
-            //}
-            //else
-            //{
-            //    arg.Message = "自动对焦失败";
-            //    arg.State = false;
-            //    SendMsg("1-18");
-            //}
-            //Thread.Sleep(5000);
-            ////判断是否停止进程
-            //if (key_stop)
-            //{
-            //    return false;
-            //}
-
             //3.控制SEM拍照
             String fileName4 = data_path + "\\" + m_cutHoles[m_nWorkHoleNo].HoleName + "_" + (m_MsParam.Location_Magnification/3).ToString("0") + "_" + ImageName4;
             arg.Picture_Information.Picture_FullPath = fileName4;
@@ -1879,12 +1860,12 @@ namespace MeasureThread
             {
                 arg.State = false;
                 arg.Message = "SEM拍照失败";
-                SendMsg("1-24");
+                SendMsg("1-25");
                 return false;
             }
             arg.State = true;
             arg.Message = "SEM拍照成功";
-            SendMsg("1-24");
+            SendMsg("1-25");
             iSEM.CmdFocusRate();
             cycle_time = iSEM.GetCycleTime();
             Thread.Sleep(Convert.ToInt32(cycle_time) + 1000);
@@ -1908,7 +1889,7 @@ namespace MeasureThread
                 {
                     arg.State = false;
                     arg.Message = "移动到新(" + x2.ToString() + "," + y2.ToString() + ")位置失败";
-                    SendMsg("1-25");
+                    SendMsg("1-26");
                     return false;
                 }
                 //判断是否移动完成
@@ -1922,7 +1903,7 @@ namespace MeasureThread
                 }
                 arg.State = true;
                 arg.Message = "移动到新(" + x2.ToString() + "," + y2.ToString() + ")位置失败";
-                SendMsg("1-25");
+                SendMsg("1-26");
 
                 if (hand_intervene == 1)
                 {
@@ -1933,7 +1914,7 @@ namespace MeasureThread
             {
                 arg.Message = "图像接口参数state返回值为零";
                 arg.State = false;
-                SendMsg("1-25");
+                SendMsg("1-26");
                 if (hand_intervene == 1)
                 {
                     if (DialogResult.Yes != MessageBox.Show("网络参数State返回为0。\n是否继续操作?。", "确认消息", MessageBoxButtons.YesNo))
@@ -1952,26 +1933,6 @@ namespace MeasureThread
                 return false;
             }
 
-            //6.验证移动准确性:获取当前SEM中心位置坐标,与客户返回坐标对比,验证是否移动正确
-            //x0 = iSEM.GetStageAtX();
-            //y0 = iSEM.GetStageAtY();
-            //if (Math.Abs(x0 - x1) > fMin && Math.Abs(y0 - y1) > fMin)
-            //{
-            //    arg.Message = "位置校验失败";
-            //    arg.State = false;
-            //    SendMsg("1-21");
-            //    return false;
-            //}
-            //arg.State = true;
-            //arg.Message = "位置校验成功";
-            //SendMsg("1-21");
-
-            ////判断是否停止进程
-            //if (key_stop)
-            //{
-            //    return false;
-            //}
-
             return true;
         }
 
@@ -1989,19 +1950,19 @@ namespace MeasureThread
             {
                 arg.Message = "电压设置" + m_MsParam.Photograph_Voltage.ToString("0.0") + "失败";
                 arg.State = false;
-                SendMsg("1-26");
+                SendMsg("1-27");
                 return false;
             }
             if (!iSEM.SetMagnification(m_MsParam.Photograph_Magnification))
             {
                 arg.Message = "放大倍数调整失败";
                 arg.State = false;
-                SendMsg("1-26");
+                SendMsg("1-27");
                 return false;
             }
             arg.Message = "放大倍数调整成功";
             arg.State = true;
-            SendMsg("1-26");
+            SendMsg("1-27");
             //判断是否停止进程
             if (key_stop)
             {
@@ -2009,17 +1970,18 @@ namespace MeasureThread
             }
 
             //2.控制SEM自动对焦、亮度、对比度-接口
-            if (ImageFocus("1-27"))
+            if (ImageFocus("1-28"))
             {
                 arg.Message = "自动对焦完成";
                 arg.State = true;
-                SendMsg("1-27");
+                SendMsg("1-28");
             }
             else
             {
                 arg.Message = "自动对焦失败";
                 arg.State = false;
-                SendMsg("1-27");
+                SendMsg("1-28");
+                return false;
             }
             //判断是否停止进程
             if (key_stop)
@@ -2031,17 +1993,17 @@ namespace MeasureThread
             float dMag = iSEM.GetMagnification();
             if (dMag > 10000)//需要消像散
             {
-                if (!ImageStig("1-27"))
+                if (!ImageStig("1-28"))
                 {
                     LogManager.AddHardwareLog("拉直操作消像散失败,程序退出。", true);
                     arg.Message = "拉直操作自动消像散失败!";
                     arg.State = false;
-                    SendMsg("1-27");
+                    SendMsg("1-28");
                     return false;
                 }
                 arg.Message = "拉直操作自动消像散成功!";
                 arg.State = true;
-                SendMsg("1-27");
+                SendMsg("1-28");
             }
 
             //3、设置SEM补偿角度
@@ -2051,12 +2013,12 @@ namespace MeasureThread
                 {
                     arg.Message = "设置SEM进行角度补偿" + m_measureFile.MParam.Correction_Angle.ToString("0") + "度失败";
                     arg.State = false;
-                    SendMsg("1-28");
+                    SendMsg("1-29");
                     return false;
                 }
                 arg.State = true;
                 arg.Message = "设置SEM进行角度补偿" + m_measureFile.MParam.Correction_Angle.ToString("0") + "度成功";
-                SendMsg("1-28");
+                SendMsg("1-29");
                 Thread.Sleep(2000);
                 //判断是否停止进程
                 if (key_stop)
@@ -2083,12 +2045,12 @@ namespace MeasureThread
             {
                 arg.Message = "SEM拍照失败";
                 arg.State = false;
-                SendMsg("1-29");
+                SendMsg("1-30");
                 return false;
             }
             arg.State = true;
             arg.Message = "SEM拍照成功";
-            SendMsg("1-29");
+            SendMsg("1-30");
             iSEM.CmdFocusRate();
             cycle_time = iSEM.GetCycleTime();
             Thread.Sleep(Convert.ToInt32(cycle_time) + 1000);
@@ -2116,7 +2078,7 @@ namespace MeasureThread
 
                     arg.State = true;
                     arg.Message = "图像接口返回角度为:" + degree.ToString();
-                    SendMsg("1-30");
+                    SendMsg("1-31");
 
                     if (hand_intervene == 1)
                     {
@@ -2127,7 +2089,7 @@ namespace MeasureThread
                 {
                     arg.Message = "图像接口参数State返回值为零";
                     arg.State = false;
-                    SendMsg("1-30");
+                    SendMsg("1-31");
                     if(hand_intervene == 1)
                     {
                         if (DialogResult.Yes != MessageBox.Show("网络参数State返回为0。\n是否继续操作?。", "确认消息", MessageBoxButtons.YesNo))
@@ -2147,17 +2109,18 @@ namespace MeasureThread
                 }
 
                 //11、自动对焦。与之前操作相同
-                if (ImageFocus("1-31"))
+                if (ImageFocus("1-32"))
                 {
                     arg.Message = "自动对焦完成";
                     arg.State = true;
-                    SendMsg("1-31");
+                    SendMsg("1-32");
                 }
                 else
                 {
                     arg.Message = "自动对焦失败";
                     arg.State = false;
-                    SendMsg("1-31");
+                    SendMsg("1-32");
+                    return false;
                 }
                 //判断是否停止进程
                 if (key_stop)
@@ -2169,17 +2132,17 @@ namespace MeasureThread
                 dMag = iSEM.GetMagnification();
                 if (dMag > 10000)//需要消像散
                 {
-                    if (!ImageStig("1-31"))
+                    if (!ImageStig("1-32"))
                     {
                         LogManager.AddHardwareLog("拉直操作消像散失败,程序退出。", true);
                         arg.Message = "拉直操作自动消像散失败!";
                         arg.State = false;
-                        SendMsg("1-31");
+                        SendMsg("1-32");
                         return false;
                     }
                     arg.Message = "拉直操作自动消像散成功!";
                     arg.State = true;
-                    SendMsg("1-31");
+                    SendMsg("1-32");
                 }
 
                 //12拍照
@@ -2200,13 +2163,13 @@ namespace MeasureThread
                 {
                     arg.Message = "SEM拍照失败";
                     arg.State = false;
-                    SendMsg("1-32");
+                    SendMsg("1-33");
                     return false;
                 }
                 arg.State = true;
                 image18 = fileName6;
                 arg.Message = "SEM拍照成功";
-                SendMsg("1-32");
+                SendMsg("1-33");
                 iSEM.CmdFocusRate();
                 cycle_time = iSEM.GetCycleTime();
                 Thread.Sleep(Convert.ToInt32(cycle_time) + 1000);
@@ -2224,7 +2187,7 @@ namespace MeasureThread
             //14光束复位和Rotation关闭开关
             arg.Message = "光束复位成功";
             arg.State = true;
-            SendMsg("1-34");
+            SendMsg("1-36");
             iSEM.SetTiltAngleOff();
             Thread.Sleep(1000);
             iSEM.SetScanRotationOff();
@@ -2355,12 +2318,12 @@ namespace MeasureThread
                 {
                     arg.Message = "测量尺寸失败";
                     arg.State = false;
-                    SendMsg("1-35");
+                    SendMsg("1-40");
                     return false;
                 }
                 arg.State = true;
                 arg.Message = "测量尺寸成功";
-                SendMsg("1-35");
+                SendMsg("1-40");
             }
             #region 测试程序
             //最后保存测量数据-测量文件、测量状态,m_cutHoles[i].STATE!=MeasureData.CutHole.State.Success.
@@ -2656,11 +2619,11 @@ namespace MeasureThread
                 if (state == 0)
                 {
                     arg.Message = "测量尺寸失败";
-                    SendMsg("1-35");
+                    SendMsg("1-40");
                     return false;
                 }
                 arg.Message = "测量尺寸成功";
-                SendMsg("1-35");
+                SendMsg("1-40");
             }
 
             #region 测试程序
@@ -2717,8 +2680,9 @@ namespace MeasureThread
         public bool OtherHole_Init()
         {
             CutHole currentHole = m_cutHoles[m_nWorkHoleNo];
-            #region 1. 初始化
-            if (m_MsParam.Is_Photograph == false)
+            #region 初始化
+            //1、不只拍照,且不是倾斜观测,则移动T轴
+            if (m_MsParam.Is_Photograph == false && m_MsParam.Title == false)
             {
                 //4. 控制样品台T轴归0,R轴变为坐标1、Z/M轴作为坐标2保存不变
                 if (!iSEM.SetStageGotoT(0))
@@ -2741,7 +2705,31 @@ namespace MeasureThread
                 }  
             }
 
-            //6. 根据光镜坐标控制样品台移动
+            //2、如果是倾斜观测,则移动Z轴
+            if(m_MsParam.Title==true)
+            {
+                //4. 控制样品台T轴归0,R轴变为坐标1、Z/M轴作为坐标2保存不变
+                if (!iSEM.SetStageGotoZ(currentHole.Position.Z - m_MsParam.ZDistance/1000))
+                {
+                    return false;
+                }
+                while (true)
+                {
+                    Thread.Sleep(5000);
+
+                    if (iSEM.GetStageIs() == 0)
+                    {
+                        break;
+                    }
+                }
+                //判断是否停止进程
+                if (key_stop)
+                {
+                    return false;
+                }
+            }
+
+            //3. 根据光镜坐标控制样品台移动
             if (!iSEM.SetStageGotoR(currentHole.Position.R))
             {
                 //SendMsg("移动失败");
@@ -2784,7 +2772,31 @@ namespace MeasureThread
                 return false;
             }
 
-            //7. 控制样品台,调整T轴54度、M/Z/R轴不变
+            //4、倾斜观测时恢复Z轴
+            if (m_MsParam.Title == true)
+            {
+                //4. 控制样品台T轴归0,R轴变为坐标1、Z/M轴作为坐标2保存不变
+                if (!iSEM.SetStageGotoZ(currentHole.Position.Z))
+                {
+                    return false;
+                }
+                while (true)
+                {
+                    Thread.Sleep(5000);
+
+                    if (iSEM.GetStageIs() == 0)
+                    {
+                        break;
+                    }
+                }
+                //判断是否停止进程
+                if (key_stop)
+                {
+                    return false;
+                }
+            }
+
+            //5. 控制样品台,调整T轴54度、M/Z/R轴不变
             if (m_MsParam.Is_Photograph == false)
             {
                 if (!iSEM.SetStageGotoT(54))