浏览代码

Merge branch 'Release2.3' of http://36.129.163.148:10080/gaoshipeng/OTS2_0 into Release2.3

zhangjiaxin 3 年之前
父节点
当前提交
cfc6fcc485

+ 5 - 0
OTSCPP/OTSClrInterface/ClassificationClr/OTSClassifyEngineClr.cpp

@@ -27,6 +27,11 @@ namespace OTSCLRINTERFACE {
 			break;
 		}
 	}
+	bool COTSClassifyEngineClr::ReloadEngineDB()
+	{
+		return engine->Init();
+	
+	}
 
 
 

+ 2 - 0
OTSCPP/OTSClrInterface/ClassificationClr/OTSClassifyEngineClr.h

@@ -21,6 +21,8 @@ namespace OTSCLRINTERFACE {
 	public:
 		COTSClassifyEngineClr(EngineType engineType, System::String^ libFileName);
 
+		bool ReloadEngineDB();
+
 
 
 		bool Classify(COTSParticleClr^ particle);//

+ 3 - 3
OTSIncAMeasureApp/0-OTSModel/Measure/1-OTSInclution/SmplMeasureInclution.cs

@@ -43,7 +43,7 @@ namespace OTSModelSharp
             curFldData.SemPos = semPos;
            
             //first step:remove background of the bse image and compound all the finded particles.
-            COTSXRayParam pXRayParam = m_Sample.GetMsrParams().GetXRayParam();
+          
             log.Info("Begin to process image and get all particles!");
             GetOriginalParticles();
             
@@ -51,8 +51,8 @@ namespace OTSModelSharp
             log.Info("Begin to filter particles!");
             FilterParticles();
 
-            
-      
+            COTSXRayParam pXRayParam = m_Sample.GetMsrParams().GetXRayParam();
+
             if (pXRayParam.GetUsingXray() == true)
             {
                 Thread.Sleep(100);

+ 1 - 1
OTSIncAMeasureApp/0-OTSModel/OTSDataType/CSampleParam.cs

@@ -24,7 +24,7 @@ namespace OTSDataType
 
         public CSpecialGrayRangeParam GetSpecialGrayRangeParam()
         {
-            m_specialGrayRangeParam.LoadParam();
+          
             return m_specialGrayRangeParam;
         }
 

+ 128 - 81
OTSIncAMeasureApp/7-OTSProgMgrInfo/Stage/DlgStageEdit.Designer.cs

@@ -67,6 +67,7 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             this.button_DelHole = new System.Windows.Forms.Button();
             this.groupBox3 = new System.Windows.Forms.GroupBox();
             this.button_Ok = new System.Windows.Forms.Button();
+            this.helpProvider1 = new System.Windows.Forms.HelpProvider();
             ((System.ComponentModel.ISupportInitialize)(this.m_ctrlStagePicture)).BeginInit();
             this.groupBox1.SuspendLayout();
             this.groupBox2.SuspendLayout();
@@ -77,44 +78,49 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             // m_ctrlStagePicture
             // 
             this.m_ctrlStagePicture.BackColor = System.Drawing.Color.White;
-            this.m_ctrlStagePicture.Location = new System.Drawing.Point(831, 14);
-            this.m_ctrlStagePicture.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.m_ctrlStagePicture.Location = new System.Drawing.Point(554, 10);
+            this.m_ctrlStagePicture.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
             this.m_ctrlStagePicture.Name = "m_ctrlStagePicture";
-            this.m_ctrlStagePicture.Size = new System.Drawing.Size(916, 848);
+            this.m_ctrlStagePicture.Size = new System.Drawing.Size(610, 566);
             this.m_ctrlStagePicture.TabIndex = 2;
             this.m_ctrlStagePicture.TabStop = false;
+            this.m_ctrlStagePicture.Paint += new System.Windows.Forms.PaintEventHandler(this.m_ctrlStagePicture_Paint);
             // 
             // label1
             // 
             this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(26, 15);
+            this.label1.Location = new System.Drawing.Point(18, 11);
+            this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(116, 18);
+            this.label1.Size = new System.Drawing.Size(77, 12);
             this.label1.TabIndex = 3;
             this.label1.Text = "样品台名称:";
             // 
             // tStageName
             // 
-            this.tStageName.Location = new System.Drawing.Point(148, 12);
+            this.tStageName.Location = new System.Drawing.Point(98, 8);
+            this.tStageName.Margin = new System.Windows.Forms.Padding(2);
             this.tStageName.Name = "tStageName";
-            this.tStageName.Size = new System.Drawing.Size(664, 28);
+            this.tStageName.Size = new System.Drawing.Size(444, 21);
             this.tStageName.TabIndex = 4;
             // 
             // label2
             // 
             this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(26, 64);
+            this.label2.Location = new System.Drawing.Point(18, 42);
+            this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(98, 18);
+            this.label2.Size = new System.Drawing.Size(65, 12);
             this.label2.TabIndex = 5;
             this.label2.Text = "坐标系统:";
             // 
             // radioButton_OTS
             // 
             this.radioButton_OTS.AutoSize = true;
-            this.radioButton_OTS.Location = new System.Drawing.Point(148, 64);
+            this.radioButton_OTS.Location = new System.Drawing.Point(98, 42);
+            this.radioButton_OTS.Margin = new System.Windows.Forms.Padding(2);
             this.radioButton_OTS.Name = "radioButton_OTS";
-            this.radioButton_OTS.Size = new System.Drawing.Size(132, 22);
+            this.radioButton_OTS.Size = new System.Drawing.Size(89, 16);
             this.radioButton_OTS.TabIndex = 6;
             this.radioButton_OTS.TabStop = true;
             this.radioButton_OTS.Text = "OTS坐标系统";
@@ -123,9 +129,10 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             // radioButton_SEM
             // 
             this.radioButton_SEM.AutoSize = true;
-            this.radioButton_SEM.Location = new System.Drawing.Point(314, 64);
+            this.radioButton_SEM.Location = new System.Drawing.Point(210, 42);
+            this.radioButton_SEM.Margin = new System.Windows.Forms.Padding(2);
             this.radioButton_SEM.Name = "radioButton_SEM";
-            this.radioButton_SEM.Size = new System.Drawing.Size(132, 22);
+            this.radioButton_SEM.Size = new System.Drawing.Size(89, 16);
             this.radioButton_SEM.TabIndex = 10;
             this.radioButton_SEM.TabStop = true;
             this.radioButton_SEM.Text = "SEM坐标系统";
@@ -135,9 +142,10 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             // label3
             // 
             this.label3.AutoSize = true;
-            this.label3.Location = new System.Drawing.Point(20, 38);
+            this.label3.Location = new System.Drawing.Point(14, 26);
+            this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(152, 18);
+            this.label3.Size = new System.Drawing.Size(101, 12);
             this.label3.TabIndex = 8;
             this.label3.Text = "样品台边框形状:";
             // 
@@ -155,92 +163,104 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             this.groupBox1.Controls.Add(this.radioButton_BoundarySquare);
             this.groupBox1.Controls.Add(this.radioButton_BoundaryCircle);
             this.groupBox1.Controls.Add(this.label3);
-            this.groupBox1.Location = new System.Drawing.Point(6, 92);
+            this.groupBox1.Location = new System.Drawing.Point(4, 62);
+            this.groupBox1.Margin = new System.Windows.Forms.Padding(2);
             this.groupBox1.Name = "groupBox1";
-            this.groupBox1.Size = new System.Drawing.Size(806, 171);
+            this.groupBox1.Padding = new System.Windows.Forms.Padding(2);
+            this.groupBox1.Size = new System.Drawing.Size(538, 114);
             this.groupBox1.TabIndex = 12;
             this.groupBox1.TabStop = false;
             this.groupBox1.Text = "样品台边框";
             // 
             // tBoundaryHeight
             // 
-            this.tBoundaryHeight.Location = new System.Drawing.Point(534, 114);
+            this.tBoundaryHeight.Location = new System.Drawing.Point(356, 76);
+            this.tBoundaryHeight.Margin = new System.Windows.Forms.Padding(2);
             this.tBoundaryHeight.Name = "tBoundaryHeight";
-            this.tBoundaryHeight.Size = new System.Drawing.Size(122, 28);
+            this.tBoundaryHeight.Size = new System.Drawing.Size(82, 21);
             this.tBoundaryHeight.TabIndex = 19;
             // 
             // label8
             // 
             this.label8.AutoSize = true;
-            this.label8.Location = new System.Drawing.Point(448, 117);
+            this.label8.Location = new System.Drawing.Point(298, 78);
+            this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label8.Name = "label8";
-            this.label8.Size = new System.Drawing.Size(62, 18);
+            this.label8.Size = new System.Drawing.Size(41, 12);
             this.label8.TabIndex = 18;
             this.label8.Text = "高度:";
             // 
             // tBoundaryWide
             // 
-            this.tBoundaryWide.Location = new System.Drawing.Point(534, 70);
+            this.tBoundaryWide.Location = new System.Drawing.Point(356, 46);
+            this.tBoundaryWide.Margin = new System.Windows.Forms.Padding(2);
             this.tBoundaryWide.Name = "tBoundaryWide";
-            this.tBoundaryWide.Size = new System.Drawing.Size(122, 28);
+            this.tBoundaryWide.Size = new System.Drawing.Size(82, 21);
             this.tBoundaryWide.TabIndex = 17;
             // 
             // label7
             // 
             this.label7.AutoSize = true;
-            this.label7.Location = new System.Drawing.Point(448, 74);
+            this.label7.Location = new System.Drawing.Point(298, 50);
+            this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label7.Name = "label7";
-            this.label7.Size = new System.Drawing.Size(62, 18);
+            this.label7.Size = new System.Drawing.Size(41, 12);
             this.label7.TabIndex = 16;
             this.label7.Text = "宽度:";
             // 
             // tBoundaryY
             // 
-            this.tBoundaryY.Location = new System.Drawing.Point(226, 114);
+            this.tBoundaryY.Location = new System.Drawing.Point(150, 76);
+            this.tBoundaryY.Margin = new System.Windows.Forms.Padding(2);
             this.tBoundaryY.Name = "tBoundaryY";
-            this.tBoundaryY.Size = new System.Drawing.Size(122, 28);
+            this.tBoundaryY.Size = new System.Drawing.Size(82, 21);
             this.tBoundaryY.TabIndex = 15;
             // 
             // label6
             // 
             this.label6.AutoSize = true;
-            this.label6.Location = new System.Drawing.Point(186, 117);
+            this.label6.Location = new System.Drawing.Point(124, 78);
+            this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label6.Name = "label6";
-            this.label6.Size = new System.Drawing.Size(35, 18);
+            this.label6.Size = new System.Drawing.Size(23, 12);
             this.label6.TabIndex = 14;
             this.label6.Text = "Y:";
             // 
             // tBoundaryX
             // 
-            this.tBoundaryX.Location = new System.Drawing.Point(226, 70);
+            this.tBoundaryX.Location = new System.Drawing.Point(150, 46);
+            this.tBoundaryX.Margin = new System.Windows.Forms.Padding(2);
             this.tBoundaryX.Name = "tBoundaryX";
-            this.tBoundaryX.Size = new System.Drawing.Size(122, 28);
+            this.tBoundaryX.Size = new System.Drawing.Size(82, 21);
             this.tBoundaryX.TabIndex = 13;
             // 
             // label5
             // 
             this.label5.AutoSize = true;
-            this.label5.Location = new System.Drawing.Point(186, 74);
+            this.label5.Location = new System.Drawing.Point(124, 50);
+            this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label5.Name = "label5";
-            this.label5.Size = new System.Drawing.Size(35, 18);
+            this.label5.Size = new System.Drawing.Size(23, 12);
             this.label5.TabIndex = 12;
             this.label5.Text = "X:";
             // 
             // label4
             // 
             this.label4.AutoSize = true;
-            this.label4.Location = new System.Drawing.Point(20, 74);
+            this.label4.Location = new System.Drawing.Point(14, 50);
+            this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label4.Name = "label4";
-            this.label4.Size = new System.Drawing.Size(116, 18);
+            this.label4.Size = new System.Drawing.Size(77, 12);
             this.label4.TabIndex = 11;
             this.label4.Text = "中心点坐标:";
             // 
             // radioButton_BoundarySquare
             // 
             this.radioButton_BoundarySquare.AutoSize = true;
-            this.radioButton_BoundarySquare.Location = new System.Drawing.Point(280, 34);
+            this.radioButton_BoundarySquare.Location = new System.Drawing.Point(186, 22);
+            this.radioButton_BoundarySquare.Margin = new System.Windows.Forms.Padding(2);
             this.radioButton_BoundarySquare.Name = "radioButton_BoundarySquare";
-            this.radioButton_BoundarySquare.Size = new System.Drawing.Size(69, 22);
+            this.radioButton_BoundarySquare.Size = new System.Drawing.Size(47, 16);
             this.radioButton_BoundarySquare.TabIndex = 10;
             this.radioButton_BoundarySquare.TabStop = true;
             this.radioButton_BoundarySquare.Text = "方形";
@@ -250,9 +270,10 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             // radioButton_BoundaryCircle
             // 
             this.radioButton_BoundaryCircle.AutoSize = true;
-            this.radioButton_BoundaryCircle.Location = new System.Drawing.Point(189, 34);
+            this.radioButton_BoundaryCircle.Location = new System.Drawing.Point(126, 22);
+            this.radioButton_BoundaryCircle.Margin = new System.Windows.Forms.Padding(2);
             this.radioButton_BoundaryCircle.Name = "radioButton_BoundaryCircle";
-            this.radioButton_BoundaryCircle.Size = new System.Drawing.Size(69, 22);
+            this.radioButton_BoundaryCircle.Size = new System.Drawing.Size(47, 16);
             this.radioButton_BoundaryCircle.TabIndex = 9;
             this.radioButton_BoundaryCircle.TabStop = true;
             this.radioButton_BoundaryCircle.Text = "圆形";
@@ -273,92 +294,104 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             this.groupBox2.Controls.Add(this.radioButton_StandardsampleSqare);
             this.groupBox2.Controls.Add(this.radioButton_StandardsampleCircle);
             this.groupBox2.Controls.Add(this.label14);
-            this.groupBox2.Location = new System.Drawing.Point(6, 268);
+            this.groupBox2.Location = new System.Drawing.Point(4, 178);
+            this.groupBox2.Margin = new System.Windows.Forms.Padding(2);
             this.groupBox2.Name = "groupBox2";
-            this.groupBox2.Size = new System.Drawing.Size(806, 160);
+            this.groupBox2.Padding = new System.Windows.Forms.Padding(2);
+            this.groupBox2.Size = new System.Drawing.Size(538, 106);
             this.groupBox2.TabIndex = 13;
             this.groupBox2.TabStop = false;
             this.groupBox2.Text = "标样";
             // 
             // tStandardsampleHeight
             // 
-            this.tStandardsampleHeight.Location = new System.Drawing.Point(534, 114);
+            this.tStandardsampleHeight.Location = new System.Drawing.Point(356, 76);
+            this.tStandardsampleHeight.Margin = new System.Windows.Forms.Padding(2);
             this.tStandardsampleHeight.Name = "tStandardsampleHeight";
-            this.tStandardsampleHeight.Size = new System.Drawing.Size(122, 28);
+            this.tStandardsampleHeight.Size = new System.Drawing.Size(82, 21);
             this.tStandardsampleHeight.TabIndex = 19;
             // 
             // label9
             // 
             this.label9.AutoSize = true;
-            this.label9.Location = new System.Drawing.Point(448, 117);
+            this.label9.Location = new System.Drawing.Point(298, 78);
+            this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label9.Name = "label9";
-            this.label9.Size = new System.Drawing.Size(62, 18);
+            this.label9.Size = new System.Drawing.Size(41, 12);
             this.label9.TabIndex = 18;
             this.label9.Text = "高度:";
             // 
             // tStandardsampleWide
             // 
-            this.tStandardsampleWide.Location = new System.Drawing.Point(534, 70);
+            this.tStandardsampleWide.Location = new System.Drawing.Point(356, 46);
+            this.tStandardsampleWide.Margin = new System.Windows.Forms.Padding(2);
             this.tStandardsampleWide.Name = "tStandardsampleWide";
-            this.tStandardsampleWide.Size = new System.Drawing.Size(122, 28);
+            this.tStandardsampleWide.Size = new System.Drawing.Size(82, 21);
             this.tStandardsampleWide.TabIndex = 17;
             // 
             // label10
             // 
             this.label10.AutoSize = true;
-            this.label10.Location = new System.Drawing.Point(448, 74);
+            this.label10.Location = new System.Drawing.Point(298, 50);
+            this.label10.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label10.Name = "label10";
-            this.label10.Size = new System.Drawing.Size(62, 18);
+            this.label10.Size = new System.Drawing.Size(41, 12);
             this.label10.TabIndex = 16;
             this.label10.Text = "宽度:";
             // 
             // tStandardsampleY
             // 
-            this.tStandardsampleY.Location = new System.Drawing.Point(226, 114);
+            this.tStandardsampleY.Location = new System.Drawing.Point(150, 76);
+            this.tStandardsampleY.Margin = new System.Windows.Forms.Padding(2);
             this.tStandardsampleY.Name = "tStandardsampleY";
-            this.tStandardsampleY.Size = new System.Drawing.Size(122, 28);
+            this.tStandardsampleY.Size = new System.Drawing.Size(82, 21);
             this.tStandardsampleY.TabIndex = 15;
             // 
             // label11
             // 
             this.label11.AutoSize = true;
-            this.label11.Location = new System.Drawing.Point(186, 117);
+            this.label11.Location = new System.Drawing.Point(124, 78);
+            this.label11.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label11.Name = "label11";
-            this.label11.Size = new System.Drawing.Size(35, 18);
+            this.label11.Size = new System.Drawing.Size(23, 12);
             this.label11.TabIndex = 14;
             this.label11.Text = "Y:";
             // 
             // tStandardsampleX
             // 
-            this.tStandardsampleX.Location = new System.Drawing.Point(226, 70);
+            this.tStandardsampleX.Location = new System.Drawing.Point(150, 46);
+            this.tStandardsampleX.Margin = new System.Windows.Forms.Padding(2);
             this.tStandardsampleX.Name = "tStandardsampleX";
-            this.tStandardsampleX.Size = new System.Drawing.Size(122, 28);
+            this.tStandardsampleX.Size = new System.Drawing.Size(82, 21);
             this.tStandardsampleX.TabIndex = 13;
             // 
             // label12
             // 
             this.label12.AutoSize = true;
-            this.label12.Location = new System.Drawing.Point(186, 74);
+            this.label12.Location = new System.Drawing.Point(124, 50);
+            this.label12.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label12.Name = "label12";
-            this.label12.Size = new System.Drawing.Size(35, 18);
+            this.label12.Size = new System.Drawing.Size(23, 12);
             this.label12.TabIndex = 12;
             this.label12.Text = "X:";
             // 
             // label13
             // 
             this.label13.AutoSize = true;
-            this.label13.Location = new System.Drawing.Point(20, 74);
+            this.label13.Location = new System.Drawing.Point(14, 50);
+            this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label13.Name = "label13";
-            this.label13.Size = new System.Drawing.Size(116, 18);
+            this.label13.Size = new System.Drawing.Size(77, 12);
             this.label13.TabIndex = 11;
             this.label13.Text = "中心点坐标:";
             // 
             // radioButton_StandardsampleSqare
             // 
             this.radioButton_StandardsampleSqare.AutoSize = true;
-            this.radioButton_StandardsampleSqare.Location = new System.Drawing.Point(280, 34);
+            this.radioButton_StandardsampleSqare.Location = new System.Drawing.Point(186, 22);
+            this.radioButton_StandardsampleSqare.Margin = new System.Windows.Forms.Padding(2);
             this.radioButton_StandardsampleSqare.Name = "radioButton_StandardsampleSqare";
-            this.radioButton_StandardsampleSqare.Size = new System.Drawing.Size(69, 22);
+            this.radioButton_StandardsampleSqare.Size = new System.Drawing.Size(47, 16);
             this.radioButton_StandardsampleSqare.TabIndex = 10;
             this.radioButton_StandardsampleSqare.TabStop = true;
             this.radioButton_StandardsampleSqare.Text = "方形";
@@ -368,9 +401,10 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             // radioButton_StandardsampleCircle
             // 
             this.radioButton_StandardsampleCircle.AutoSize = true;
-            this.radioButton_StandardsampleCircle.Location = new System.Drawing.Point(189, 34);
+            this.radioButton_StandardsampleCircle.Location = new System.Drawing.Point(126, 22);
+            this.radioButton_StandardsampleCircle.Margin = new System.Windows.Forms.Padding(2);
             this.radioButton_StandardsampleCircle.Name = "radioButton_StandardsampleCircle";
-            this.radioButton_StandardsampleCircle.Size = new System.Drawing.Size(69, 22);
+            this.radioButton_StandardsampleCircle.Size = new System.Drawing.Size(47, 16);
             this.radioButton_StandardsampleCircle.TabIndex = 9;
             this.radioButton_StandardsampleCircle.TabStop = true;
             this.radioButton_StandardsampleCircle.Text = "圆形";
@@ -380,17 +414,19 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             // label14
             // 
             this.label14.AutoSize = true;
-            this.label14.Location = new System.Drawing.Point(20, 38);
+            this.label14.Location = new System.Drawing.Point(14, 26);
+            this.label14.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label14.Name = "label14";
-            this.label14.Size = new System.Drawing.Size(98, 18);
+            this.label14.Size = new System.Drawing.Size(65, 12);
             this.label14.TabIndex = 8;
             this.label14.Text = "标样形状:";
             // 
             // button_Generate
             // 
-            this.button_Generate.Location = new System.Drawing.Point(831, 876);
+            this.button_Generate.Location = new System.Drawing.Point(554, 584);
+            this.button_Generate.Margin = new System.Windows.Forms.Padding(2);
             this.button_Generate.Name = "button_Generate";
-            this.button_Generate.Size = new System.Drawing.Size(699, 44);
+            this.button_Generate.Size = new System.Drawing.Size(466, 30);
             this.button_Generate.TabIndex = 16;
             this.button_Generate.Text = "生成";
             this.button_Generate.UseVisualStyleBackColor = true;
@@ -404,22 +440,24 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             this.dataGridView_Holes.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
             this.dataGridView_Holes.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
             this.dataGridView_Holes.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.dataGridView_Holes.Location = new System.Drawing.Point(3, 24);
+            this.dataGridView_Holes.Location = new System.Drawing.Point(2, 16);
+            this.dataGridView_Holes.Margin = new System.Windows.Forms.Padding(2);
             this.dataGridView_Holes.Name = "dataGridView_Holes";
             this.dataGridView_Holes.RowHeadersVisible = false;
             this.dataGridView_Holes.RowHeadersWidth = 62;
             this.dataGridView_Holes.RowTemplate.Height = 20;
             this.dataGridView_Holes.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
-            this.dataGridView_Holes.Size = new System.Drawing.Size(772, 467);
+            this.dataGridView_Holes.Size = new System.Drawing.Size(514, 312);
             this.dataGridView_Holes.TabIndex = 17;
             this.dataGridView_Holes.CurrentCellChanged += new System.EventHandler(this.dataGridView_Holes_CurrentCellChanged);
             this.dataGridView_Holes.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dataGridView_Holes_Scroll);
             // 
             // button_AddHole
             // 
-            this.button_AddHole.Location = new System.Drawing.Point(788, 454);
+            this.button_AddHole.Location = new System.Drawing.Point(526, 302);
+            this.button_AddHole.Margin = new System.Windows.Forms.Padding(2);
             this.button_AddHole.Name = "button_AddHole";
-            this.button_AddHole.Size = new System.Drawing.Size(34, 128);
+            this.button_AddHole.Size = new System.Drawing.Size(22, 86);
             this.button_AddHole.TabIndex = 18;
             this.button_AddHole.Text = "增加样品孔";
             this.button_AddHole.UseVisualStyleBackColor = true;
@@ -427,9 +465,10 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             // 
             // button_DelHole
             // 
-            this.button_DelHole.Location = new System.Drawing.Point(788, 586);
+            this.button_DelHole.Location = new System.Drawing.Point(526, 390);
+            this.button_DelHole.Margin = new System.Windows.Forms.Padding(2);
             this.button_DelHole.Name = "button_DelHole";
-            this.button_DelHole.Size = new System.Drawing.Size(34, 128);
+            this.button_DelHole.Size = new System.Drawing.Size(22, 86);
             this.button_DelHole.TabIndex = 19;
             this.button_DelHole.Text = "删除样品孔";
             this.button_DelHole.UseVisualStyleBackColor = true;
@@ -438,9 +477,11 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             // groupBox3
             // 
             this.groupBox3.Controls.Add(this.dataGridView_Holes);
-            this.groupBox3.Location = new System.Drawing.Point(6, 430);
+            this.groupBox3.Location = new System.Drawing.Point(4, 286);
+            this.groupBox3.Margin = new System.Windows.Forms.Padding(2);
             this.groupBox3.Name = "groupBox3";
-            this.groupBox3.Size = new System.Drawing.Size(778, 494);
+            this.groupBox3.Padding = new System.Windows.Forms.Padding(2);
+            this.groupBox3.Size = new System.Drawing.Size(518, 330);
             this.groupBox3.TabIndex = 20;
             this.groupBox3.TabStop = false;
             this.groupBox3.Text = "样品孔信息:";
@@ -448,9 +489,10 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             // button_Ok
             // 
             this.button_Ok.Enabled = false;
-            this.button_Ok.Location = new System.Drawing.Point(1570, 876);
+            this.button_Ok.Location = new System.Drawing.Point(1046, 584);
+            this.button_Ok.Margin = new System.Windows.Forms.Padding(2);
             this.button_Ok.Name = "button_Ok";
-            this.button_Ok.Size = new System.Drawing.Size(177, 44);
+            this.button_Ok.Size = new System.Drawing.Size(118, 30);
             this.button_Ok.TabIndex = 21;
             this.button_Ok.Text = "保存";
             this.button_Ok.UseVisualStyleBackColor = true;
@@ -458,9 +500,9 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             // 
             // DlgStageEdit
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(144F, 144F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
-            this.ClientSize = new System.Drawing.Size(1755, 927);
+            this.ClientSize = new System.Drawing.Size(1170, 618);
             this.Controls.Add(this.button_Ok);
             this.Controls.Add(this.button_DelHole);
             this.Controls.Add(this.groupBox3);
@@ -474,16 +516,20 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             this.Controls.Add(this.tStageName);
             this.Controls.Add(this.label1);
             this.Controls.Add(this.m_ctrlStagePicture);
+            this.HelpButton = true;
+            this.Margin = new System.Windows.Forms.Padding(2);
             this.MaximizeBox = false;
-            this.MaximumSize = new System.Drawing.Size(1777, 983);
+            this.MaximumSize = new System.Drawing.Size(1190, 669);
             this.MinimizeBox = false;
-            this.MinimumSize = new System.Drawing.Size(1274, 678);
+            this.MinimumSize = new System.Drawing.Size(855, 466);
             this.Name = "DlgStageEdit";
             this.ShowIcon = false;
             this.ShowInTaskbar = false;
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
             this.Text = "DlgStageEdit";
+            this.HelpButtonClicked += new System.ComponentModel.CancelEventHandler(this.DlgStageEdit_HelpButtonClicked);
             this.Load += new System.EventHandler(this.DlgStageEdit_Load);
+            this.Paint += new System.Windows.Forms.PaintEventHandler(this.DlgStageEdit_Paint);
             ((System.ComponentModel.ISupportInitialize)(this.m_ctrlStagePicture)).EndInit();
             this.groupBox1.ResumeLayout(false);
             this.groupBox1.PerformLayout();
@@ -536,5 +582,6 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
         private System.Windows.Forms.Button button_DelHole;
         private System.Windows.Forms.GroupBox groupBox3;
         private System.Windows.Forms.Button button_Ok;
+        private System.Windows.Forms.HelpProvider helpProvider1;
     }
 }

