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; }*/ } }