feat(abut): 벽체·흉벽 카드를 시안대로 정리 (구간 표, 교좌면 폭, 형상 카드 상시 표시)
- 형상 카드(삽도, 입력 격자, 확인 필요 노트)를 접히는 편집 영역 밖으로 옮김. 벽체·흉벽 카드를 열면 편집 토글과 무관하게 보임 - 전면 입력 라벨을 "교좌면 폭 (흉벽 전면 기준, mm)"으로 바꿈 (시안의 교좌면 폭 1600과 같은 값) - 구간 표 추가: 구간, 시작, 끝, 교좌면 EL, 받침블럭 높이, 벽체 높이 (모델과 부재에서 계산) - 확인 필요 패널은 아직 형상 카드 안(입력 격자 아래)에 있음. 시안처럼 오른쪽 열로 옮기지는 않음 - 테스트 641건 통과, 타입 검사·빌드 통과. 브라우저 시각 확인은 미실시 Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a14497a771
commit
842d372312
5 files changed
+46
-7
No files matched your search
@@ -71,7 +71,7 @@ export function applyShapeEdit(rec: AbutRecord, key: keyof AbutShape, value: num
|
||||
|
||||
/** 형상 입력 fields on the 교대 카드 (시안 ② 벽체·흉벽, 확대기초·말뚝), in the order of the mockup. */
|
||||
export const SHAPE_EDIT_FIELDS: { key: keyof AbutShape; label: string }[] = [
|
||||
{ key: 'wallFrontMm', label: '벽체 전면 (교대축 기준, mm)' },
|
||||
{ key: 'wallFrontMm', label: '교좌면 폭 (흉벽 전면 기준, mm)' },
|
||||
{ key: 'wallThicknessMm', label: '벽체 두께 (mm)' },
|
||||
{ key: 'parapetHeightMm', label: '흉벽 높이 (mm)' },
|
||||
{ key: 'parapetThicknessMm', label: '흉벽 두께 (mm)' },
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
import type { AbutRecord } from './parse';
|
||||
import { buildAbut, type AbutModel } from './geometry';
|
||||
import { toAbutInput } from './parse';
|
||||
import { buildMembers } from './members';
|
||||
import { buildMembers, type AbutMembers } from './members';
|
||||
import { buildWings } from './wings';
|
||||
|
||||
const m3 = (v: number) => `${v.toFixed(3)} m`;
|
||||
@@ -76,3 +76,20 @@ export const ABUT_DETAIL_LABELS = [
|
||||
'말뚝 선단 EL',
|
||||
'접속슬래브 폭',
|
||||
];
|
||||
|
||||
/** 구간 표 of the 벽체·흉벽 card (시안 하단): one row per 교좌면 step (2026-11-03). Values come from the model and members. */
|
||||
export const ABUT_SEGMENT_HEADER = ['구간', '시작 (m)', '끝 (m)', '교좌면 EL (m)', '받침블럭 높이 (mm)', '벽체 높이 (m)'];
|
||||
|
||||
export function abutSegmentRows(model: AbutModel, members: AbutMembers): string[][] {
|
||||
const circled = ['①', '②', '③', '④', '⑤', '⑥', '⑦', '⑧'];
|
||||
const bearings = [...model.bearings].sort((a, b) => a.s - b.s);
|
||||
return members.wallSegments.map((seg, k) => [
|
||||
circled[k] ?? String(k + 1),
|
||||
seg.sFrom.toFixed(3),
|
||||
seg.sTo.toFixed(3),
|
||||
seg.seatEl.toFixed(3),
|
||||
String(bearings[k]?.blockHeightMm ?? '—'),
|
||||
(seg.seatEl - members.footingTopEl).toFixed(3),
|
||||
]);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user