Revert "feat(rebar): B1–B4와 B5–B8 방향 교환 (B1–B4는 W 방향, B5–B8은 L 방향)"

이 교환은 9,350 방향이 L이라는 가정에서 적용됐으나, 단면 삽도(B5–B8 선, 교각축 직각 단면)와 재료표가 원래 배치(B1–B4 L 방향, B5–B8 W 방향)와 맞는 것으로 확인되어 되돌림.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-10-27 09:48:05 +09:00
1 parent a026d52799
commit 99db6a1f52
12 files changed
+167 -160

No files matched your search

+23 -24
View File
@@ -31,25 +31,24 @@ describe('확대기초 철근 (확대기초철근 (1).md, plan C5)', () => {
expect(z.B7).toBeCloseTo(277, 6);
});
// 방향 교환 (승인 2026-10-26): B1–B4 run along W (grid L, 79 steps → 80 positions); B5–B8 run along L (grid W).
it('B2 leg 1723, B2 length 11396 (W − 2c + 2 × 1723), count 40', () => {
it('B2 leg 1723, B2 length 13646 (over the 12000 bar, splice needed)', () => {
expect(legB2(H)).toBeCloseTo(1723, 6);
const b2 = bottomBars(L, W, H).find((b) => b.name === 'B2')!;
expect(b2.length).toBeCloseTo(11396, 0);
expect(b2.count).toBe(40);
expect(b2.length).toBeCloseTo(13646, 0);
expect(b2.count).toBe(31);
});
it('B1–B4 counts 40 / 40 / 40 / 40 (grid along L) and B4 length 7950 (W − 2c)', () => {
it('B1–B4 counts 31 / 31 / 31 / 31 and B4 length 10200', () => {
const bars = bottomBars(L, W, H);
expect(bars.map((b) => b.count)).toEqual([40, 40, 40, 40]);
expect(bars.find((b) => b.name === 'B4')!.length).toBeCloseTo(7950, 6);
expect(bars.map((b) => b.count)).toEqual([31, 31, 31, 31]);
expect(bars.find((b) => b.name === 'B4')!.length).toBeCloseTo(10200, 6);
});
it('B5–B8 counts 31 each (grid along W: n 61), B8 length 10200 (L − 2c), B6 length 13646', () => {
it('B5–B8 counts 40 each (grid along L: n 79), B8 length 7950, B6 length 11396', () => {
const bars = crossBars(L, W, H);
expect(bars.map((b) => b.count)).toEqual([31, 31, 31, 31]);
expect(bars.find((b) => b.name === 'B8')!.length).toBeCloseTo(10200, 6);
expect(bars.find((b) => b.name === 'B6')!.length).toBeCloseTo(13646, 0);
expect(bars.map((b) => b.count)).toEqual([40, 40, 40, 40]);
expect(bars.find((b) => b.name === 'B8')!.length).toBeCloseTo(7950, 6);
expect(bars.find((b) => b.name === 'B6')!.length).toBeCloseTo(11396, 0);
});
it('B10-1 16 bars ≈ 10748 (lowest level removed), B10-2 16 bars ≈ 8494', () => {
@@ -109,29 +108,29 @@ describe('확대기초 배근도 재현 (확대기초철근 (1).md §13)', () =>
expect(h.B12.map((z) => Math.round(z * 10) / 10)).toEqual([569.1, 969.1, 1369.1]);
});
it('배근도 재현 W 7800 → B8 30, B6 29 (B5–B8 follow W, odd count split)', () => {
const bars = crossBars(10400, 7800, 2000);
expect(bars.find((b) => b.name === 'B8')!.count).toBe(30);
expect(bars.find((b) => b.name === 'B6')!.count).toBe(29);
it('배근도 재현 W 7800 → B4 30, B2 29 (odd count split)', () => {
const bars = bottomBars(10400, 7800, 2000);
expect(bars.find((b) => b.name === 'B4')!.count).toBe(30);
expect(bars.find((b) => b.name === 'B2')!.count).toBe(29);
});
it('배근도 재현 L 9350 → B4 36, B2 35 (B1–B4 follow L)', () => {
const bars = bottomBars(9350, 8150, 2000);
expect(bars.find((b) => b.name === 'B4')!.count).toBe(36);
expect(bars.find((b) => b.name === 'B2')!.count).toBe(35);
it('배근도 재현 L 9350 → B8 36, B6 35', () => {
const bars = crossBars(9350, 8150, 2000);
expect(bars.find((b) => b.name === 'B8')!.count).toBe(36);
expect(bars.find((b) => b.name === 'B6')!.count).toBe(35);
});
it('variables: W 8000 with s 150 → 50 grid steps, e 150, B4 26 / B2 25; W 12000 → 92 steps, e 150', () => {
const g = grid(8000, { ...DEFAULT_FOOTING_REBAR, sL: 150 });
const g = grid(8000, { ...DEFAULT_FOOTING_REBAR, sAxis: 150 });
expect(g.n).toBe(50);
expect(g.e).toBeCloseTo(150, 6);
expect(grid(12000).n).toBe(92);
expect(grid(12000).e).toBeCloseTo(150, 6);
});
it('splice cases: W 8700 → B2 11946 (no splice); W 12400 → B4 12200; L 8800 → B6 12046', () => {
expect(bottomBars(10400, 8700, 2000).find((b) => b.name === 'B2')!.length).toBeCloseTo(11946, 0);
expect(bottomBars(10400, 12400, 2000).find((b) => b.name === 'B4')!.length).toBeCloseTo(12200, 0);
expect(crossBars(8800, 8150, 2000).find((b) => b.name === 'B6')!.length).toBeCloseTo(12046, 0);
it('splice cases: L 8700 → B2 11946 (no splice); L 12400 → B4 12200; W 8800 → B6 12046', () => {
expect(bottomBars(8700, 8150, 2000).find((b) => b.name === 'B2')!.length).toBeCloseTo(11946, 0);
expect(bottomBars(12400, 8150, 2000).find((b) => b.name === 'B4')!.length).toBeCloseTo(12200, 0);
expect(crossBars(10400, 8800, 2000).find((b) => b.name === 'B6')!.length).toBeCloseTo(12046, 0);
});
});