修改间距,零件和外框的
This commit is contained in:
parent
839e100231
commit
bfec5deb9f
@ -538,18 +538,25 @@ namespace CadParamPluging.Cad
|
||||
// === 特征8: 零件轮廓(车加工态,右半边) ===
|
||||
if (ctx.IsMachined && outerDiaPrime.HasValue && outerDiaPrime.Value > 0 && heightPrime.HasValue && heightPrime.Value > 0)
|
||||
{
|
||||
// 零件轮廓(黄色部分)与锻件轮廓(白色部分)的间隙:
|
||||
// 由于采用了强制比例和非线性映射,直接映射会导致间隙过大。
|
||||
// 此处采用固定视觉间隙 (2.5个单位),确保零件框紧贴锻件框内部,符合示意图效果。
|
||||
// 零件轮廓(黄色)尺寸计算: 基于实际尺寸差值(间隙)进行映射
|
||||
|
||||
var visualGap = 2.5;
|
||||
var scaledOuterDiaPrime = (visualOuterR - visualGap) * 2.0;
|
||||
var scaledInnerDiaPrime = innerDiaPrime.HasValue
|
||||
? (visualInnerR + visualGap) * 2.0
|
||||
: (double?)null;
|
||||
|
||||
// 同时也修正高度方向的视觉间隙,使其上下也紧贴外框
|
||||
var scaledHeightPrime = H - visualGap * 2.0;
|
||||
// 1. 外径 (Mapped)
|
||||
double physicalPartOuterR = outerDiaPrime.Value / 2.0;
|
||||
double visualPartOuterR = MapRadius(physicalPartOuterR);
|
||||
var scaledOuterDiaPrime = visualPartOuterR * 2.0;
|
||||
|
||||
// 2. 内径 (Mapped)
|
||||
double? scaledInnerDiaPrime = null;
|
||||
if (innerDiaPrime.HasValue && innerDiaPrime.Value > 0)
|
||||
{
|
||||
double physicalPartInnerR = innerDiaPrime.Value / 2.0;
|
||||
double visualPartInnerR = MapRadius(physicalPartInnerR);
|
||||
scaledInnerDiaPrime = visualPartInnerR * 2.0;
|
||||
}
|
||||
|
||||
// 3. 高度 (Direct, Y-axis is 1:1)
|
||||
// 高度方向没有示意图扭曲,直接使用物理高度
|
||||
var scaledHeightPrime = heightPrime.Value;
|
||||
|
||||
DrawPartContourHalf(ctx, ox, oy, H, scaledOuterDiaPrime, scaledInnerDiaPrime, scaledHeightPrime);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user