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:
1 parent
7b9de649e5
commit
bb2af4bdf5
2 files changed
+30
-12
No files matched your search
@@ -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);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user