fix: 修复EA刀叠板查表直径区间匹配,叠板区改为折叠输入即算
EA刀/短槽刀列按参数表下限区间 [0.60,0.65)/[0.65,0.70)/[0.70,0.75)/>=0.75 匹配,修复 0.706mm 等刀径查表失败;叠板计算改为 Expander 默认收折、移除计算按钮、输入变化自动计算。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -127,7 +127,7 @@ namespace DrillTools
|
||||
set
|
||||
{
|
||||
if (SetProperty(ref _boardThicknessInput, value))
|
||||
UpdateCanCalculate();
|
||||
TryCalculateStackCount();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ namespace DrillTools
|
||||
set
|
||||
{
|
||||
if (SetProperty(ref _copperThicknessInput, value))
|
||||
UpdateCanCalculate();
|
||||
TryCalculateStackCount();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,16 +165,6 @@ namespace DrillTools
|
||||
set => SetProperty(ref _stackCountDetail, value);
|
||||
}
|
||||
|
||||
private bool _canCalculate;
|
||||
/// <summary>
|
||||
/// 是否可以执行计算(板厚和铜厚都已输入有效数字)
|
||||
/// </summary>
|
||||
public bool CanCalculate
|
||||
{
|
||||
get => _canCalculate;
|
||||
set => SetProperty(ref _canCalculate, value);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 叠板计算用最小刀径(不排除 0.749mm)
|
||||
@@ -199,47 +189,40 @@ namespace DrillTools
|
||||
#region 计算方法
|
||||
|
||||
/// <summary>
|
||||
/// 执行叠板计算(由按钮点击转调)
|
||||
/// 输入变化时自动尝试计算叠板数
|
||||
/// 两个输入均有效时计算,否则静默清空结果
|
||||
/// </summary>
|
||||
public void CalculateStackCount()
|
||||
private void TryCalculateStackCount()
|
||||
{
|
||||
// 解析输入
|
||||
if (!double.TryParse(BoardThicknessInput, out double boardThickness) ||
|
||||
!double.TryParse(CopperThicknessInput, out double copperThickness))
|
||||
// 两个输入都不为空且可解析为正数时才执行计算
|
||||
if (double.TryParse(BoardThicknessInput, out double boardThickness) && boardThickness > 0 &&
|
||||
double.TryParse(CopperThicknessInput, out double copperThickness) && copperThickness > 0)
|
||||
{
|
||||
StackCountResult = "请输入有效的板厚和铜厚数字";
|
||||
StackCountDetail = string.Empty;
|
||||
return;
|
||||
}
|
||||
var result = StackCountCalculator.Calculate(
|
||||
boardThickness, copperThickness,
|
||||
StackCalcMinDrill, StackCalcMinSlot, StackCalcMinEA);
|
||||
|
||||
// 调用计算器
|
||||
var result = StackCountCalculator.Calculate(
|
||||
boardThickness, copperThickness,
|
||||
StackCalcMinDrill, StackCalcMinSlot, StackCalcMinEA);
|
||||
|
||||
if (result.Success)
|
||||
{
|
||||
StackCountResult = $"建议叠板:{result.RecommendedCount} 张";
|
||||
StackCountDetail = result.Detail;
|
||||
if (result.Success)
|
||||
{
|
||||
StackCountResult = $"建议叠板:{result.RecommendedCount} 张";
|
||||
StackCountDetail = result.Detail;
|
||||
}
|
||||
else
|
||||
{
|
||||
StackCountResult = "无法计算";
|
||||
StackCountDetail = string.IsNullOrEmpty(result.Detail)
|
||||
? result.Message
|
||||
: $"{result.Message}\n{result.Detail}";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
StackCountResult = "无法计算";
|
||||
StackCountDetail = string.IsNullOrEmpty(result.Detail)
|
||||
? result.Message
|
||||
: $"{result.Message}\n{result.Detail}";
|
||||
// 输入不完整,静默清空
|
||||
StackCountResult = string.Empty;
|
||||
StackCountDetail = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新 CanCalculate 状态(板厚和铜厚均为大于 0 的数字时可用)
|
||||
/// </summary>
|
||||
private void UpdateCanCalculate()
|
||||
{
|
||||
CanCalculate = double.TryParse(BoardThicknessInput, out double bt) && bt > 0 &&
|
||||
double.TryParse(CopperThicknessInput, out double ct) && ct > 0;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region INotifyPropertyChanged
|
||||
|
||||
Reference in New Issue
Block a user