feat: 增加钻带涨缩功能,支持倍率/PPM模式缩放坐标

- 新增 ExcellonScaler 引擎:普通孔缩放坐标,G85槽孔保护槽长,刀具定义行原样保留
- 新增 DrillScalingWindow 参数设置窗口:倍率/PPM模式切换,X/Y独立输入
- 集成到启动功能菜单:.dr2/.dpin 文件显示"涨缩"按钮
- 输出覆盖原文件 + .bak 备份,GB2312 编码
This commit is contained in:
2026-06-05 22:17:15 +08:00
parent f050a606ef
commit cacbbe6c33
7 changed files with 505 additions and 2 deletions

View File

@@ -9,7 +9,8 @@ namespace DrillTools
AdjustToolOrder,
ExportHoleCount,
ClearParameters,
GeneratePpDrillTape
GeneratePpDrillTape,
ScaleDrillTape
}
public partial class StartupSelectionWindow : Window
@@ -17,6 +18,7 @@ namespace DrillTools
public StartupAction SelectedAction { get; private set; } = StartupAction.None;
public StartupSelectionWindow(string filePath, bool canClearParameters = false, bool canGeneratePpDrillTape = false,
bool canScaleDrillTape = false,
double minDrillDiameter = 0, double minSlotDiameter = 0, double minEADiameter = 0,
bool isPpDrillTape = false, double ppXSpacing = 0, double ppYSpacing = 0,
bool hasOuter3175Spacing = false, double outer3175XSpacing = 0, double outer3175YSpacing = 0)
@@ -37,6 +39,7 @@ namespace DrillTools
};
ClearParametersButton.Visibility = canClearParameters ? Visibility.Visible : Visibility.Collapsed;
GeneratePpDrillTapeButton.Visibility = canGeneratePpDrillTape ? Visibility.Visible : Visibility.Collapsed;
ScaleDrillTapeButton.Visibility = canScaleDrillTape ? Visibility.Visible : Visibility.Collapsed;
}
private void AdjustToolOrder_Click(object sender, RoutedEventArgs e)
@@ -62,5 +65,11 @@ namespace DrillTools
SelectedAction = StartupAction.GeneratePpDrillTape;
Close();
}
private void ScaleDrillTape_Click(object sender, RoutedEventArgs e)
{
SelectedAction = StartupAction.ScaleDrillTape;
Close();
}
}
}