fix(rebar): 다주형 코핑에서 C5·C6 제외 (전용 삽도 근거 없음)

1106 엑셀 '2주형 3주형' 삽도(A92·A61·A38)에 C5·C6이 없어
다주형 상면 주철근 생성에서 제외했다. T형 레거시 경로는 변경하지 않는다.
경고 문구·화면 안내를 갱신하고 제외를 고정하는 테스트를 추가했다.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-11-06 13:50:30 +09:00
1 parent da7b13a568
commit 42316104df
4 files changed
+14 -3

No files matched your search

+3 -1
View File
@@ -45,8 +45,10 @@ export function multicolCopingBars(model: PierModel, material: Material = DEFAUL
};
const width = widthLayout(B * 1000, settings);
const ns = [width.yE, ...Array.from({ length: width.n + 1 }, (_, i) => width.yE + width.g + width.spacing * i), B * 1000 - width.yE].map(v => v / 1000 - B / 2);
// C5/C6 correspondence and cycle-specific splice locations remain explicitly pending.
// C5/C6 are excluded from the multi-column layout: the 1106 전용 삽도 (A92 · A61) shows no C5/C6 (대안A, 2026-11-06).
// Cycle-specific splice locations remain explicitly pending.
for (let k = 1; k <= 3; k++) for (const [j, n] of ns.entries()) {
if (j % 2 === 0 && k > 1) continue;
const name = `C${k + (j % 2 ? 0 : 3)}`;
const size = Number(name.slice(1)) <= 4 ? 'H25' : 'H29';
const d = NOMINAL_DIAMETER[size];
+1 -1
View File
@@ -389,7 +389,7 @@ export function rebarSummary(
for (const [name, bars] of grouped) rows.push({ member: 'coping', name, size: bars[0].size,
count: bars.length, length: null, pieces: bars.map(b => ({ length: b.length, count: 1 })),
note: '다주형 전용 삽도 규격 · 실제 콘크리트 하면에 따른 조각별 중심선 길이. 번호·cycle별 이음 상세 확인 필요' });
warnings.push({ code: 'RB-M02', target: 'coping', message: '다주형 전용 삽도 우선: C1~4 H25·C7 H29·C8 H25·전단 H22·수평/C14 H16. C5/C6 및 C11/C13 중복 번호·cycle별 이음 위치·분리 수평철근 갈고리는 상세 확인 필요. 해당 수량은 검토용입니다.' });
warnings.push({ code: 'RB-M02', target: 'coping', message: '다주형 전용 삽도 우선: C1~4 H25·C7 H29·C8 H25·전단 H22·수평/C14 H16. C5/C6은 전용 삽도에 없어 제외했습니다. C11/C13 중복 번호·cycle별 이음 위치·분리 수평철근 갈고리는 상세 확인 필요. 해당 수량은 검토용입니다.' });
warnings.push({ code: 'RB-M01', target: 'coping', message: '다주형 C14는 전용 삽도의 H16·기본600 간격과 실제 하면을 사용합니다. 기둥별 반복·번호 대응 상세는 확인이 필요합니다.' });
warnings.push({ code: 'RB-M03', target: 'column', message: '다주형 단부는 삽도의 지름 이상·코핑 반높이 연장을 적용했습니다. P4/P5 번호는 기존 역할(단부 P5·기초내 P4)을 유지하며 도면 번호 대응 확인이 필요합니다.' });
}
+1 -1
View File
@@ -2810,7 +2810,7 @@ function renderCopingSettings(box: HTMLDivElement, pier: Pier): void {
const defaults = copingDefaults(pier.model.columns.length);
const current: CopingRebarSettings = { ...defaults, ...pier.draft.copingRebar };
wrap.appendChild(el('p', `코핑 배근 입력 (기본값 = ${pier.model.columns.length > 1 ? '1106 다주형 전용 삽도' : '코핑철근.md'} · 적용을 눌러야 반영)`, 'lbl'));
if (pier.model.columns.length > 1) wrap.appendChild(el('p', '전용 삽도 규격 우선 · C5/C6·중복 번호와 cycle별 이음 위치는 확인 중입니다. 저장된 간격 입력은 기본값보다 우선합니다.', 'muted small'));
if (pier.model.columns.length > 1) wrap.appendChild(el('p', '전용 삽도 규격 우선 · C5/C6은 삽도에 없어 제외했고, 중복 번호와 cycle별 이음 위치는 확인 중입니다. 저장된 간격 입력은 기본값보다 우선합니다.', 'muted small'));
const grid = el('div', undefined, 'edit-fields');
const controls = new Map<keyof CopingRebarSettings, HTMLInputElement | HTMLSelectElement>();
for (const f of COPING_REBAR_FIELDS) {