From fe4ac75f67a36116a9402a99e5df8eea22c31b9e Mon Sep 17 00:00:00 2001 From: sladro Date: Thu, 12 Feb 2026 10:49:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=87=AA=E7=94=B1?= =?UTF-8?q?=E9=94=BB=E6=AF=9B=E5=9D=AF=E5=9C=86=E8=BD=B4=E5=92=8C=E6=96=B9?= =?UTF-8?q?=E8=BD=B4=E7=9A=84=E7=BB=98=E5=9B=BE=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cad/ShaftRawFreeForgeRoundShaftDrawer.cs | 56 +++++++++++------------ Cad/ShaftRawFreeForgeSquareShaftDrawer.cs | 29 +----------- 2 files changed, 30 insertions(+), 55 deletions(-) diff --git a/Cad/ShaftRawFreeForgeRoundShaftDrawer.cs b/Cad/ShaftRawFreeForgeRoundShaftDrawer.cs index fcf7753..bf8b24f 100644 --- a/Cad/ShaftRawFreeForgeRoundShaftDrawer.cs +++ b/Cad/ShaftRawFreeForgeRoundShaftDrawer.cs @@ -60,13 +60,13 @@ namespace CadParamPluging.Cad return; } - // 逻辑要求:直径是宽度,长度是高度 - double W = dia.Value; - double H = len.Value; + // 逻辑要求:长度是宽度,直径是高度 (Fixed) + double W = len.Value; + double H = dia.Value; // 获取原始值用于判断断线(防止缩放干扰) - var originalDia = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyDiameter); - double originalW = originalDia.HasValue ? originalDia.Value : W; + var originalLen = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyLength); + double originalW = originalLen.HasValue ? originalLen.Value : W; double ox = ctx.Center.X - W / 2.0; double oy = ctx.Center.Y - H / 2.0; @@ -110,22 +110,21 @@ namespace CadParamPluging.Cad // 3. 尺寸标注 - // 3.1 直径标注 (底部) + // 3.1 长度标注 (底部) - 对应宽度W { - var val = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyDiameter) ?? W; - var str = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyDiameter); - var tolPlus = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyDiameterTolPlus); - var tolMinus = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyDiameterTolMinus); - var tolPlusStr = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyDiameterTolPlus); - var tolMinusStr = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyDiameterTolMinus); + var val = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyLength) ?? W; + var str = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyLength); + var tolPlus = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyLengthTolPlus); + var tolMinus = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyLengthTolMinus); + var tolPlusStr = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyLengthTolPlus); + var tolMinusStr = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyLengthTolMinus); - // 直径加上 %%c 符号 - var dimText = "%%c" + FeatureDrivenDrawer.BuildDimensionText(FeatureDrivenDrawer.FormatDimNumber(val, str), tolPlus, tolMinus, tolPlusStr, tolMinusStr); + var dimText = FeatureDrivenDrawer.BuildDimensionText(FeatureDrivenDrawer.FormatDimNumber(val, str), tolPlus, tolMinus, tolPlusStr, tolMinusStr); - var valPrime = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyDiameterPrime); + var valPrime = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyLengthPrime); if (valPrime.HasValue && valPrime.Value > 0) { - dimText += @"\X(%%c" + FeatureDrivenDrawer.FormatDimNumber(valPrime.Value) + ")"; + dimText += @"\X(" + FeatureDrivenDrawer.FormatDimNumber(valPrime.Value) + ")"; } double dimY = oy - 25; @@ -134,21 +133,22 @@ namespace CadParamPluging.Cad FeatureDrivenDrawer.AddLinearDim(ctx, new Point3d(ox, dimOriginY, 0), new Point3d(ox + W, dimOriginY, 0), new Point3d(ctx.Center.X, dimY, 0), 0, dimText); } - // 3.2 长度标注 (右侧) + // 3.2 直径标注 (右侧) - 对应高度H { - var val = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyLength) ?? H; - var str = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyLength); - var tolPlus = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyLengthTolPlus); - var tolMinus = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyLengthTolMinus); - var tolPlusStr = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyLengthTolPlus); - var tolMinusStr = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyLengthTolMinus); + var val = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyDiameter) ?? H; + var str = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyDiameter); + var tolPlus = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyDiameterTolPlus); + var tolMinus = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyDiameterTolMinus); + var tolPlusStr = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyDiameterTolPlus); + var tolMinusStr = ctx.OriginalBag?.GetString(FeatureDrivenDrawer.KeyDiameterTolMinus); - var dimText = FeatureDrivenDrawer.BuildDimensionText(FeatureDrivenDrawer.FormatDimNumber(val, str), tolPlus, tolMinus, tolPlusStr, tolMinusStr); + // 直径加上 %%c 符号 + var dimText = "%%c" + FeatureDrivenDrawer.BuildDimensionText(FeatureDrivenDrawer.FormatDimNumber(val, str), tolPlus, tolMinus, tolPlusStr, tolMinusStr); - var valPrime = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyLengthPrime); + var valPrime = ctx.OriginalBag?.GetDoubleOrNull(FeatureDrivenDrawer.KeyDiameterPrime); if (valPrime.HasValue && valPrime.Value > 0) { - dimText += @"\X(" + FeatureDrivenDrawer.FormatDimNumber(valPrime.Value) + ")"; + dimText += @"\X(%%c" + FeatureDrivenDrawer.FormatDimNumber(valPrime.Value) + ")"; } double dimX = ox + W + 20; @@ -182,8 +182,8 @@ namespace CadParamPluging.Cad var lenPrime = bag.GetDoubleOrNull(FeatureDrivenDrawer.KeyLengthPrime); if (diaPrime.HasValue && diaPrime.Value > 0 && lenPrime.HasValue && lenPrime.Value > 0) { - double pW = diaPrime.Value; // Diameter -> Width - double pH = lenPrime.Value; // Length -> Height + double pW = lenPrime.Value; // Length -> Width + double pH = diaPrime.Value; // Diameter -> Height double pOx = ctx.Center.X - pW / 2.0; double pOy = ctx.Center.Y - pH / 2.0; diff --git a/Cad/ShaftRawFreeForgeSquareShaftDrawer.cs b/Cad/ShaftRawFreeForgeSquareShaftDrawer.cs index 7eb2b8f..ecd3da2 100644 --- a/Cad/ShaftRawFreeForgeSquareShaftDrawer.cs +++ b/Cad/ShaftRawFreeForgeSquareShaftDrawer.cs @@ -99,8 +99,8 @@ namespace CadParamPluging.Cad double arcHeight = S2 / 5.0; DrawEndArcs(ctx, ox, oy, S1, S2, arcHeight); - // 3. 绘制中心线 (横向,在中间位置) - DrawHorizontalCenterLine(ctx, ctx.Center.Y, ox, ox + S1, needBreakLines, xBreak, lineSpacing); + // 3. 绘制中心线 (横向,在中间位置) - 已移除 + // DrawHorizontalCenterLine(ctx, ctx.Center.Y, ox, ox + S1, needBreakLines, xBreak, lineSpacing); // 4. Draw Break Lines if needed if (needBreakLines) @@ -446,32 +446,7 @@ namespace CadParamPluging.Cad } } - private static void DrawHorizontalCenterLine(FeatureDrivenDrawer.DrawingContext ctx, double centerY, double xLeft, double xRight, bool hasBreak = false, double xBreak = 0, double breakWidth = 0) - { - const double extend = 5.0; - - if (!hasBreak) - { - var line = new Line(new Point3d(xLeft - extend, centerY, 0), new Point3d(xRight + extend, centerY, 0)); - ctx.Style?.Apply(line, DrawingStyleManager.Role.Centerline); - ctx.Btr.AppendEntity(line); - ctx.Tr.AddNewlyCreatedDBObject(line, true); - } - else - { - // Left segment - var line1 = new Line(new Point3d(xLeft - extend, centerY, 0), new Point3d(xBreak, centerY, 0)); - ctx.Style?.Apply(line1, DrawingStyleManager.Role.Centerline); - ctx.Btr.AppendEntity(line1); - ctx.Tr.AddNewlyCreatedDBObject(line1, true); - // Right segment - var line2 = new Line(new Point3d(xBreak + breakWidth, centerY, 0), new Point3d(xRight + extend, centerY, 0)); - ctx.Style?.Apply(line2, DrawingStyleManager.Role.Centerline); - ctx.Btr.AppendEntity(line2); - ctx.Tr.AddNewlyCreatedDBObject(line2, true); - } - } ///