diff --git a/Cad/DiskRawFreeForgeDrawer.cs b/Cad/DiskRawFreeForgeDrawer.cs index 64b1118..4e369df 100644 --- a/Cad/DiskRawFreeForgeDrawer.cs +++ b/Cad/DiskRawFreeForgeDrawer.cs @@ -183,7 +183,9 @@ namespace CadParamPluging.Cad var markingText = bag.GetString(FeatureDrivenDrawer.KeyMarkingContent); if (!string.IsNullOrWhiteSpace(markingText)) { - double xTarget = ctx.Center.X; + double flatHalfWidth = (diameter.Value / 2.0) - r; + double offset = Math.Min(15.0, flatHalfWidth * 0.8); + double xTarget = ctx.Center.X - offset; double yTarget = oy + H; FeatureDrivenDrawer.DrawSpecialHBLeaderToTop(ctx, xTarget, yTarget, markingText); } @@ -192,7 +194,9 @@ namespace CadParamPluging.Cad var hardnessVal = bag.GetString(FeatureDrivenDrawer.KeyHardness); if (!string.IsNullOrWhiteSpace(hardnessVal) && hardnessVal != "空") { - double xHardness = ctx.Center.X; + double flatHalfWidth = (diameter.Value / 2.0) - r; + double offset = Math.Min(15.0, flatHalfWidth * 0.8); + double xHardness = ctx.Center.X + offset; double yHardness = oy; FeatureDrivenDrawer.DrawHardnessSymbol(ctx, xHardness, yHardness, hardnessVal); } diff --git a/Cad/FeatureDrivenDrawer.cs b/Cad/FeatureDrivenDrawer.cs index 31af0ef..98faa65 100644 --- a/Cad/FeatureDrivenDrawer.cs +++ b/Cad/FeatureDrivenDrawer.cs @@ -2905,26 +2905,40 @@ namespace CadParamPluging.Cad poly.AddVertexAt(2, new Point2d(p3.X, p3.Y), 0, 0, 0); ctx.Style?.Apply(poly, DrawingStyleManager.Role.Dimension); // 使用 Dimension 角色 - // 用户要求改为绿色 (ColorIndex 3) - poly.ColorIndex = 3; + // 修改为青色 (ColorIndex 4) + poly.ColorIndex = 4; ctx.Btr.AppendEntity(poly); ctx.Tr.AddNewlyCreatedDBObject(poly, true); - // 2. 文字 (硬度的具体值) + // 2. 文字和包裹圆圈 string displayTxt = string.IsNullOrWhiteSpace(hardnessVal) ? "HB" : hardnessVal; + + // 估算圆圈半径:基础半径至少3.5,以保证能舒适包裹"HB";长字符串相应按比例扩大 + double radius = Math.Max(3.5, displayTxt.Length * 3.5 * 0.35 + 0.5); + var centerPt = new Point3d(p3.X + radius, p3.Y, 0); + + // 绘制文字 var text = new DBText(); text.TextString = displayTxt; text.Height = 3.5; - text.ColorIndex = 3; - text.HorizontalMode = TextHorizontalMode.TextLeft; + text.ColorIndex = 4; // 青色 + text.HorizontalMode = TextHorizontalMode.TextCenter; text.VerticalMode = TextVerticalMode.TextVerticalMid; - var tp = new Point3d(p3.X + 2.0, p3.Y, 0); - text.AlignmentPoint = tp; - text.Position = tp; + text.AlignmentPoint = centerPt; + text.Position = centerPt; // TextCenter 时通常主要使用 AlignmentPoint ctx.Btr.AppendEntity(text); ctx.Tr.AddNewlyCreatedDBObject(text, true); + + // 绘制外圈圆 + var circle = new Circle(); + circle.Center = centerPt; + circle.Radius = radius; + circle.ColorIndex = 4; // 青色 + + ctx.Btr.AppendEntity(circle); + ctx.Tr.AddNewlyCreatedDBObject(circle, true); } catch { diff --git a/UI/ParamDrawingPanel.cs b/UI/ParamDrawingPanel.cs index a723eb0..e830123 100644 --- a/UI/ParamDrawingPanel.cs +++ b/UI/ParamDrawingPanel.cs @@ -857,6 +857,14 @@ namespace CadParamPluging.UI { display = "有扩孔"; } + else if (item == "车加工") + { + display = "粗加工"; + } + else if (item == "毛料态") + { + display = "非粗加工"; + } dropDownItems.Add(new DropdownItem { Display = display, Value = item }); } cb.Items.AddRange(dropDownItems.ToArray());