Files
wg_cpso/CaeKnowledge/View/ViewCutter.cs
2026-03-25 18:20:24 +08:00

223 lines
5.6 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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