223 lines
5.6 KiB
C#
223 lines
5.6 KiB
C#
|
|
using CaeGlobals;
|
|||
|
|
using CaeKnowledge.Data;
|
|||
|
|
using LiteDB;
|
|||
|
|
using System.ComponentModel;
|
|||
|
|
using System.Runtime.CompilerServices;
|
|||
|
|
|
|||
|
|
namespace CaeKnowledge.View
|
|||
|
|
{
|
|||
|
|
public class ViewCutter : INotifyPropertyChanged
|
|||
|
|
{
|
|||
|
|
private Cutter _cutter;
|
|||
|
|
|
|||
|
|
public ViewCutter()
|
|||
|
|
{
|
|||
|
|
_cutter = new Cutter(ObjectId.NewObjectId());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public ViewCutter(Cutter cutter)
|
|||
|
|
{
|
|||
|
|
_cutter = cutter;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public Cutter GetBase()
|
|||
|
|
{
|
|||
|
|
return _cutter;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[Browsable(false)]
|
|||
|
|
public ObjectId Id => _cutter.Id;
|
|||
|
|
|
|||
|
|
[Category("1一般信息")]
|
|||
|
|
[OrderedDisplayName(0, 6, @"库号Cid")]
|
|||
|
|
[Description("用于标识刀具的唯一标识符。")]
|
|||
|
|
public string Cid
|
|||
|
|
{
|
|||
|
|
get => _cutter.Cid;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.Cid = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[Category("1一般信息")]
|
|||
|
|
// ReSharper disable once StringLiteralTypo
|
|||
|
|
[OrderedDisplayName(1, 6, "刀具牌号Cn")]
|
|||
|
|
public string Cname
|
|||
|
|
{
|
|||
|
|
get => _cutter.Cname;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.Cname = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 刀具描述
|
|||
|
|
[Category("1一般信息")]
|
|||
|
|
[OrderedDisplayName(2, 6, "刀具描述Desc")]
|
|||
|
|
public string Description
|
|||
|
|
{
|
|||
|
|
get => _cutter.Description;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.Description = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 刀具代码
|
|||
|
|
[Category("1一般信息")]
|
|||
|
|
[OrderedDisplayName(3, 6, "刀具代码Code")]
|
|||
|
|
public string Code
|
|||
|
|
{
|
|||
|
|
get => _cutter.Code;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.Code = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 刀具材料
|
|||
|
|
[Category("1一般信息")]
|
|||
|
|
[OrderedDisplayName(4, 6, "刀具材料Mat")]
|
|||
|
|
public string Material
|
|||
|
|
{
|
|||
|
|
get => _cutter.Material;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.Material = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 刀号T
|
|||
|
|
// 用来标识切削工具在数控编程中的编号,其命名规则一般为T+数字。
|
|||
|
|
[Category("1一般信息")]
|
|||
|
|
[OrderedDisplayName(5, 6, "刀号Num")]
|
|||
|
|
[Description("用来标识切削工具在数控编程中的编号,其命名规则一般为T+数字。")]
|
|||
|
|
public int Number
|
|||
|
|
{
|
|||
|
|
get => _cutter.Number;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.Number = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 刀具直径D
|
|||
|
|
[Category("2刀具尺寸")]
|
|||
|
|
[OrderedDisplayName(0, 6, "刀具直径D")]
|
|||
|
|
public double Diameter
|
|||
|
|
{
|
|||
|
|
get => _cutter.Diameter;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.Diameter = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 刀具长度TL
|
|||
|
|
[Category("2刀具尺寸")]
|
|||
|
|
[OrderedDisplayName(1, 6, "刀具长度TL")]
|
|||
|
|
public double ToolLength
|
|||
|
|
{
|
|||
|
|
get => _cutter.ToolLength;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.ToolLength = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 刃长FL
|
|||
|
|
[Category("2刀具尺寸")]
|
|||
|
|
[OrderedDisplayName(2, 6, "刃长FL")]
|
|||
|
|
public double FluteLength
|
|||
|
|
{
|
|||
|
|
get => _cutter.FluteLength;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.FluteLength = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 刀刃数F
|
|||
|
|
[Category("2刀具尺寸")]
|
|||
|
|
[OrderedDisplayName(3, 6, "刀刃数F")]
|
|||
|
|
public int Flute
|
|||
|
|
{
|
|||
|
|
get => _cutter.Flute;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.Flute = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 刀具螺旋角HA
|
|||
|
|
[Category("2刀具尺寸")]
|
|||
|
|
[OrderedDisplayName(4, 6, "刀具螺旋角HA")]
|
|||
|
|
public double HelixAngle
|
|||
|
|
{
|
|||
|
|
get => _cutter.HelixAngle;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.HelixAngle = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 刀具螺旋角HA
|
|||
|
|
[Category("2刀具尺寸")]
|
|||
|
|
[OrderedDisplayName(5, 6, "环形刀圆角半径")]
|
|||
|
|
public double ArcRadius
|
|||
|
|
{
|
|||
|
|
get => _cutter.ArcRadius;
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_cutter.ArcRadius = value;
|
|||
|
|
OnPropertyChanged();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public bool IsValid()
|
|||
|
|
{
|
|||
|
|
return !Cid.IsNullOrEmptyOrWhiteSpace();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|||
|
|
|
|||
|
|
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|||
|
|
{
|
|||
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
public ViewCutter DeepClone()
|
|||
|
|
{
|
|||
|
|
Cutter cutter = _cutter;
|
|||
|
|
return new ViewCutter(cutter);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void Clone(ViewCutter vc)
|
|||
|
|
{
|
|||
|
|
PartId = vc.PartId;
|
|||
|
|
PartName = vc.PartName;
|
|||
|
|
Description = vc.Description;
|
|||
|
|
Code = vc.Code;
|
|||
|
|
Material = vc.Material;
|
|||
|
|
Number = vc.Number;
|
|||
|
|
Diameter = vc.Diameter;
|
|||
|
|
ToolLength = vc.ToolLength;
|
|||
|
|
FluteLength = vc.FluteLength;
|
|||
|
|
Flute = vc.Flute;
|
|||
|
|
HelixAngle = vc.HelixAngle;
|
|||
|
|
}*/
|
|||
|
|
}
|
|||
|
|
}
|