+ 34 - 2
OTSIncAMeasureApp/7-OTSProgMgrInfo/Stage/DlgStageEdit.cs

@@ -54,6 +54,22 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             {
                 LoadStageData(m_pStage);
             }
+            SetHelp();
+            //Object pDC = new Object();
+            //pDC = m_ctrlStagePicture.CreateGraphics();
+            ////消除锯齿
+            //((Graphics)pDC).SmoothingMode = SmoothingMode.AntiAlias;  //图片柔顺模式选择
+            //((Graphics)pDC).InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
+            //((Graphics)pDC).CompositingQuality = CompositingQuality.HighQuality;//再加一点 
+
+
+        }
+        void SetHelp()
+        {
+            helpProvider1.SetHelpString(label1, "样品台名不能为空字串,不能含\',\'字符!");
+            helpProvider1.SetHelpString(groupBox1, "样品台边框行有5个数值参数。形状参数,中心x坐标,中心y坐标,宽度或直径,高度或0");
+            helpProvider1.SetHelpString(groupBox2, "标样信息行有5个数值参数。形状参数,中心x坐标,中心y坐标,宽度或直径,高度或0");
+            helpProvider1.SetHelpString(groupBox3, "样品孔信息行有6个数值参数,1个字符串参数,5个数值参数。1个字符串参数为样品孔名。5个数值参数为形状参数,中心x坐标,中心y坐标,宽度或直径,高度或0。");
         }
         void LoadStageData(CStage cStage)
         {
@@ -388,7 +404,7 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             //draw boundery
             Brush pLTGrayBrush = new SolidBrush(Color.FromArgb(255, 0, 0));
             stageDisplayHelp.DrawStageBoundery(m_pStage, nWidth, nHeight, pDC, PixSize);
-
+            
             ////draw STD
             //Brush pBlackBrush = new SolidBrush(Color.FromArgb(255, 0, 0)); ;
 
@@ -401,7 +417,7 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
 
             // draw ratio
             stageDisplayHelp.DrawRatio(nBounderyWidth, nWidth, nHeight, pDC, (IntPtr)pWnd, rc);
-
+            stageDisplayHelp.DrawXY(pDC, m_ctrlStagePicture.Width, m_ctrlStagePicture.Height, PixSize);
             pLTGrayBrush.Dispose();
             //pBlackBrush.Dispose();
             //pWriteBrush.Dispose();
@@ -479,5 +495,21 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             }
             return true;
         }
