feat(view): 확대기초·말뚝 plan and side drawings on ② (2단계), drawn from the model
The footing card shows a plan (footing rectangle, pile circles, column, pier axis, mm labels) and an elevation (footing, piles to their tips, column, h1 and pile length). The drawings are SVG strings built from the model, so they follow the inputs. θ is noted as not yet applied. Tests check the pile count, the mm labels and the width input. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
df19cc47e9
commit
675f8124ca
4 files changed
+117
No files matched your search
+17
@@ -19,6 +19,7 @@ import { parseDrawingRows } from './core/drawing-import';
|
||||
import { parseBearingElevationTable, parseSolplateTable, readDxfTexts } from './core/dxf-table';
|
||||
import { columnDiameterIssues } from './core/column-check';
|
||||
import { findPileSpec, PHC_PILES, STEEL_PILES } from './core/pile-spec';
|
||||
import { footingPlanSvg, footingSideSvg } from './view/footing-svg';
|
||||
import { P1_COPING_GEOM } from './core/coping-geom';
|
||||
import { applyBearingRules, BEARING_ELEVATION_REF, BEARING_RULES_DEFAULT, type BearingBasis, type BearingRules, type DrawingBearing, DRAWING_TOL_MM, drawingCopingCheck, SOLPLATE_REF, SOLPLATE_T_RULE, solplateTs, withDrawingBasis } from './core/bearing-ref';
|
||||
|
||||
@@ -716,6 +717,21 @@ function footingLengthOf(p: Pier): number | undefined {
|
||||
return p.model?.footings[0]?.length;
|
||||
}
|
||||
|
||||
/** 확대기초·말뚝 그림 (2단계, 승인 2026-10-23): plan and side views drawn from the model; θ is shown as a note. */
|
||||
function renderFootingDrawings(box: HTMLDivElement, pier: Pier): void {
|
||||
if (!pier.model) return;
|
||||
const wrap = el('div', undefined, 'footing-drawings');
|
||||
const plan = el('figure', undefined, 'footing-fig');
|
||||
plan.innerHTML = footingPlanSvg(pier.model);
|
||||
plan.appendChild(el('figcaption', '평면 · 1열이 아래, 열은 교축과 직각 방향 줄', 'muted small'));
|
||||
const side = el('figure', undefined, 'footing-fig');
|
||||
side.innerHTML = footingSideSvg(pier.model);
|
||||
side.appendChild(el('figcaption', '정면 · 점선 = 경사 선택 시 상면 (L2, h2)', 'muted small'));
|
||||
wrap.append(plan, side);
|
||||
wrap.appendChild(el('p', '기초 회전각 θ는 교각축 대비 회전으로, 생성 규칙은 spec에 추가 후 적용합니다 (지금은 0°).', 'muted small'));
|
||||
box.appendChild(wrap);
|
||||
}
|
||||
|
||||
/** 말뚝 규격 (승인 2026-10-23): 강관 and PHC from their lists by outer diameter and wall; the inner diameter, area and weight are read. */
|
||||
function renderPileSpec(box: HTMLDivElement, pier: Pier): void {
|
||||
const kind = pier.draft.pileKind ?? '강관';
|
||||
@@ -1645,6 +1661,7 @@ function renderPlan(): void {
|
||||
if (member.id === 'footing') {
|
||||
renderPileSpec(fields, pier);
|
||||
renderPileRows(fields, pier);
|
||||
renderFootingDrawings(fields, pier);
|
||||
}
|
||||
if (member.id === 'coping') renderCopingInfo(fields, pier);
|
||||
if (member.id === 'bearing') renderBearingRef(fields, pier);
|
||||
|
||||
Reference in new issue
Block a user