Files
wg_cpso/CaeKnowledge/View/ViewCutter.cs

223 lines
5.6 KiB
C#
Raw Normal View History

2026-03-25 18:20:24 +08:00
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;
}*/
}
}