+
+        private void m_ctrlStagePicture_Paint(object sender, PaintEventArgs e)
+        {
+
+        }
+
+        private void DlgStageEdit_Paint(object sender, PaintEventArgs e)
+        {
+            //DrawXY(m_ctrlStagePicture);
+        }
+
+        private void DlgStageEdit_HelpButtonClicked(object sender, CancelEventArgs e)
+        {
+            MessageBox.Show("样品台文件说明\n样品台名行只能有一个字符串参数。样品台名不能为空字串,不能含\',\'字符\n样品台边框行有5个数值参数。形状参数,中心x坐标,中心y坐标,宽度或直径,高度或0\n标样信息行有5个数值参数。形状参数,中心x坐标,中心y坐标,宽度或直径,高度或0\n样品孔信息行有6个数值参数,1个字符串参数,5个数值参数。1个字符串参数为样品孔名。5个数值参数为形状参数,中心x坐标,中心y坐标,宽度或直径,高度或0。", "Help",MessageBoxButtons.OK,MessageBoxIcon.Information);
+            Cursor = Cursors.Default;
+        }
     }
 }

+ 3 - 0
OTSIncAMeasureApp/7-OTSProgMgrInfo/Stage/DlgStageEdit.resx

@@ -117,4 +117,7 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <metadata name="helpProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>

