feat(rebar): B11·B12 수평간격을 배수 k 입력으로 (기본 k = 8, 방향은 문서 기준)

- 간격 = k·s: B11은 L 방향 격자(교각축 직각 s), B12는 W 방향 격자(교각축 s). 기본 k = 8 (1000 mm, s = 125)
- 개수는 격자 k칸마다, 조립 단 엇갈림 2칸 유지. 3D 철근도 같은 간격
- 기본 k = 8이므로 P1 기본값의 B11·B12 개수가 60 / 47 → 30 / 24로 바뀜 (k = 4이면 문서값 60 / 47을 재현, 테스트로 확인)
- 패널에 k 두 칸, 규칙 표시에 B11·B12 간격 (k·s)
- FT02를 n·kB11·kB12 정수 검사로 확장

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-10-26 17:34:51 +09:00
1 parent 48e6811600
commit 0588ffe3f4
9 files changed
+54 -39

No files matched your search

+4 -3
View File
@@ -66,11 +66,12 @@ describe('확대기초 철근 (확대기초철근 (1).md, plan C5)', () => {
expect(assemblyJs(2200)).toEqual([2, 4, 6, 8]);
});
it('B11 60 bars (20 / 20 / 20) ≈ 8359, B12 47 bars (16 / 15 / 16) ≈ 10613', () => {
// k = 8 default (승인 2026-10-26): every 8 grid steps (1000 mm). The doc's 4s (k = 4) gives 60 / 47.
it('B11 30 bars (10 / 10 / 10) ≈ 8359, B12 24 bars (8 / 8 / 8) ≈ 10613 at k = 8', () => {
const [b11, b12] = assemblyBars(L, W, H);
expect(b11.count).toBe(60);
expect(b11.count).toBe(30);
expect(b11.length).toBeCloseTo(8359, 0);
expect(b12.count).toBe(47);
expect(b12.count).toBe(24);
expect(b12.length).toBeCloseTo(10612.5, 1); // the document prints ≈ 10613
});