修复毛料态、自由锻、方体、有圆头的模板的生成样式

This commit is contained in:
sladro 2026-01-29 11:14:10 +08:00
parent cbc34e2d9c
commit de4ccff050

View File

@ -3005,7 +3005,8 @@ namespace CadParamPluging.Cad
: 0;
// 1. 绘制完整锻件外轮廓(方体有圆头 - 白色,固定小弧度)
DrawBlockRoundHeadOutline(ctx, ox, oy, visualTotalW, H, visualOuterArcR);
// 修正外轮廓圆弧半径需增加内框圆角半径以保证外圆弧的起点与内框圆角的起点在X轴上重合消除直边延伸
DrawBlockRoundHeadOutline(ctx, ox, oy, visualTotalW, H, visualOuterArcR + innerFilletR);
// 2. 绘制分段式内框(左、中、右三段)以支持中间剖面区域的独立圆角
// 中间区域(剖面)作为主体,如果设置了圆角,四个角都应为圆角
@ -3022,15 +3023,14 @@ namespace CadParamPluging.Cad
DrawBoxSectionContourWithFillet(ctx, xSectionLeft, xSectionRight, oy, H, innerFilletR);
// 绘制左侧框线(连接左端圆弧和中间剖面框)
// 左端: xInnerLeft (需处理左上下角的圆角 - 使用外轮廓圆角 visualOuterArcR)
// 左端: xInnerLeft (需处理左上下角的圆角 - 修正为使用内框圆角 innerFilletR与方体参数一致)
// 右端: xSectionLeft (连接到中间框的直边)
// 注意DrawBoxSideFrame 仅在远端应用圆角,连接端是直的
DrawBoxSideFrame(ctx, xInnerLeft, xSectionLeft, oy, H, visualOuterArcR, isLeft: true);
DrawBoxSideFrame(ctx, xInnerLeft, xSectionLeft, oy, H, innerFilletR, isLeft: true);
// 绘制右侧框线
// 左端: xSectionRight (连接到中间框的直边)
// 右端: xInnerRight (需处理右上下角的圆角 - 使用外轮廓圆角 visualOuterArcR)
DrawBoxSideFrame(ctx, xSectionRight, xInnerRight, oy, H, visualOuterArcR, isLeft: false);
// 右端: xInnerRight (需处理右上下角的圆角 - 修正为使用内框圆角 innerFilletR与方体参数一致)
DrawBoxSideFrame(ctx, xSectionRight, xInnerRight, oy, H, innerFilletR, isLeft: false);
// 3. 剖面填充 - 只在中间区域
// 如果有圆角填充范围也应考虑圆角不过Hatch边界通常可以自动处理
@ -3105,9 +3105,9 @@ namespace CadParamPluging.Cad
// 标注从圆弧最外侧开始(避免与圆弧轮廓线重叠)
double xOuterRight = ox + visualTotalW;
// 修正:标注界线起点应向内缩进一个圆角半径 visualOuterArcR,以连接到锻件顶底平直边的末端
// 修正:标注界线起点应向内缩进(visualOuterArcR + innerFilletR),以连接到锻件顶底平直边的末端
// 否则标注界线会从包围盒的角点开始,导致与圆角轮廓之间有空隙
double xDimOrigin = xOuterRight - visualOuterArcR;
double xDimOrigin = xOuterRight - (visualOuterArcR + innerFilletR);
AddLinearDim(
ctx,