+ 134 - 0
OTSIncAMeasureApp/7-OTSProgMgrInfo/Stage/StageDisplayHelp.cs

@@ -300,6 +300,140 @@ namespace OTSMeasureApp._7_OTSProgMgrInfo.Stage
             return pDomain;
         }
 
+        #region   画出X轴与Y轴
+        /// <summary>
+        /// 在任意的panel里画一个坐标,坐标所在的四边形距离panel边50像素
+        /// </summary>
+        /// <param name="pan"></param>
+        public void DrawXY(Object a_pDC, double width,double height, double a_dPixSize)
+        {
+            if (a_pDC == null)
+            {
+                return;
+            }
+            Graphics g = (Graphics)a_pDC;
+
+            //绘制X轴,
+            double ObjectCenterX =  width/ 2;     
+            double ObjectCenterY = height / 2;
+            int X0 = (int)(25000 / a_dPixSize + ObjectCenterX);
+            int Y0 = (int)(0 / a_dPixSize + ObjectCenterY);
+            int X1 = (int)(-25000 / a_dPixSize + ObjectCenterX);
+            int Y1 = (int)(0 / a_dPixSize + ObjectCenterY);
+            Point px1 = new Point(X0, Y0);
+            Point px2 = new Point(X1, Y1);
+            Pen pen = new Pen(Brushes.Green, 1);
+            g.DrawLine(pen, px1, px2);
+            //绘制Y轴
+            int X3 = (int)(0 / a_dPixSize + ObjectCenterX);
+            int Y3 = (int)(25000 / a_dPixSize + ObjectCenterY);
+            int X4 = (int)(0 / a_dPixSize + ObjectCenterX);
+            int Y4 = (int)(-25000 / a_dPixSize + ObjectCenterY);
+            PointF py1 = new PointF(X3, Y3);
+            PointF py2 = new PointF(X4, Y4);
+            g.DrawLine(pen, py1, py2);
+            g.DrawString("0", new Font("宋体 ", 9f), Brushes.Green, new PointF((float)ObjectCenterX - 12, (float)ObjectCenterY + 3));
+            int move = 5,len=10;
+            for (int i = 1; i <= len; i++)    //len等分Y正轴
+            {
+                Point px3 = new Point((int)ObjectCenterX + move, (int)(ObjectCenterY + (-25000 / a_dPixSize) / len * i));
+                Point px4 = new Point((int)ObjectCenterX, (int)(ObjectCenterY + (-25000 / a_dPixSize) / len * i));
+                string sx = ((int)(-(-25000) / len * i)).ToString();
+                g.DrawLine(pen, px3, px4);
+                StringFormat drawFormat = new StringFormat();
+                drawFormat.Alignment = StringAlignment.Far;
+                drawFormat.LineAlignment = StringAlignment.Center;
+                g.DrawString(sx, new Font("宋体", 8f), Brushes.Green, new Point((int)ObjectCenterX - 5, (int)(ObjectCenterY + (-25000 / a_dPixSize) / len * i)), drawFormat);
+            }
+            for (int i = 1; i <= len; i++)    
+            {
+                Point px3 = new Point((int)ObjectCenterX + move, (int)(ObjectCenterY + (25000 / a_dPixSize) / len * i));
+                Point px4 = new Point((int)ObjectCenterX, (int)(ObjectCenterY + (25000 / a_dPixSize) / len * i));
+                string sx = ((int)((-25000) / len * i)).ToString();
+                g.DrawLine(pen, px3, px4);
+                StringFormat drawFormat = new StringFormat();
+                drawFormat.Alignment = StringAlignment.Far;
+                drawFormat.LineAlignment = StringAlignment.Center;
+                g.DrawString(sx, new Font("宋体", 8f), Brushes.Green, new Point((int)ObjectCenterX - 5, (int)(ObjectCenterY + (25000 / a_dPixSize) / len * i)), drawFormat);
+            }
+            for (int i = 1; i <= len; i++)    //len等分X正轴
+            {
+                Point px3 = new Point((int)(ObjectCenterX + (25000 / a_dPixSize) / len * i) , (int)(ObjectCenterY + move));
+                Point px4 = new Point((int)(ObjectCenterX + (25000 / a_dPixSize) / len * i), (int)ObjectCenterY);
+                string sx = ((int)(25000 / len * i)).ToString();
+                g.DrawLine(pen, px3, px4);
+                StringFormat drawFormat = new StringFormat();
+                drawFormat.Alignment = StringAlignment.Far;
+                drawFormat.LineAlignment = StringAlignment.Center;
+                g.DrawString(sx, new Font("宋体", 6f), Brushes.Green, new Point((int)(ObjectCenterX + (25000 / a_dPixSize) / len * i)+5, (int)(ObjectCenterY + 15)), drawFormat);
+            }
+            for (int i = 1; i <= len; i++)
+            {
+                Point px3 = new Point((int)(ObjectCenterX + (-25000 / a_dPixSize) / len * i), (int)(ObjectCenterY + move));
+                Point px4 = new Point((int)(ObjectCenterX + (-25000 / a_dPixSize) / len * i), (int)(ObjectCenterY));
+                string sx = ((int)((-25000) / len * i)).ToString();
+                g.DrawLine(pen, px3, px4);
+                StringFormat drawFormat = new StringFormat();
+                drawFormat.Alignment = StringAlignment.Far;
+                drawFormat.LineAlignment = StringAlignment.Center;
+                g.DrawString(sx, new Font("宋体", 6f), Brushes.Green, new Point((int)(ObjectCenterX + (-25000 / a_dPixSize) / len * i)+5, (int)(ObjectCenterY + 15)), drawFormat);
+            }
 
+            //g.Dispose();
+        }
+        #endregion
+        ///// <summary>
+        ///// 画出Y轴上的分值线,从零开始
+        ///// </summary>
+        ///// <param name="pan"></param>
+        ///// <param name="maxY"></param>
+        ///// <param name="len"></param>
+        //#region   画出Y轴上的分值线,从零开始
+        //public void DrawYLine(PictureBox pan, float maxY, int len)
+        //{
+        //    float move = 50f;
+        //    float LenX = pan.Width - 2 * move;
+        //    float LenY = pan.Height - 2 * move;
+        //    Graphics g = pan.CreateGraphics();
+        //    for (int i = 0; i <= len; i++)    //len等份Y轴
+        //    {
+        //        PointF px1 = new PointF(move, LenY * i / len + move);
+        //        PointF px2 = new PointF(move + 4, LenY * i / len + move);
+        //        string sx = (maxY - maxY * i / len).ToString();
+        //        g.DrawLine(new Pen(Brushes.Black, 2), px1, px2);
+        //        StringFormat drawFormat = new StringFormat();
+        //        drawFormat.Alignment = StringAlignment.Far;
+        //        drawFormat.LineAlignment = StringAlignment.Center;
+        //        g.DrawString(sx, new Font("宋体", 8f), Brushes.Black, new PointF(move / 1.2f, LenY * i / len + move * 1.1f), drawFormat);
+        //    }
+        //    Pen pen = new Pen(Color.Black, 1);
+        //    g.DrawString("Y轴", new Font("宋体 ", 10f), Brushes.Black, new PointF(move / 3, move / 2f));
+        //}
+        //#endregion
+        ///// <summary>
+        ///// 画出X轴上的分值线,从零开始
+        ///// </summary>
+        ///// <param name="pan"></param>
+        ///// <param name="maxX"></param>
+        ///// <param name="len"></param>
+        //#region   画出X轴上的分值线,从零开始
+        //public void DrawXLine(PictureBox pan, float maxX, int len)
+        //{
+        //    float move = 50f;
+        //    float LenX = pan.Width - 2 * move;
+        //    float LenY = pan.Height - 2 * move;
+        //    Graphics g = pan.CreateGraphics();
+        //    for (int i = 1; i <= len; i++)
+        //    {
+        //        PointF py1 = new PointF(LenX * i / len + move, pan.Height - move - 4);
+        //        PointF py2 = new PointF(LenX * i / len + move, pan.Height - move);
+        //        string sy = (maxX * i / len).ToString();
+        //        g.DrawLine(new Pen(Brushes.Black, 2), py1, py2);
+        //        g.DrawString(sy, new Font("宋体", 8f), Brushes.Black, new PointF(LenX * i / len + move, pan.Height - move / 1.1f));
+        //    }
+        //    Pen pen = new Pen(Color.Black, 1);
+        //    g.DrawString("X轴", new Font("宋体 ", 10f), Brushes.Black, new PointF(pan.Width - move / 1.5f, pan.Height - move / 1.5f));
+        //}
+        //#endregion
     }
 }

