fix(B06): I형 집수정 배관 끝단이 마감면에 접혀 삼각형이 되던 결함 수정
관 끝단 두 꼭짓점을 마감면(I형 벽 안쪽 변) 선분 안으로 자를 때, 원지반이 벽 상단 위라 관 시작점이 벽 상단에 붙으면 위·아래 교점이 같은 끝점으로 접혀 관 단면이 삼각형으로 그려짐. 비스듬히 자른 끝단 길이는 항상 관경 이상이므로, 그보다 짧으면 접힌 것으로 보고 축 직각 마감으로 되돌림. 검증 — 공용 브라우저 B06 단면 8개 실측: 유입측 끝단 길이 0.0px → 18.7~58.4px. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -561,7 +561,17 @@ export function pipeAxisSolver(
|
|||||||
Math.hypot(top.offset - fallback.top.offset, top.elevation - fallback.top.elevation) >
|
Math.hypot(top.offset - fallback.top.offset, top.elevation - fallback.top.elevation) >
|
||||||
STRAY_LIMIT_M;
|
STRAY_LIMIT_M;
|
||||||
if (strayed) return fallback;
|
if (strayed) return fallback;
|
||||||
return { bottom: clampToFace(bottom, face), top: clampToFace(top, face) };
|
const cutBottom = clampToFace(bottom, face);
|
||||||
|
const cutTop = clampToFace(top, face);
|
||||||
|
// 마감면을 비스듬히 자르면 끝단 길이는 관경 이상이다. 그보다 짧으면 선분 밖으로
|
||||||
|
// 나간 교점이 한 끝점으로 접힌 것 — I형 벽이 원지반에 묻혀 관 시작점이 벽 상단에
|
||||||
|
// 붙으면 두 꼭짓점이 한 점이 되어 관이 삼각형으로 그려진다. 그럴 땐 축 직각 마감으로.
|
||||||
|
const cutSpan = Math.hypot(
|
||||||
|
cutTop.offset - cutBottom.offset,
|
||||||
|
cutTop.elevation - cutBottom.elevation,
|
||||||
|
);
|
||||||
|
if (cutSpan < diameter - 1e-6) return fallback;
|
||||||
|
return { bottom: cutBottom, top: cutTop };
|
||||||
};
|
};
|
||||||
solver.derive();
|
solver.derive();
|
||||||
return solver;
|
return solver;
|
||||||
|
|||||||
Reference in New Issue
Block a user