공용 파일(main.ts·index.html·style.css)에서 서로 얽혀 있어 한 커밋으로 묶음. - 지반: ① 형상 프로젝트 지반모델 관리창(생성·JSON 불러오기·교각별 비교·선택 적용), 프로젝트 JSON 내장 groundModel 추출, 교대 8행 통합 적용·공통지형 중복격자 제외 - 재료표·수량: 상단 ⑤ 메뉴·배근 바로가기, 결과 교각/탭 기억, 수량 워크북·정합 보정 - 랜딩: 옥성교 6교각 히어로 이미지·투영 강조점·좌→우 광선·지형 라운드/도로 연결 - 검증 스크립트(verify-project-ground/ground-abutments/okseong-user-files/quantity-*/landing-hero 등) 정본: DOC/04_실행/실행_*_2026-11-09_v0.1.00.md Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
교각 수량산출
현재 출력 방식: 전체 교각 입력에서 교각별 미입력값을 함께 입력하고, Excel 출력은 전체 교각별 산출서와 합산 집계표를 생성합니다. 수량산출_ex) 예시·미사용 시트는 결과에서 제외합니다. 전체 교각 개선 보고서를 참고하세요. 아래의 초기 단일 교각 검증 기록과 현재 출력 시트 수는 다를 수 있습니다.
5. 재료표 탭의 교각 수량산출에서 현재 생성된 교각을 선택합니다. 기존 철근재료표 메뉴는 그대로 유지합니다.
- 자동 입력값을 확인합니다. 길이/EL은 m, 본수는 개, 횡경사는 %입니다.
- 비어 있는 직접 입력값을 확인해 입력합니다. 토층 깊이·지하수위는 현장값을 사용하고, 시험 횟수·시설 수·재료 규격은 원본 Excel 기본값을 표시하므로 적용 여부를 확인합니다.
- 원본 산식/고정 기준의 적용 여부를 확인하고 체크합니다.
- 재계산을 누릅니다. 중앙 항목을 클릭하면 우측에서 원식·대입값과 해당 원본 셀을 함께 확인할 수 있습니다.
- 완료 상태에서 Excel 출력을 누릅니다.
화면은 좌측 입력·누락 검토 / 중앙 요약·수량표 / 우측 원본 미리보기·산식 상세의 3열 대시보드입니다. 상세 변경과 검증 결과는 대시보드 보고서를 참고합니다.
직접 입력은 input.quantityTakeoff 확장 필드로 교각별 저장되며 기존 프로젝트 JSON 저장·열기·백업을 사용합니다. 형상을 다시 생성하면 자동값은 갱신하고 직접 입력은 유지합니다. 형상/재료표 철근량/직접 입력이 바뀌면 재계산이 필요합니다.
원본과 계산
- 원본:
교각수량산출.xlsx(13시트). 원본은 변경하지 않습니다. - 29개 관련변수와 철근량/시험·시설 직접값 4개를 식별했습니다. 말뚝 두께 Tp는 원본 수량식에서 사용하지 않는 참고변수이므로 누락만으로 출력 완료를 막지 않습니다.
- 철근량은 기존 재료표가 길이 누락 없이 계산됐을 때 할증 전 kg/1000을 자동 연결합니다. 미산정 철근이 있으면 직접 확인한 철근량이 필요합니다.
- 받침 제원·지하수위 등은 모델/입력에 있으면 자동 연결합니다. 블럭 높이는 동일 평면 크기에 대해 높이 합/Nb의 등가값을 사용합니다. 서로 다른 말뚝 직경·길이, 일체 교좌면 등은 원본 단일변수식에 임의로 맞추지 않습니다.
- 원본의 실제 수식을 파싱해 평가합니다. 3D 체적을 수량으로 대체하지 않습니다.
ANALYSIS.md에 시트·변수·수량항목별 원식과 원본 위치,MAPPING.md에 자동/수동 매핑이 있습니다.
중요: 원본 산식 적용 범위
원본은 단일 원형 기둥, 직사각형 기초 1개, 균일 제원의 말뚝, 곡률 R을 가진 코핑 계산체계입니다. 다기둥·꺾인 교각·일체 교좌면·PHC 시공 및 8m 초과 토공은 검토 상태로 표시하고 완료 출력을 제한합니다. 수량/형상 관계를 임의 배수로 확장하지 않습니다.
현재 모델의 직선 코핑에는 원본 곡률식의 R→∞ 극한식을 명시적으로 적용합니다. 횡경사는 실제 양 끝 표고차의 등가값이며 돌출부가 없는 모델은 0입니다. 원본에 고정된 버림/몰탈/솔플레이트 여유와 현재 모델이 다른 경우는 별도 검토가 필요합니다.
원본 W51의 기둥 거푸집 산식은 적힌 Hcol 설명과 다릅니다. W50의 계수 및 W63의 표시 두께와 실제 계산 두께도 불일치합니다. 이들을 임의 수정하지 않고 화면에 표시합니다. 원본 수식 일치는 설계 수량의 타당성 승인을 의미하지 않습니다.
Excel 출력 방식
- 원본 ZIP 패키지를 복사하고 입력셀·제목·수식 계산캐시만 변경합니다. WMF/도형은 일반 라이브러리 재저장 시 손실될 수 있어 OOXML 패키지를 직접 보존합니다.
- 선택 교각은 P1 슬롯을 사용합니다. 표지/변수/상세/집계의 명칭을 실제 교각명으로 바꿉니다.
- 13시트는 유지합니다. P2~P6 비선택 교각의 숫자·수식은 빈 상태로 만들고 미사용으로 표시합니다. 그 결과가 집계에 원본 예시 수량으로 섞이지 않습니다.
_ex)는 명시적인 원본 참고 예시로 유지합니다. - 선택 교각 수식 121개 중 119개는 원식을 유지하고 직선 코핑의 W50/W58 두 식에는 명시한 극한식을 적용합니다. 재료 규격은 사용자가 확인한 텍스트를 반영합니다. 집계 수식과 원본 표시형식/병합/인쇄 설정을 유지합니다.
- 계산된 캐시를 넣고 Excel 열기 시 전체 재계산하도록 설정합니다. 출력마다
outputs/<ID>/에 입력 패치와 검증 보고서를 남깁니다. - 실제 Microsoft Excel COM 재계산은 이 PC에서 호출 거부/대기시간 초과로 완료하지 못했습니다. 원본 cached 값 비교, Artifact Tool 재계산/렌더, ZIP/수식/오류 검사를 수행했습니다.
검증 결과
- 원본의 수식 캐시 1,214개: 계산 엔진과 비교해 차이 0건(상대/절대 허용오차 1e-8).
- 선택 교각 수식 121개 유지, 13시트 유지, 도형/이미지/스타일/인쇄기 설정 등 57개 패키지 부품 바이트 일치.
- 병합/인쇄설정/열너비 유지, 출력 캐시의 Excel 오류 0건, 비선택 교각 수량 빈 상태 확인.
- 실제 운곡교 P1 연결: 모델 자동값, Excel 기본값, 직접 입력을 구분합니다(개수는 모델에 따라 달라짐). 53개 상세 항목, 교각 전환 후 입력 유지, Excel 다운로드 및 기존 재료표 표시를 브라우저에서 확인했습니다.
docs/*-verification.json에 근거를 저장했습니다.outputs/verification/운곡교P1_모델연동.xlsx는 실제 모델 연동 출력 검증본이며 직접 입력값에는 원본 예시 조건을 검증용으로 적용했습니다. 현장 조건이 확정된 설계 결과로 간주하지 않습니다.
모듈 및 연결
template-data.ts,tools/analyze.py: 원본 셀·수식·표시형식/변수 분석.formula.ts: 제한된 원식 파서 및 계산·참조 추적(동적 코드 실행 없음).model.ts,schema.ts: 기존 모델 매핑, 직접입력, 적용 범위, 결과/동일 행·단위 집계 기반.workspace.ts,workspace.css: 재료표 탭 내부 UI.export.ts,server.ts,tools/preserve_template.py: 원본 보존 출력.- 외부 연결은
src/main.ts의 기존 상태/재료표 결과 연결과vite.config.ts의 로컬 출력 API 등록만 변경했습니다. 코어 모델/철근 계산 로직은 변경하지 않습니다.
실행 및 검증 명령
npx vitest run 수량산출/formula.test.ts 수량산출/model.test.ts
npx tsc --noEmit
pierzainer_ground/.venv/Scripts/python.exe -B -X utf8 수량산출/tools/analyze.py
원본을 교체하면 analyze.py로 분석 데이터를 다시 생성하고 전체 비교 검증을 다시 해야 합니다. 로컬 Vite 개발/preview 서버와 기존 Python 환경이 필요합니다. 정적 호스팅만으로는 Python Excel 출력을 실행할 수 없습니다.
추후 범위: 다기둥/꺾인/비대칭 형식별 승인 산식, 원본 설명식 불일치의 설계자 결정, 전체 교각 총괄 출력 UI, 실제 Excel/현장 규격 확인. 현재 총괄 계산은 행·단위별 집계 함수로 준비했으며 서로 다른 공종을 무조건 합하지 않습니다.
Excel 샘플형 화면
수량산출서 미리보기에서 원본의 수량집계/관련변수/상세 산출서를 선택할 수 있다. 원본에서 추출한 병합셀, 행 높이, 열 너비, 글꼴, 테두리, 바탕색, 소수 표시형식으로 현재 계산값을 그린다. 80~150% 확대를 지원하며 수량 셀은 원식 추적과 연결된다. 빈 입력은 미산정으로 표시하고 원본의 예시 수량으로 대체하지 않는다. 미리보기의 원본 인쇄영역 밖 그림은 표시하지 않지만 Excel 출력에는 기존 WMF·도형 패키지를 그대로 보존한다. tools/extract-layout.py는 원본을 읽기만 하고 template-layout.ts를 생성한다.
표지부터 전체 보기
미리보기 기본값은 원본 순서의 13시트를 이어 보여주는 전체 보기다. 표지/목차, 집계, 토공·구조체 산출기준(원본 설명 그림 포함), 관련변수와 설명도, 참고 예시, P1P6 상세 양식을 모두 표시한다. 개별 시트 선택 및 이전/다음 이동도 지원한다. 표지의 프로젝트/교량/교각명은 현재 정보로 바꾼다. 비선택 P2P6는 출력과 동일하게 미사용 빈 양식으로 보이며 원본 예시 수량을 현재 프로젝트 수량으로 표시하지 않는다. 산출기준 그림은 원본 참고도이고 현재 교각 형상을 새로 만든 것이 아니다.
원본 변경 시 tools/extract-layout.py와 검증용 Artifact Tool의 tools/render-reference-pages.mjs도 다시 실행해야 한다. 원본 Excel 자체를 재저장하지 않는다.
입력 자동화 기준 변경 (사용자 지정)
지하수위/토사/풍화암/연암 깊이는 직접 입력한다(기존 지하수 입력이 있는 경우 연동). E.O.I.D=원본 K68(2회), Restrike=K69(2회), 점검시설=K74(1EA), 콘크리트·받침·몰탈 규격은 원본 Excel 셀에서 기본값으로 채우며 수정 가능하다. 기존 직접값을 입력한 경우 보존한다.
횡경사는 현재 모델 양단 상면 차/Lc의 등가 경사이고, 별도 돌출부가 없는 현재 모델의 a는0이다. 곡률을 갖지 않는 현재 코핑은 R을 임의의 숫자로 만들지 않는다. W50/W58에서 원본 원호항의 R→∞ 극한(원호길이→현 길이, 원호 공제면적→0)을 적용한다. 이 두 식은 출력 Excel에도 명시적으로 적용하고 나머지 원식은 유지한다. R 입력셀은 비운다. 원본 파일과 원본 곡선식 비교 시험은 변경하지 않는다. 예시 시트는 원본 입력값을 독립적으로 보존한다.
받침 A/B 및 솔플레이트 T가 모델/공통 입력에 있으면 자동 연동한다. 모델에 해당 본체 제원이 없는 샘플은 블럭 크기를 받침 크기로 대체하거나 원본 예시 치수를 실제 치수로 가장하지 않는다. 해당 항목에 필요한 실제 제원은 별도 확인이 필요하다. 제원이 모두 있는 단일기둥 모델에서는 지하수와 토층 깊이4개만 직접 입력하면 된다(철근량이 기존 재료표에서 완전하게 계산된 경우).