+ 32 - 3
OTSIncAMeasureApp/OTSIncAMeasureAppForm.cs

@@ -14,6 +14,8 @@ using static OTSDataType.otsdataconst;
 using System.Diagnostics;
 using OTSModelSharp.ServiceInterface;
 using OTSMeasureApp._0_OTSModel.Measure.ParamData;
+using OTSCLRINTERFACE;
+using System.IO;
 
 namespace OTSMeasureApp 
 {
@@ -86,7 +88,7 @@ namespace OTSMeasureApp
 
         // 测量线程当前状态  True: 正在测量;  False: 测量结束 
         public bool MeasureThreadRunFlag { get => m_MsrThreadWrapper.BGWorkThreadIsRunning();  }
-
+        public FileSystemWatcher fileWatcher = new FileSystemWatcher(Application.StartupPath+ @"\Config\SysData");
         public OTSIncAMeasureAppForm()
         {
 
@@ -132,11 +134,23 @@ namespace OTSMeasureApp
             //初始化测量线程
 
             m_MsrThreadWrapper = new CMeasureThreadWrapper(this);//must be the last sentence of this procedure.
+            fileWatcher.Changed += FileWatcher_Changed;
+            fileWatcher.EnableRaisingEvents=true;
         }
 
+        private void FileWatcher_Changed(object sender, FileSystemEventArgs e)
+        {
+            if (e.Name == "SpecialGrayConfig.xml")
+            {
+                m_ProjParam.m_specialRanges.LoadParam();
+                foreach (var s in this.m_ProjData.GetSampleList())
+                {
+                    s.GetMsrParams().GetSpecialGrayRangeParam().LoadParam();
+                }
 
-
-
+            }
+           
+        }
 
         private void OTSIncAMeasureAppForm_Load(object sender, EventArgs e)
         {
@@ -1151,6 +1165,20 @@ namespace OTSMeasureApp
                     log.Error("OTSPartA_STDEditor:" + ex.ToString());
                 }
             }
