feat(rebar): 기둥 단면 A·B·C (각 그룹 첫 단, 커플러 θ+Δθ/2, P6 현 4본)
- view/column-section-svg.ts: A 일반(P3, 커플러 없음), B 단부(P5, 커플러 1), C 확대기초 안(P4, 반원 2·커플러 2) - P1·P2는 같은 각도에 r 875·843.2로 배치, 띠철근 둘레·겹침·반원 길이 표시 - P6은 P6 단이 그 높이에 있을 때만 중심을 지나는 현 4본 (0 · 46.96 · 90 · 133.04°) - 기둥 패널에서 정면 ↔ 단면 A·B·C 전환 (단면 높이는 각 그룹의 첫 단, 새 계산 없음) Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c82aff3713
commit
baaec9d7e2
3 files changed
+141
-5
No files matched your search
+32
-5
@@ -31,6 +31,7 @@ import { COPING_REBAR_RANGES, copingSettingsIssues, type CopingRebarSettings, DE
|
||||
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 { type ColumnSection, columnSectionSvg } from './view/column-section-svg';
|
||||
import { groundSectionSvg } from './view/ground-svg';
|
||||
import { parseBearingElevationTable, parseSolplateTable, readDxfTexts } from './core/dxf-table';
|
||||
import { columnDiameterIssues } from './core/column-check';
|
||||
@@ -1233,11 +1234,37 @@ function renderColumnSettings(box: HTMLDivElement, pier: Pier): void {
|
||||
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);
|
||||
// 정면 | 단면 A·B·C (승인 2026-10-26): 치수는 입력과 계산 결과, 간섭(B11–P4)은 검토 제외.
|
||||
let columnView: 'front' | 'section' = 'front';
|
||||
const figBox = el('div');
|
||||
const drawColumnFigure = (): void => {
|
||||
figBox.replaceChildren(toggleRow([['front', '정면'], ['section', '단면 A·B·C']] as const, columnView, (v) => {
|
||||
columnView = v;
|
||||
drawColumnFigure();
|
||||
}));
|
||||
if (columnView === 'front') {
|
||||
const fig = el('figure', undefined, 'ground-fig');
|
||||
fig.innerHTML = columnElevationSvg(input, col);
|
||||
fig.appendChild(el('figcaption', '정면 · 높이 기준 = 확대기초 상면 (mm) · 간섭(B11–P4)은 검토 제외', 'muted small'));
|
||||
figBox.appendChild(fig);
|
||||
return;
|
||||
}
|
||||
const captions: Record<ColumnSection, string> = {
|
||||
A: 'A 일반 · P3 첫 단 · 주철근 P1·P2 · 띠철근 P3 (겹침 표시)',
|
||||
B: 'B 단부 · P5 첫 단 · 커플러 1개 (θ + Δθ/2)',
|
||||
C: 'C 확대기초 안 · P4 첫 단 · 커플러 2개 · P6 4본',
|
||||
};
|
||||
const row = el('div', undefined, 'opts');
|
||||
for (const kind of ['A', 'B', 'C'] as const) {
|
||||
const fig = el('figure', undefined, 'ground-fig');
|
||||
fig.innerHTML = columnSectionSvg(kind, input, col);
|
||||
fig.appendChild(el('figcaption', captions[kind], 'muted small'));
|
||||
row.appendChild(fig);
|
||||
}
|
||||
figBox.appendChild(row);
|
||||
};
|
||||
drawColumnFigure();
|
||||
wrap.appendChild(figBox);
|
||||
const msg = el('p', undefined, 'muted small');
|
||||
const apply = el('button', '적용', 'btn small');
|
||||
apply.type = 'button';
|
||||
|
||||
Reference in new issue
Block a user