feat: PP钻带基础信息显示X/Y间距

检测PP钻带(文件名-pp结尾、4孔、直径4.000),计算上下孔X间距和左右孔Y间距
(欧氏距离),在MainWindow和StartupSelectionWindow的基础信息中显示。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-23 16:04:51 +08:00
parent 9896e54e93
commit cb27e8917a
6 changed files with 192 additions and 5 deletions

View File

@@ -37,7 +37,8 @@ namespace DrillTools
bool canClearParameters = CanClearDrillTapeParameters(filePath);
bool canGeneratePpDrillTape = CanGeneratePpDrillTape(filePath);
GetMinDiameters(filePath, out double minDrill, out double minSlot, out double minEA);
var selectionWindow = new StartupSelectionWindow(filePath, canClearParameters, canGeneratePpDrillTape, minDrill, minSlot, minEA);
GetPpSpacing(filePath, out bool isPpDrillTape, out double ppXSpacing, out double ppYSpacing);
var selectionWindow = new StartupSelectionWindow(filePath, canClearParameters, canGeneratePpDrillTape, minDrill, minSlot, minEA, isPpDrillTape, ppXSpacing, ppYSpacing);
selectionWindow.ShowDialog();
switch (selectionWindow.SelectedAction)
@@ -173,6 +174,32 @@ namespace DrillTools
}
}
private static void GetPpSpacing(string filePath, out bool isPpDrillTape, out double ppXSpacing, out double ppYSpacing)
{
isPpDrillTape = false;
ppXSpacing = 0;
ppYSpacing = 0;
try
{
var viewModel = new MainWindowViewModel
{
OriginalFilePath = filePath,
ShouldCheckSortFileOnLoad = false
};
string content = CommandTypeFileReader.ReadAllText(filePath);
viewModel.LoadToolsFromDrillTape(content);
isPpDrillTape = viewModel.IsPpDrillTape;
ppXSpacing = viewModel.PpXSpacing;
ppYSpacing = viewModel.PpYSpacing;
}
catch
{
}
}
private static void PerformPpDrillTapeGeneration(string filePath)
{
try