|
@@ -1,6 +1,6 @@
|
|
|
//时间:20200608
|
|
|
//作者:郝爽
|
|
|
-//功能:测量数据类
|
|
|
+//功能:切割孔
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
@@ -10,155 +10,153 @@ using System.Threading.Tasks;
|
|
|
namespace MeasureData
|
|
|
{
|
|
|
|
|
|
- //六轴坐标系统
|
|
|
- struct SemPosition
|
|
|
+ //PT工序类型
|
|
|
+ enum PTType
|
|
|
{
|
|
|
+ Have,
|
|
|
+ No
|
|
|
+ }
|
|
|
|
|
|
- private float _x, _y, _z, _r, _t, _m;
|
|
|
+ //操作步骤,在操作失败时,反馈的状态
|
|
|
+ enum Operation
|
|
|
+ {
|
|
|
+ Init,
|
|
|
+ PTInsert,
|
|
|
+ GetCutPosition,
|
|
|
+ Cut,
|
|
|
+ PTOut,
|
|
|
+ GetHole,
|
|
|
+ Image,
|
|
|
+ Analysis,
|
|
|
+ Element
|
|
|
+ }
|
|
|
|
|
|
- #region X
|
|
|
- //限定范围
|
|
|
- const float Xmax = 100;
|
|
|
- const float Xmin = 10;
|
|
|
-
|
|
|
- public float X
|
|
|
- {
|
|
|
- get { return this._x; }
|
|
|
- set => this._x = rangeCheckedX(value);
|
|
|
- }
|
|
|
+ //测试结果
|
|
|
+ enum State
|
|
|
+ {
|
|
|
+ Unmeasured,
|
|
|
+ Failed,
|
|
|
+ Success
|
|
|
+ }
|
|
|
|
|
|
- private static float rangeCheckedX(float x)
|
|
|
+ //切割孔
|
|
|
+ class CutHole
|
|
|
+ {
|
|
|
+ #region 样品名
|
|
|
+ /// <summary>
|
|
|
+ /// 样品名
|
|
|
+ /// </summary>
|
|
|
+ private string m_SampleName;
|
|
|
+
|
|
|
+ public string SampleName
|
|
|
{
|
|
|
- if (x > Xmax) x = Xmax;
|
|
|
- else if (x < Xmin) x = Xmin;
|
|
|
-
|
|
|
- return x;
|
|
|
+ get { return this.m_SampleName; }
|
|
|
+ set { this.m_SampleName = value; }
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- #region Y
|
|
|
- //限定范围
|
|
|
- const float Ymax = 100;
|
|
|
- const float Ymin = 10;
|
|
|
-
|
|
|
- public float Y
|
|
|
- {
|
|
|
- get { return this._y; }
|
|
|
- set => this._y = rangeCheckedY(value);
|
|
|
- }
|
|
|
+ #region 坐标位置
|
|
|
+ private SemPosition m_Position;
|
|
|
|
|
|
- private static float rangeCheckedY(float y)
|
|
|
+ public SemPosition Position
|
|
|
{
|
|
|
- if (y > Ymax) y = Ymax;
|
|
|
- else if (y < Ymin) y = Ymin;
|
|
|
-
|
|
|
- return y;
|
|
|
+ get { return this.m_Position; }
|
|
|
+ set { this.m_Position = value; }
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- #region Z
|
|
|
- //限定范围
|
|
|
- const float Zmax = 100;
|
|
|
- const float Zmin = 10;
|
|
|
+ #region 工作条件
|
|
|
|
|
|
- public float Z
|
|
|
- {
|
|
|
- get { return this._z; }
|
|
|
- set => this._z = rangeCheckedZ(value);
|
|
|
- }
|
|
|
+ //是否有pt工序
|
|
|
+ private PTType m_pt;
|
|
|
|
|
|
- private static float rangeCheckedZ(float z)
|
|
|
+ public PTType PT
|
|
|
{
|
|
|
- if (z > Zmax) z = Zmax;
|
|
|
- else if (z < Zmin) z = Zmin;
|
|
|
-
|
|
|
- return z;
|
|
|
+ get { return this.m_pt; }
|
|
|
+ set { this.m_pt = value; }
|
|
|
}
|
|
|
- #endregion
|
|
|
|
|
|
- #region R
|
|
|
- //限定范围
|
|
|
- const float Rmax = 100;
|
|
|
- const float Rmin = 10;
|
|
|
+ //FIB工作模板
|
|
|
+ private string m_fibTemp;
|
|
|
|
|
|
- public float R
|
|
|
+ public string FIBTemp
|
|
|
{
|
|
|
- get { return this._r; }
|
|
|
- set => this._r = rangeCheckedR(value);
|
|
|
+ get { return this.m_fibTemp; }
|
|
|
+ set { this.m_fibTemp = value; }
|
|
|
}
|
|
|
|
|
|
- private static float rangeCheckedR(float r)
|
|
|
- {
|
|
|
- if (r > Rmax) r = Rmax;
|
|
|
- else if (r < Rmin) r = Rmin;
|
|
|
+ //PT工作模板
|
|
|
+ private string m_ptTemp;
|
|
|
|
|
|
- return r;
|
|
|
+ public string PTTemp
|
|
|
+ {
|
|
|
+ get { return this.m_ptTemp; }
|
|
|
+ set { this.m_ptTemp = value; }
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- #region T
|
|
|
- //限定范围
|
|
|
- const float Tmax = 100;
|
|
|
- const float Tmin = 10;
|
|
|
+ #region 工作状态
|
|
|
+ //操作步骤
|
|
|
+ private Operation m_opt;
|
|
|
|
|
|
- public float T
|
|
|
+ public Operation OPT
|
|
|
{
|
|
|
- get { return this._t; }
|
|
|
- set => this._t = rangeCheckedT(value);
|
|
|
+ get { return this.m_opt; }
|
|
|
+ set { this.m_opt = value; }
|
|
|
}
|
|
|
|
|
|
- private static float rangeCheckedT(float t)
|
|
|
- {
|
|
|
- if (t > Tmax) t = Tmax;
|
|
|
- else if (t < Tmin) t = Tmin;
|
|
|
+ //开始时间
|
|
|
+ private DateTime m_start;
|
|
|
|
|
|
- return t;
|
|
|
+ public DateTime START
|
|
|
+ {
|
|
|
+ get { return this.m_start; }
|
|
|
+ set { this.m_start = value; }
|
|
|
}
|
|
|
- #endregion
|
|
|
|
|
|
- #region M
|
|
|
- //限定范围
|
|
|
- const float Mmax = 100;
|
|
|
- const float Mmin = 10;
|
|
|
+ //结束时间
|
|
|
+ private DateTime m_end;
|
|
|
|
|
|
- public float M
|
|
|
+ public DateTime END
|
|
|
{
|
|
|
- get { return this._m; }
|
|
|
- set => this._m = rangeCheckedM(value);
|
|
|
+ get { return this.m_end; }
|
|
|
+ set { this.m_end = value; }
|
|
|
}
|
|
|
|
|
|
- private static float rangeCheckedM(float m)
|
|
|
- {
|
|
|
- if (m > Mmax) m = Mmax;
|
|
|
- else if (m < Mmin) m = Mmin;
|
|
|
+ //测试结果
|
|
|
+ private State m_state;
|
|
|
|
|
|
- return m;
|
|
|
+ public State STATE
|
|
|
+ {
|
|
|
+ get { return this.m_state; }
|
|
|
+ set { this.m_state = value; }
|
|
|
}
|
|
|
- #endregion
|
|
|
- }
|
|
|
|
|
|
- //切割孔
|
|
|
- class CutHole
|
|
|
- {
|
|
|
- #region 样品名
|
|
|
- /// <summary>
|
|
|
- /// 样品名
|
|
|
- /// </summary>
|
|
|
- private string _SampleName;
|
|
|
+ //测量开关
|
|
|
+ private bool m_switch;
|
|
|
|
|
|
- public string SampleName
|
|
|
+ public bool SWITCH
|
|
|
{
|
|
|
- get { return this._SampleName; }
|
|
|
- set { this._SampleName = value; }
|
|
|
+ get { return this.m_switch; }
|
|
|
+ set { this.m_switch = value; }
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- #region 坐标位置
|
|
|
- private SemPosition _Position;
|
|
|
- public SemPosition Position { get; set; }
|
|
|
- #endregion
|
|
|
-
|
|
|
+ //构造函数
|
|
|
+ CutHole()
|
|
|
+ {
|
|
|
+ Init();
|
|
|
+ }
|
|
|
|
|
|
+ //初始化函数
|
|
|
+ private void Init()
|
|
|
+ {
|
|
|
+ //设定初始值
|
|
|
+ m_opt = Operation.Init;
|
|
|
+ m_state = State.Unmeasured;
|
|
|
+ m_switch = false;
|
|
|
+ }
|
|
|
|
|
|
+ //样品孔存储xml文档
|
|
|
}
|
|
|
}
|