feat(abut): ③ 교대 반투명 보기 · 교대 저판 전용 fck

- ③ 철근배근에서 교대 부재·지반도 교각처럼 반투명(0.5, 깊이 쓰기 끔). setRebarViewOn으로 공통화, 끄면 원래 불투명도 복원(지반 0.35 유지)
- 교대 저판 fck(abutFooting, 기본 27)를 교각 기초 fck와 분리. ② 확대기초·말뚝 카드에 입력, ③ 저판 배근·이음 길이에 반영
- 테스트 713개 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Opus 5.5 committed 2026-11-04 14:28:47 +09:00
1 parent b06bf368b6
commit 603066f370
6 files changed
+89 -24

No files matched your search

+1 -1
View File
@@ -68,7 +68,7 @@ export function parseProject(text: string): ProjectFile {
if (!Array.isArray(obj.piers)) throw new Error('piers 목록이 없습니다.');
if (obj.fckByMember !== undefined) {
for (const [member, value] of Object.entries(obj.fckByMember)) {
if (!['column', 'coping', 'footing'].includes(member) || typeof value !== 'number' || !(value > 0)) {
if (!['column', 'coping', 'footing', 'abutFooting'].includes(member) || typeof value !== 'number' || !(value > 0)) {
throw new Error(`부재별 fck 값이 맞지 않습니다 (${member}: ${String(value)}).`);
}
}
+4 -4
View File
@@ -84,15 +84,15 @@ export function materialFrom(raw: unknown): Material {
}
/** Members that can take their own fck on ② (부재 카드). Other members always use the 공통 fck. */
export type FckMember = 'column' | 'coping' | 'footing';
export type FckMember = 'column' | 'coping' | 'footing' | 'abutFooting';
/** The members of {@link FckMember}, for the ② cards. */
export const FCK_MEMBERS: readonly FckMember[] = ['column', 'coping', 'footing'];
export const FCK_MEMBERS: readonly FckMember[] = ['column', 'coping', 'footing', 'abutFooting'];
/** Per-member fck (MPa). A member without an entry uses the ③ 공통 설정 fck. */
export type FckByMember = Partial<Record<FckMember, number>>;
/** 교각도 기준 부재별 기본 fck (MPa). 되돌리기는 이 값으로 돌아가고, 이 값과 다르면 주황색으로 표시합니다. */
export const IMPORTED_FCK: Record<FckMember, number> = { column: 40, coping: 40, footing: 27 };
/** 교각도 · 교대도 기준 부재별 기본 fck (MPa). 되돌리기는 이 값으로 돌아가고, 이 값과 다르면 주황색으로 표시합니다. 교대 저판 27 (spec_abut §6, 2026-11-03). */
export const IMPORTED_FCK: Record<FckMember, number> = { column: 40, coping: 40, footing: 27, abutFooting: 27 };
/** True when the member's fck is set and differs from its imported default. An unset member is not changed. */
export function fckChanged(byMember: FckByMember, member: FckMember): boolean {