feat(rebar): 확대기초 패널 규칙 값 표시 (상면·2단, B2·B6 디리, B9, 조립 단 수) 및 "규칙" 표기

- footingRuleValues: 패널 표시값을 계산 함수에서 직접 읽음 (새 공식 없음)
- B2·B6 디리 두 값, 조립 단 수(3단) 표시
- "(고정)"은 Δ₂ 100에만 사용, 4s·2s·상면 2s는 "(규칙)"으로 표기
- 테스트: 기본값 P1에서 250 · 100 · 1723 · 500·250 · 500·3단 @400

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-10-26 17:23:57 +09:00
1 parent ddd6d55a72
commit 48e6811600
3 files changed
+57 -11

No files matched your search

+10 -1
View File
@@ -1,6 +1,6 @@
import { describe, expect, it } from 'vitest';
import { buildPier } from '../src/core/geometry';
import { assemblyJs, gridPositions } from '../src/core/rebar/footing';
import { assemblyJs, footingRuleValues, gridPositions } from '../src/core/rebar/footing';
import { DEFAULT_FOOTING_REBAR, FOOTING_REBAR_RANGES, footingSettingsIssues } from '../src/core/rebar/footing-settings';
import { rebarSummary } from '../src/core/rebar/summary';
import { loadP1 } from './helpers';
@@ -58,6 +58,15 @@ describe('확대기초 배근 입력 (승인 2026-10-26, 시안 ③ 확대기초
expect(rowsAxis.find((r) => r.name === 'B5')!.basis).toBe('default');
});
it('패널 규칙 값 (P1, H 2000): 상면·2단 250 · Δ₂ 100 · B2·B6 1723 · B9 500·250 · 조립 500 · 3단 @400', () => {
const r = footingRuleValues(2000, DEFAULT_FOOTING_REBAR);
expect([r.upper2sAxis, r.upper2sPerp, r.delta2]).toEqual([250, 250, 100]);
expect(r.b2Leg).toBeCloseTo(1723, 0);
expect(r.b6Leg).toBeCloseTo(1723, 0);
expect([r.b9Pitch, r.b9Stagger]).toEqual([500, 250]);
expect([r.assemblyPlanPitch, r.assemblyVertical, r.assemblyLevels]).toEqual([500, 400, 3]);
});
it('the 조립 단 배수 n reaches the assembly levels', () => {
const H = 2000;
const base = assemblyJs(H, DEFAULT_FOOTING_REBAR);