From 2a28d5a4dd8a1a3f09dd7bf48636c90d1c39ea14 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 22 Oct 2026 00:54:17 +0000 Subject: [PATCH] docs: correct meta claims and rewrite README after Step 3 verification - meta: lining lower haunch (not modelled, 492 mm), base (drawing has top/bottom lines, 105 mm), superelevation sign at 5+470 (user: keep +2%) - README: replace obsolete skeleton description with current outputs, verification summary and accepted limitations Co-Authored-By: Claude Haiku 5.5 Claude-Session: https://claude.ai/code/session_01A5Cun3RHQKna9qxE6ybZ4A --- README.md | 62 +++++++++++++++++++++++++++-------- model/tunnel_solids_meta.json | 8 ++--- 2 files changed, 52 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index ef73b72..d600c2c 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,56 @@ -# 대산2터널 본선 3D 골격 (Code/3d-drawing) +# 대산2터널 본선 3D 솔리드 모델 (Code/3d-drawing) + +대상: 본선 4+745 ~ 5+480 (당진방향), 도면 C0060303-001 기준. 판정 근거는 `DOC/05_검증/검증_본선3D솔리드모델_2026-10-22_v0.1.00.md`. + +## 실행 (뷰어) -## 실행 1. 이 폴더(`Code/3d-drawing`)에서 HTTP 서버를 엽니다. 예: `python3 -m http.server 8000` 2. 브라우저에서 `http://localhost:8000/viewer/` 를 엽니다. - `file://`로 열면 GLB를 불러올 수 없습니다. + - three.js 0.160.0 (jsDelivr CDN) 사용. 인터넷 연결 필요. -## 구성 -- `model/tunnel_skeleton.glb` : 중심선·표준단면 스윕 골격 (4+745 ~ 5+480) -- `model/tunnel_skeleton_meta.json` : 범위, 출처, 근사 항목, 미완 항목 -- `data/` : 추출 중간 결과 (CSV, JSON) -- `scripts/` : 추출·생성 스크립트 (재현 순서는 아래) -- `viewer/index.html` : three.js 0.160.0 기반 뷰어 (jsDelivr CDN) +## 산출물 (model/) -## 재현 순서 -1. `inventory_dxf.py` → 2. `extract_alignment_plan.py` → 3. `extract_profile_gl.py` → 4. `dump_std_table.py` → 5. `build_skeleton.py <이 폴더>` +- `tunnel_solids.step` : B-rep 솔리드 320개 (build123d 0.13, 91.7 MB, git 제외) +- `tunnel_solids.glb` : 뷰어용 지오메트리 326개 +- `tunnel_solids_meta.json` : 구성요소 목록, 지보패턴 구간 40개, 가정·미확정 항목 + +구성요소: 라이닝 · 굴착 여유대 · 노면 포장 280 mm · 기층·인버트(가정) · 배수 측구 L/R · 공동구 H/I(가정) · 시설한계 50 mm 참조선(솔리드 아님, 6개). +구성요소는 지보패턴 구간 경계(40구간)에서 분할되어 있습니다. + +## 데이터 (data/) + +- `pattern_stations_dangjin.csv` : 당진방향 지보패턴 측점표 (42행, 개착부 포함) +- `verify_solids.json` : 모델 생성 검증 요약 (솔리드 수, 구간, 부피 합) +- `verify_geom_hd2_results.json` : 도면↔모델 단면 편차 측정 결과 (4+745, 5+100, 5+470) +- `verify_lining_judgement.md` : 라이닝 도면 판독 판정 (이전 Task) + +## 스크립트 (scripts/) + +- `build_solids.py` : B-rep 솔리드 생성 (모드: parts_a, parts_b, mesh, step, final) +- `verify_solids_step3.py` : 결정론 점검 M1~M6, S1~S2, G1 (9/9 PASS) +- `verify_geom/` : 도면↔모델 단면 편차 측정 스크립트 (독립 에이전트 실행) +- `verify_lining.py`, `verify_viewer_headless.py` : 라이닝 판독·뷰어 헤드리스 점검 (이전 Task) +- 그 밖의 `extract_*.py`, `inventory_dxf.py`, `dump_std_table.py` 등은 DXF·엑셀 추출 스크립트 + +## 검증 결과 요약 (2026-10-22) + +- 결정론 점검 9/9 PASS (생성 세션 자기검증). +- 도면 기준 편차 (±50 mm 허용): + - 라이닝 내측·상부·내측 헌치: 기준 이내 (17.5~21.5 mm) + - 라이닝 외측 하단 헌치 호: **미모델링, 최대 492 mm** — 사용자 결정으로 한계 수용 + - 기층 하면: **최대 105 mm** — 사용자 결정으로 한계 수용 + - 배수 측구 본체: 기준 이내 (14.5 mm). 상부 덮개 (도면 폭 450 mm, 78 mm)는 **설계 범위에서 제외** (사용자 결정) + - 굴착·노면 포장: 기준 이내 (14~22 mm) +- 편경사: 4+745·5+100은 도면 부호와 일치. 5+470 +2%는 도면 −2%와 상이 — **현 가정 유지** (사용자 결정, 미확정). ## 한계 (반드시 읽을 것) -- 2D 도면 재구성 골격이며 실측 모델이 아닙니다. -- 측벽은 수직, 인버트 미모델링. 근사 항목은 meta JSON에 기록. -- 4+700~4+745, 5+480~5+500은 [미확정]으로 제외. -- 지보패턴별 구간(03-003~008)과 라이닝 구조도 상세(04-004~009)는 아직 반영하지 않음. + +- 공동구 H/I 박스는 **가정**입니다. 03-001에 박스 외형이 없고, 04-001~003 공동구·배수 계획도는 아직 대조하지 않았습니다. +- 기층·인버트 형상·두께는 **가정**입니다 (위 편차 한계 수용). +- 라이닝 구조도 상세(04-004~009)의 선분 기하는 대조하지 않았습니다. 판정은 03-001 기준입니다. +- 굴착 지보 등급(NP-4/5/6)은 모델에 반영하지 않았습니다. 굴착 여유대는 대칭 가정입니다. +- 라이닝·굴착 솔리드 사이에 약 0.0173 m² 겹침이 있습니다 (단순화). +- 측점 간 축선은 선형 보간, 단면은 10 m 간격 Ruled loft 근사입니다 (곡선부 근사). +- 뷰어: 1366×768 해상도에서 좌측 패널이 약 60 px 넘칩니다. 버튼 높이 36 px (WCAG AA 24 px 충족, AAA 44 px 미충족). Pretendard 폰트는 내장하지 않았습니다. +- 미확정 패턴(E-1, E-2, RP-2, WL-3)과 NP-5BE-1-WL-4 해석은 당진 표 밖이거나 확인 필요입니다 (`OPEN_미해결목록.md` 참조). diff --git a/model/tunnel_solids_meta.json b/model/tunnel_solids_meta.json index 89505cf..b3b79c2 100644 --- a/model/tunnel_solids_meta.json +++ b/model/tunnel_solids_meta.json @@ -10,18 +10,18 @@ 483688.46 ], "sections": { - "lining": "rev2: 라이닝 R6982/R7282, 하단 호 도면 끝점까지", + "lining": "rev2: 라이닝 R6982/R7282 (내측·상부 호, 내측 헌치). 외측 하단 헌치 호는 미모델링 (도면 끝점 대비 최대 492 mm, Step 3 FAIL, 사용자 결정: 한계 수용)", "excavation": "굴착 여유대 R7402/R4574/R4819 (노면 위)", "road": "계획고 노면 포장 280 mm, 측점별 편경사 S (노면만)", - "base": "기층·인버트: 가정 (도면 미표현)", + "base": "기층·인버트: 가정 (03-001 상면·하면선 존재. 상면 편차 ≤11 mm, 하면 편차 105 mm, Step 3 FAIL, 사용자 결정: 한계 수용)", "drains": "측구 300x836 mm, 관 r150", "hi": "H/I 박스: 공동구 가정(사용자 결정)", "clearance": "시설한계 50 mm 참조선 (솔리드 아님)" }, "assumptions": [ - "기층·인버트 형상·두께는 가정 (도면 미표현, 사용자 결정 '가정하여 생성')", + "기층·인버트 형상·두께는 가정 (사용자 결정 '가정하여 생성'. 03-001 상·하면선과 대조, 하면 편차 105 mm 한계 수용)", "H/I 박스 = 공동구 가정 (사용자 결정)", - "편경사 부호 z = (S/100)·x, x = 접선 좌측 법선 (부호 확인 필요)", + "편경사 부호 z = (S/100)·x, x = 접선 좌측 법선 (4+745·5+100은 도면 부호와 일치. 5+470 +2%는 도면 −2%와 상이, 사용자 결정: 현 가정 유지)", "라이닝·굴착 여유대는 대칭 (편경사 미적용)", "측점 간 축선은 선형 보간, 단면은 10 m 간격 Ruled loft (곡선부 근사)", "라이닝 H/I 박스 제외 부분은 3D 불리언 차감 (공동구 가정)"