feat(rebar): 기둥 정면 삽도 (P 번호, 단부 배치구간·기초 안 깊이 계산값 표시)

- view/column-elevation-svg.ts: 기둥 정면 SVG. 띠철근 P3·P5·P4·P6, 주철근 P1·P2, 커플러를 계산 결과 그대로 그림
- 번호는 P1–P6 (승인), 간섭(B11–P4)은 표시하지 않음 (검토 제외)
- 단부 배치구간 l_e = max(l_e,min, n·s + s/2)와 기초 안 깊이(0.5·H_f → m4·s)는 기존 계산값을 그림과 캡션에 표시
- 기둥 입력 라벨 K → P 번호

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-10-26 16:37:36 +09:00
1 parent f619b9ea20
commit c82aff3713
3 files changed
+124 -7

No files matched your search

+14 -7
View File
@@ -30,6 +30,7 @@ import { DEFAULT_BLOCK_REBAR, type BlockRebarSettings } from './core/rebar/beari
import { COPING_REBAR_RANGES, copingSettingsIssues, type CopingRebarSettings, DEFAULT_COPING_REBAR, DEFAULT_TOP_SPLICE, type TopSpliceSettings } from './core/rebar/coping-settings';
import { COLUMN_REBAR_RANGES, type ColumnRebarSettings, columnSettingsIssues, DEFAULT_COLUMN_REBAR } from './core/rebar/column-settings';
import { columnInputFor, columnRebar } from './core/rebar/column';
import { columnElevationSvg } from './view/column-elevation-svg';
import { groundSectionSvg } from './view/ground-svg';
import { parseBearingElevationTable, parseSolplateTable, readDxfTexts } from './core/dxf-table';
import { columnDiameterIssues } from './core/column-check';
@@ -1187,11 +1188,11 @@ function renderCopingSettings(box: HTMLDivElement, pier: Pier): void {
/** 기둥 배근 입력 (승인 2026-10-26, 시안 ③ 기둥 삽도). The 주철근 하단 갈고리 is fixed. The 띠철근 간격 is three inputs (K3 · K5 · K4). */
const COLUMN_REBAR_FIELDS: { key: keyof ColumnRebarSettings; label: string }[] = [
{ key: 'c', label: 'K1 중심 피복 c (mm)' },
{ key: 'ctcP3', label: '띠철근 간격 K3 (mm)' },
{ key: 'ctcP5', label: '띠철근 간격 K5 (mm)' },
{ key: 'ctcP4', label: '띠철근 간격 K4 (mm)' },
{ key: 'ctcP6', label: '크로스타이 K6 간격 (mm)' },
{ key: 'c', label: 'P1 중심 피복 c (mm)' },
{ key: 'ctcP3', label: '띠철근 간격 P3 (mm)' },
{ key: 'ctcP5', label: '띠철근 간격 P5 (mm)' },
{ key: 'ctcP4', label: '띠철근 간격 P4 (mm)' },
{ key: 'ctcP6', label: '크로스타이 P6 간격 (mm)' },
{ key: 'ctcCoupler', label: '커플러 간격 ctcOfcoupler (mm)' },
{ key: 'dzCp2', label: 'P2 커플러 상승 Δz (mm)' },
{ key: 'nDiv', label: '주철근 원주 등분 수 n_div' },
@@ -1229,8 +1230,14 @@ function renderColumnSettings(box: HTMLDivElement, pier: Pier): void {
}
wrap.appendChild(grid);
// Read-only results of the current model (계산 값).
const col = columnRebar(columnInputFor(pier.model));
wrap.appendChild(el('p', `K2 내측 r ${col.r2} mm · P1 ${col.mainP1}본 · P2 ${col.mainP2}본 · 주철근 커플러 ${col.couplers}개`, 'muted small'));
const input = columnInputFor(pier.model);
const col = columnRebar(input);
wrap.appendChild(el('p', `P1 외측 r ${col.r1} · P2 내측 r ${col.r2} mm · 주철근 P1 ${col.mainP1}본 · P2 ${col.mainP2}본 · 주철근 커플러 ${col.couplers}개`, 'muted small'));
// 정면 (승인 2026-10-26, 시안 ③ 기둥): 치수는 입력과 계산 결과, 간섭(B11–P4)은 검토 제외.
const fig = el('figure', undefined, 'ground-fig');
fig.innerHTML = columnElevationSvg(input, col);
fig.appendChild(el('figcaption', '정면 · 높이 기준 = 확대기초 상면 (mm) · 간섭(B11–P4)은 검토 제외', 'muted small'));
wrap.appendChild(fig);
const msg = el('p', undefined, 'muted small');
const apply = el('button', '적용', 'btn small');
apply.type = 'button';