+            //reload the setup data just now
+            foreach (var s in this.m_ProjData.GetSampleList())
+            {
+               var stdname= s.GetMsrParams().GetSTDName();
+                if (stdname != "NoSTD")
+                {
+                    if (!stdname.Contains(".db"))
+                    {
+                        stdname += ".db";
+                    }
+                    var m_classifyEngine = new COTSClassifyEngineClr(EngineType.ParticleClassifyEng, stdname);
+                    m_classifyEngine.ReloadEngineDB();
+                }
+            }
         }
 
   
@@ -1224,6 +1252,7 @@ namespace OTSMeasureApp
         private void ribbonOrbRecentItem1_Click(object sender, EventArgs e)
         {
             System.Diagnostics.Process.Start("notepad.exe", CSpecialGrayRangeParam.GetParamFileFullName());
+          
         }
     }
 }

+ 2 - 2
OTSSysMgrApp/OTSSysMgrApp.csproj

@@ -96,7 +96,7 @@
     <Prefer32Bit>false</Prefer32Bit>
   </PropertyGroup>
   <PropertyGroup>
-    <ApplicationIcon>OTSSysMgr.ico</ApplicationIcon>
+    <ApplicationIcon>Resources\OTSSysMgr.ico</ApplicationIcon>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
@@ -198,7 +198,7 @@
   </ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="Resources\logo.jpg" />
-    <Content Include="OTSSysMgr.ico" />
+    <Content Include="Resources\OTSSysMgr.ico" />
     <Content Include="XMLData\SystemData.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>