feat(rebar): 현장타설 말뚝 · 다주형 코핑 형상과 철근 계산
- 현장타설 기둥·말뚝 형상(cast-in-place-shape)과 주철근·횡철근·커플러 계산(rebar/cast-in-place, cast-layout) - 다주형 코핑 철근(multicol-coping), 기둥 높이 · 양단부 연장 - 철근표 요약 · 재료 수량 · 3D 뷰 연결과 삽도(cast-rebar-svg) - 검사 기준 갱신과 회귀 테스트, 검증 스크립트 보관 Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3922b330d5
commit
2e0bfb6fc8
29 files changed
+1750
-71
No files matched your search
@@ -4,6 +4,8 @@ import type { PierInput } from './types';
|
||||
import type { AbutRecord } from './abut/parse';
|
||||
import { abutNameError } from './abut/name';
|
||||
import { normalizeBearingAzimuths } from './coordinate-frame';
|
||||
import { castSettingsIssues } from './rebar/cast-in-place';
|
||||
import { castShapeIssues } from './cast-in-place-shape';
|
||||
|
||||
/** Project file schema (spec §8). Bump only with a migration. */
|
||||
export const SCHEMA_VERSION = 1;
|
||||
@@ -95,6 +97,10 @@ export function parseProject(text: string): ProjectFile {
|
||||
}
|
||||
}
|
||||
for (const values of [p.input, p.defaults, p.draft]) {
|
||||
const shapeIssues = castShapeIssues(values?.castInPlaceShape);
|
||||
if (shapeIssues.length) throw new Error(`교각 ${input.name}: ${shapeIssues.join(' · ')}`);
|
||||
const castIssues = castSettingsIssues(values?.castInPlaceRebar);
|
||||
if (castIssues.length) throw new Error(`교각 ${input.name}: 현장타설 배근 · ${castIssues.join(' · ')}`);
|
||||
if (values?.bearingAzimuthFrame !== undefined && values.bearingAzimuthFrame !== 'model-xy') {
|
||||
throw new Error(`교각 ${input.name}: 받침 방위각 좌표계 표기가 맞지 않습니다.`);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user