添加 MX-PD-盘古 项目文件
将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
using MwFramework.ManagerService;
|
||||
using Stylet;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
|
||||
namespace MainShell.Recipe.Models.SubstrateParameter
|
||||
{
|
||||
public class MarkCoordinateGenerationState : PropertyChangedBase, IParameterItem
|
||||
{
|
||||
private int _rows;
|
||||
public int Rows
|
||||
{
|
||||
get { return _rows; }
|
||||
set { SetAndNotify(ref _rows, value); }
|
||||
}
|
||||
|
||||
private int _cols;
|
||||
public int Cols
|
||||
{
|
||||
get { return _cols; }
|
||||
set { SetAndNotify(ref _cols, value); }
|
||||
}
|
||||
|
||||
private double _pitchX;
|
||||
public double PitchX
|
||||
{
|
||||
get { return _pitchX; }
|
||||
set { SetAndNotify(ref _pitchX, value); }
|
||||
}
|
||||
|
||||
private double _pitchY;
|
||||
public double PitchY
|
||||
{
|
||||
get { return _pitchY; }
|
||||
set { SetAndNotify(ref _pitchY, value); }
|
||||
}
|
||||
|
||||
private ObservableCollection<MarkCoordinatePoint> _points = new ObservableCollection<MarkCoordinatePoint>();
|
||||
public ObservableCollection<MarkCoordinatePoint> Points
|
||||
{
|
||||
get { return _points; }
|
||||
set { SetAndNotify(ref _points, value); }
|
||||
}
|
||||
|
||||
public IParameterItem Clone()
|
||||
{
|
||||
return new MarkCoordinateGenerationState
|
||||
{
|
||||
Rows = Rows,
|
||||
Cols = Cols,
|
||||
PitchX = PitchX,
|
||||
PitchY = PitchY,
|
||||
Points = new ObservableCollection<MarkCoordinatePoint>(Points.Select(point => point.Clone() as MarkCoordinatePoint))
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
using MwFramework.ManagerService;
|
||||
using Stylet;
|
||||
|
||||
namespace MainShell.Recipe.Models.SubstrateParameter
|
||||
{
|
||||
public class MarkCoordinatePoint : PropertyChangedBase, IParameterItem
|
||||
{
|
||||
private int _index;
|
||||
public int Index
|
||||
{
|
||||
get { return _index; }
|
||||
set { SetAndNotify(ref _index, value); }
|
||||
}
|
||||
|
||||
private string _pointName;
|
||||
public string PointName
|
||||
{
|
||||
get { return _pointName; }
|
||||
set { SetAndNotify(ref _pointName, value); }
|
||||
}
|
||||
|
||||
private int _row;
|
||||
public int Row
|
||||
{
|
||||
get { return _row; }
|
||||
set { SetAndNotify(ref _row, value); }
|
||||
}
|
||||
|
||||
private int _col;
|
||||
public int Col
|
||||
{
|
||||
get { return _col; }
|
||||
set { SetAndNotify(ref _col, value); }
|
||||
}
|
||||
|
||||
private double _theoryX;
|
||||
public double TheoryX
|
||||
{
|
||||
get { return _theoryX; }
|
||||
set { SetAndNotify(ref _theoryX, value); }
|
||||
}
|
||||
|
||||
private double _theoryY;
|
||||
public double TheoryY
|
||||
{
|
||||
get { return _theoryY; }
|
||||
set { SetAndNotify(ref _theoryY, value); }
|
||||
}
|
||||
|
||||
public IParameterItem Clone()
|
||||
{
|
||||
return new MarkCoordinatePoint
|
||||
{
|
||||
Index = Index,
|
||||
PointName = PointName,
|
||||
Row = Row,
|
||||
Col = Col,
|
||||
TheoryX = TheoryX,
|
||||
TheoryY = TheoryY,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
using MainShell.Models;
|
||||
using MwFramework.ManagerService;
|
||||
using Stylet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MainShell.Recipe.Models.SubstrateParameter
|
||||
{
|
||||
public class MarkData : PropertyChangedBase, IParameterItem
|
||||
{
|
||||
private string _templateName;
|
||||
private bool _isEnabled = true;
|
||||
|
||||
public string TemplateName
|
||||
{
|
||||
get { return _templateName; }
|
||||
set { SetAndNotify(ref _templateName, value); }
|
||||
}
|
||||
|
||||
public bool IsEnabled
|
||||
{
|
||||
get { return _isEnabled; }
|
||||
set { SetAndNotify(ref _isEnabled, value); }
|
||||
}
|
||||
|
||||
private MPoint _basePos;
|
||||
public MPoint BasePos
|
||||
{
|
||||
get { return _basePos; }
|
||||
set { SetAndNotify(ref _basePos, value); }
|
||||
}
|
||||
|
||||
private MPoint _cameraPos;
|
||||
|
||||
public MPoint CameraPos
|
||||
{
|
||||
get { return _cameraPos; }
|
||||
set { SetAndNotify(ref _cameraPos, value); }
|
||||
}
|
||||
|
||||
|
||||
public IParameterItem Clone()
|
||||
{
|
||||
return new MarkData
|
||||
{
|
||||
IsEnabled = this.IsEnabled,
|
||||
TemplateName = this.TemplateName,
|
||||
BasePos = this.BasePos?.Clone(),
|
||||
CameraPos = this.CameraPos?.Clone()
|
||||
} as IParameterItem;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
using MainShell.Models;
|
||||
using Stylet;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace MainShell.Recipe.Models.SubstrateParameter
|
||||
{
|
||||
public enum SubstrateHeightMeasureMode
|
||||
{
|
||||
[Description("标准示教位置")]
|
||||
StandardTeachPosition = 0,
|
||||
|
||||
[Description("行列坐标+偏移补偿")]
|
||||
RowColumnOffset = 1,
|
||||
}
|
||||
|
||||
public class SubstrateHeightMeasurePoint : PropertyChangedBase
|
||||
{
|
||||
private string _pointName;
|
||||
public string PointName
|
||||
{
|
||||
get { return _pointName; }
|
||||
set { SetAndNotify(ref _pointName, value); }
|
||||
}
|
||||
|
||||
private MPoint _teachPosition = new MPoint();
|
||||
public MPoint TeachPosition
|
||||
{
|
||||
get { return _teachPosition; }
|
||||
set { SetAndNotify(ref _teachPosition, value); }
|
||||
}
|
||||
|
||||
private int _rowIndex;
|
||||
public int RowIndex
|
||||
{
|
||||
get { return _rowIndex; }
|
||||
set { SetAndNotify(ref _rowIndex, value); }
|
||||
}
|
||||
|
||||
private int _columnIndex;
|
||||
public int ColumnIndex
|
||||
{
|
||||
get { return _columnIndex; }
|
||||
set { SetAndNotify(ref _columnIndex, value); }
|
||||
}
|
||||
|
||||
private MPoint _offsetCompensation = new MPoint();
|
||||
public MPoint OffsetCompensation
|
||||
{
|
||||
get { return _offsetCompensation; }
|
||||
set { SetAndNotify(ref _offsetCompensation, value); }
|
||||
}
|
||||
}
|
||||
|
||||
public class SubstrateHeightMeasureSetting : PropertyChangedBase
|
||||
{
|
||||
private SubstrateHeightMeasureMode _mode = SubstrateHeightMeasureMode.StandardTeachPosition;
|
||||
public SubstrateHeightMeasureMode Mode
|
||||
{
|
||||
get { return _mode; }
|
||||
set { SetAndNotify(ref _mode, value); }
|
||||
}
|
||||
|
||||
private MPoint _commonOffsetCompensation = new MPoint();
|
||||
public MPoint CommonOffsetCompensation
|
||||
{
|
||||
get { return _commonOffsetCompensation; }
|
||||
set { SetAndNotify(ref _commonOffsetCompensation, value); }
|
||||
}
|
||||
|
||||
private ObservableCollection<SubstrateHeightMeasurePoint> _points = new ObservableCollection<SubstrateHeightMeasurePoint>();
|
||||
public ObservableCollection<SubstrateHeightMeasurePoint> Points
|
||||
{
|
||||
get { return _points; }
|
||||
set { SetAndNotify(ref _points, value); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
using MainShell.Models;
|
||||
using MwFramework.ManagerService;
|
||||
using Stylet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MainShell.Recipe.Models
|
||||
{
|
||||
public class SubstrateInfo : PropertyChangedBase, IParameterItem
|
||||
{
|
||||
private MxSize _substrateSize = new MxSize();
|
||||
|
||||
public MxSize SubstrateSize
|
||||
{
|
||||
get { return _substrateSize; }
|
||||
set { SetAndNotify(ref _substrateSize, value); }
|
||||
}
|
||||
|
||||
private MxSize _padSize;
|
||||
|
||||
public MxSize PadSize
|
||||
{
|
||||
get { return _padSize; }
|
||||
set { SetAndNotify(ref _padSize, value); }
|
||||
}
|
||||
|
||||
|
||||
private double _thickness;
|
||||
|
||||
public double ThickNess
|
||||
{
|
||||
get { return _thickness; }
|
||||
set { SetAndNotify(ref _thickness, value); }
|
||||
}
|
||||
private double _pitchX;
|
||||
|
||||
public double PitchX
|
||||
{
|
||||
get { return _pitchX; }
|
||||
set { SetAndNotify(ref _pitchX, value); }
|
||||
}
|
||||
private double _pitchY;
|
||||
|
||||
public double PitchY
|
||||
{
|
||||
get { return _pitchY; }
|
||||
set { SetAndNotify(ref _pitchY, value); }
|
||||
}
|
||||
private int _rowNumber;
|
||||
|
||||
public int RowNumber
|
||||
{
|
||||
get { return _rowNumber; }
|
||||
set { SetAndNotify(ref _rowNumber, value); }
|
||||
}
|
||||
private int _colNumber;
|
||||
|
||||
public int ColNumber
|
||||
{
|
||||
get { return _colNumber; }
|
||||
set { SetAndNotify(ref _colNumber, value); }
|
||||
}
|
||||
|
||||
private double _recheckPitch;
|
||||
|
||||
public double RecheckPitch
|
||||
{
|
||||
get { return _recheckPitch; }
|
||||
set { SetAndNotify(ref _recheckPitch, value); }
|
||||
}
|
||||
|
||||
public IParameterItem Clone()
|
||||
{
|
||||
// 1. 首先执行浅拷贝,复制所有值类型字段(如 Thickness, PitchX 等)
|
||||
var clone = this.MemberwiseClone() as SubstrateInfo;
|
||||
|
||||
// 2. 手动深拷贝引用类型对象 (MxSize)
|
||||
// 如果不这样做,clone 和原对象将指向内存中的同一个 MxSize 实例
|
||||
if (this.SubstrateSize != null)
|
||||
{
|
||||
clone.SubstrateSize = new MxSize
|
||||
{
|
||||
Width = this.SubstrateSize.Width,
|
||||
Height = this.SubstrateSize.Height
|
||||
};
|
||||
}
|
||||
|
||||
if (this.PadSize != null)
|
||||
{
|
||||
clone.PadSize = new MxSize
|
||||
{
|
||||
Width = this.PadSize.Width,
|
||||
Height = this.PadSize.Height
|
||||
};
|
||||
}
|
||||
|
||||
return clone;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using MainShell.Models;
|
||||
using MwFramework.ManagerService;
|
||||
using Stylet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MainShell.Recipe.Models.SubstrateParameter
|
||||
{
|
||||
public class SubtrateMarkPars : PropertyChangedBase, IParameterItem
|
||||
{
|
||||
public CameraConfig MarkVisionConfig { get; set; } = new CameraConfig();
|
||||
public UpCamLightConfig MarkLightConfig { get; set; } = new UpCamLightConfig();
|
||||
public ObservableCollection<MarkData> MarkDatas { get; set; } = new ObservableCollection<MarkData>();
|
||||
public MarkCoordinateGenerationState CoordinateGenerationState { get; set; } = new MarkCoordinateGenerationState();
|
||||
public IParameterItem Clone()
|
||||
{
|
||||
var clone = this.MemberwiseClone() as SubtrateMarkPars;
|
||||
if (clone != null)
|
||||
{
|
||||
clone.MarkVisionConfig = this.MarkVisionConfig.Clone() as CameraConfig;
|
||||
clone.MarkLightConfig = this.MarkLightConfig.Clone() as UpCamLightConfig;
|
||||
clone.MarkDatas = new ObservableCollection<MarkData>(this.MarkDatas.Select(md => md.Clone() as MarkData));
|
||||
clone.CoordinateGenerationState = this.CoordinateGenerationState?.Clone() as MarkCoordinateGenerationState ?? new MarkCoordinateGenerationState();
|
||||
}
|
||||
return clone;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using Stylet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MainShell.Recipe.Models.SubstrateParameter
|
||||
{
|
||||
public class WaferSelectInfo : PropertyChangedBase
|
||||
{
|
||||
private string _waferRecipeName;
|
||||
|
||||
public string WaferRecipeName
|
||||
{
|
||||
get { return _waferRecipeName; }
|
||||
set { SetAndNotify(ref _waferRecipeName, value); }
|
||||
}
|
||||
private double _offsetX;
|
||||
|
||||
public double OffsetX
|
||||
{
|
||||
get { return _offsetX; }
|
||||
set { SetAndNotify(ref _offsetX, value); }
|
||||
}
|
||||
private double _offsetY;
|
||||
|
||||
public double OffsetY
|
||||
{
|
||||
get { return _offsetY; }
|
||||
set { SetAndNotify(ref _offsetY, value); }
|
||||
}
|
||||
|
||||
private bool _isUse;
|
||||
|
||||
public bool IsUse
|
||||
{
|
||||
get { return _isUse; }
|
||||
set { SetAndNotify(ref _isUse, value); }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user