fix(abut-rebar): 날개벽 WR10 = 교대 끝면 쪽 ㄱ자 (교대 3,000 · 날개벽 1,000)

- 사용자 도면(2026-11-05): 꺾이는 점 = 날개벽 바깥면(교대 끝면) − 피복 123 선 × 흉벽 배면 + 123 선. 교대 쪽 다리 3,000 (s 방향, 교대 안쪽),
  날개벽 쪽 다리 1,000 (바깥면 − 123, 경사 하단에서는 짧아짐). 단 @s_v · 단 수 그대로 (A1 38)
- 이전 안쪽 모서리 L자 (대각 300 + 양끝 l_d) 폐기
- 테스트: 꺾이는 점 · 다리 길이 · 방향 · 단 수, 콘크리트 안 검사 통과

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-11-05 09:15:46 +09:00
1 parent 7b9de649e5
commit bb2af4bdf5
2 files changed
+30 -12

No files matched your search

+20
View File
@@ -170,3 +170,23 @@ describe('WR7 평면 형상 (사용자 도면 2026-11-05)', () => {
expect(R.haunchLevels['WR7-3']).toBeLessThan(total - R.haunchLevels['WR7-1'] - 6);
});
});
describe('WR10 ㄱ자 (사용자 도면 2026-11-05)', () => {
it('꺾이는 점은 날개벽 바깥면 − 123 · 흉벽 배면 + 123, 교대 쪽 다리 3,000 (s 방향), 날개벽 쪽 다리 1,000; 단 수 38 그대로', () => {
const p = L1.paths.find((q) => q.mark === 'WR10')!;
expect(p.pts.length).toBe(3);
const [a, B, e] = p.pts;
expect(B[1]).toBeCloseTo(left.parapetBackT + 123, 6);
expect(a[1]).toBeCloseTo(B[1], 6); // 교대 쪽 다리는 s 방향
expect(Math.abs(a[0] - B[0])).toBeCloseTo(3000, 6);
expect(Math.hypot(e[0] - B[0], e[1] - B[1])).toBeCloseTo(1000, 6);
const [ws, wt] = left.w;
const iw = left.inward[0] * ws + left.inward[1] * wt;
const nv = [left.inward[0] - iw * ws, left.inward[1] - iw * wt];
const T = Math.hypot(nv[0], nv[1]);
expect(((B[0] - left.p0[0]) * nv[0] + (B[1] - left.p0[1]) * nv[1]) / T).toBeCloseTo(123, 6);
// 교대 쪽 다리는 교대 안쪽 (날개벽에서 반대쪽 날개벽 방향)으로.
expect(Math.sign(a[0] - B[0])).toBe(Math.sign(left.inward[0]));
expect(bar(L1, 'WR10')?.count).toBe(38);
});
});