From 0722a6bdf700cf1e9f6b7d34297db7a3b77d89bd Mon Sep 17 00:00:00 2001 From: "Mr.Xia" <1424473282@qq.com> Date: Sat, 6 Jun 2026 22:17:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=9D=E7=95=99=E6=B6=A8=E7=BC=A9?= =?UTF-8?q?=E9=92=BB=E5=B8=A6=E5=9D=90=E6=A0=87=E5=89=8D=E5=AF=BC=E9=9B=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ExcellonScaler.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/ExcellonScaler.cs b/ExcellonScaler.cs index bac7046..d8f3316 100644 --- a/ExcellonScaler.cs +++ b/ExcellonScaler.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Text.RegularExpressions; namespace DrillTools.Integration @@ -103,7 +104,7 @@ namespace DrillTools.Integration long xNew = (long)Math.Round(xOrig * kx); long yNew = (long)Math.Round(yOrig * ky); - return $"X{xNew}Y{yNew}"; + return $"X{FormatCoordinateValue(xNew)}Y{FormatCoordinateValue(yNew)}"; } /// @@ -148,7 +149,20 @@ namespace DrillTools.Integration long newEndX = cxNew + dx; long newEndY = cyNew + dy; - return $"X{newStartX}Y{newStartY}G85X{newEndX}Y{newEndY}"; + return + $"X{FormatCoordinateValue(newStartX)}Y{FormatCoordinateValue(newStartY)}" + + $"G85X{FormatCoordinateValue(newEndX)}Y{FormatCoordinateValue(newEndY)}"; + } + + /// + /// 将坐标数值格式化为钻带使用的 6 位坐标文本,负数保留负号。 + /// + private static string FormatCoordinateValue(long value) + { + if (value < 0) + return "-" + Math.Abs(value).ToString("D6", CultureInfo.InvariantCulture); + + return value.ToString("D6", CultureInfo.InvariantCulture); } } }