chore(rebar): Pier_T_rebar 작업 폴더 초기 구성 및 외부 의존 파일 통합

- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환
- Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용
- pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관)
- worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md)
- D:\Rhino-MCP 경로 참조를 새 위치로 치환

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ahnyongjooandClaude Sonnet 5.5 committed 2026-10-28 11:20:18 +09:00
commit 964a841de1
3978 files changed
+58013356

No files matched your search

@@ -0,0 +1,124 @@
# Task_산외교울산P1모델링_2026-10-13_v0.1.00
| 항목 | 내용 |
|---|---|
| 담당자 | 심영표 (이전 Task와 같음) |
| 일자 | 2026-10-13 |
| Task 식별자 | Task_산외교울산P1모델링_2026-10-13_v0.1.00 |
| 선행 Task | `prompt/심영표/2026-10-12/Task_운곡교P2교각도면판독_2026-10-12_v0.1.00.md` |
| 경로·모드 | 코딩·판독 / ① 형상부터 앱 확장(사용자 선택) — 형상 단계 끝에서 보고 |
## INPUT
### [1]
```
[원문]
교각배근도(울산P1).dwg 를 모델로 변환해줘
```
### [2]
```
[원문] (진행 방법 확인 응답)
진행 방법 = "① 형상부터 앱 확장 (Recommended)"
교각 이름 = "산외교울산P1 (Recommended)"
```
### [3]
```
[원문]
한글로 번역해줘
```
(형상 단계 보고를 영어로 한 데 대한 지적 → 이후 모든 보고 한국어)
### [4]
```
[원문]
진행해줘
```
(철근 단계 G2~G4 진행 지시)
## PROCESS
1. Step 0
- 원본 `RAG/교각배근도(울산P1).dwg` 확인
- 휴지통에서 사용자 시도 2회를 확인: 템플릿(P1) 값 그대로 게이트를 실행한 흔적
- 판독용 변환(`Code/울산P1판독/dxf`), 문자 1,148개 색인
2. 도면 파악: 1개 DWG에 일반도(1) + 배근도(1)~(3)
- 형식이 운곡교와 다른 T형: 직접기초(말뚝 없음), Ø2.5 기둥 22.6 m, 직선 경사 코핑(끝면 300 경사, 상면 130 단차, 평면 R500), 받침 4개
- 현재 앱으로는 불가하다고 보고 → 방법 ① 선택
3. S1 판독(일반도 정면·측면·평면·단면 A-A·교량받침 상세)
- 작도 좌표가 mm, 기둥 중심 x −88,384.7, 기초 하면 y −23,989.8
- 규칙 정리: 대좌 C3 × C6, 패드 (A+200)/(A+100), 받침 A × B, 솔플레이트 두꺼운 쪽 +Y
- 평면 작도 대좌 중심과 표 S1이 0.2 mm 이내로 일치
4. 앱 엔진 확장
- pipeline: `scope`, `builders`, `checkers` 교체
- gates: 범위 기준 앞 게이트, 음성 시험 대상을 교각별로 지정
- `concrete_tapered.py`, `checks/g1_tapered.py` 신설
- bearings: `seat_z`, h3 받침별, `bearing_size: AB`, 빈 표·추가 실패 시 오류
- G5 검사기: 받침별 L·T·h3, A × B, 두꺼운 쪽 방향
5. 코핑 생성 시행착오(5회)
- 평면 교차, 모서리 잘라내기, 세 부분 합치기, 모서리 필렛이 모두 실패했다(칼날형 끝·동일 평면 면·접선 원인)
- 합치기 시도 때는 AddBrep이 실패해도 오류 없이 넘어가 객체가 빠졌다 → `add()`에 검증 추가
- 최종: 정면 외곽 1회 압출 − 모서리 4곳 R500 바깥 영역(16분할 원호 + 0.5 mm 외측, 3단면 로프트)
6. 앱 표 인식 결함 2건 수정(reader)
- 창 크기를 제목 글자 높이에 비례하게(1:100 도면의 ELEVATION 오른쪽 열 잘림)
- 머리행을 큰 간격으로 나눠 제목 쪽 묶음만 사용(옆 표와 같은 줄)
- 운곡교 P1·P2 후보값 166건 다름 0 유지
7. 게이트: **G1 PASS 104/104, G5 PASS 75/75** (음성 검출, 재로드 일치, G5에서 G1 객체 12개 불변)
- 코핑 체적 82.231 m³: 치수에서 독립 적분한 값과 0.1 % 이내
8. 웹 범위 지원
- 범위 밖 게이트를 표시·실행 금지·확정 대상에서 제외, 선택 묶음(params.piles) 처리, 보고서에 '범위 밖' 표시
- 재료표 행 해석 실패 시 건너뜀(울산 재료표 2단 머리행)
- `tools/test_web_ulsan.py` 전 항목 PASS
9. 회귀: 운곡교 P1 G1~G5 + 지문 대조 (결과는 STATUS 참조)
10. 철근 판독·생성(사용자 "진행해줘")
- 재료표: 2단 머리행을 열 위치로 읽는 `schedule.py` → `판독/schedule.json` (SD400·SD500 34마크)
- R2 기둥: 주철근 68개 r 1,125·갈고리 R340, 띠철근 3구간(커플러 반원·커플러 원·겹이음 반원), 크로스타이 16단 × 4 → **G2 PASS 35/35**
- R3 기초: 상·하면 사슬(28@250 / 56@125 / 13@500) 위치, U형 B2·B5, 둘레 띠 B8, 중앙 B9·B10, 연직 B7 체크무늬 → **G3 PASS 63/63** (B7 L을 총길이 열에서 잘못 읽은 결함 1건 수정)
- R4 코핑: 정면·측면 작도 좌표(z = y + 99,715.8), 단면 A-A/B-B, 형상표 주기, 받침부 보강 상세 → 372개 철근 중심선 → **G4 PASS 129/129**
- 스터럽 C7~C9: 위치마다 3조(폭 1,250 × 2 + 2,000), 높이 = 작도 + 54로 재료표 범위 1 mm 이내 재현
- 평면 R500 모서리에서 바깥 철근이 콘크리트 밖(1차 실행 7마크 FAIL) → 평면도 작도대로 R400 원호까지 단축 후 PASS
11. 전체: 울산 G1~G5 PASS (104·35·63·129·75), 운곡교 P1 회귀 G1~G5 PASS·G5 지문 3,190 동일
12. 웹 시험: `test_web_ulsan.py`는 사본 범위를 G1·G5로 고정(범위 밖 기능 시험 유지), `test_web_ulsan_full.py`(G1~G5 일괄 실행·승인·보고서) 신설
## DECISIONS
| 결정 지점 | 채택안 | 기각안 / 사유 | 근거 |
| :--- | :--- | :--- | :--- |
| 진행 방법 | 형상부터 앱 확장(G1·G5), 철근 다음 단계 | 앱 전체 확장 / 앱 밖 별도 | 사용자 |
| 교각 이름 | 산외교울산P1 | 울산P1 | 사용자 |
| 받침 크기 | A × B | (L−100) × (W−100) — 울산 표에서 L ≠ A+100 | 교량받침 상세도 `[추론]` |
| 솔플레이트 경사 | 두꺼운 쪽 +Y (S > 0, T2 40) | −Y (운곡교) | 표 T1/T2·S 부호 |
| 대좌 fck | 40 MPa | — 도면 주기 '27, 40' 중 | `[추론]` |
| 코핑 모서리 | 16분할 원호 근사(오차 < 0.6 mm) | 정확한 원호 — 불리언 실패 | Agent |
| 배수관 | 모델 제외 | — | 범위 밖 기록 |
| 코핑 철근 생성 방식 | 판독 스크립트가 철근별 중심선 꺾은선 생성, 생성기는 범용 | 형상별 전용 생성기 — 19마크 형상이 제각각 | Agent |
| C10·C12 단 배정 | 수량(7·6) 우선: C12 1~6단, C10 7~13단 | 재료표 A 범위(5·8단) — 수량 불일치 | `[추론]`, OPEN #22 |
| 모서리 철근 | R400 원호(이격 100)까지 단축 | 작도 끝 유지 — 콘크리트 밖 | 평면도 작도 `[추론]` |
| B4 끝 위치 | 측면 작도 3,650 | 정면 3,600 | 작도대로, OPEN #22 |
| H22·H13 색 | (23,190,207)·(140,86,75) 추가 | — | R8 확정 대기 |
## OUTPUT
| 산출물 | 경로 | 버전 |
| :--- | :--- | :--- |
| 앱 교각 | `Code/교각모델링앱/data/산외교울산P1/` (params, expected, 도면 사본·색인) | S1 |
| 판독 스크립트 | `Code/울산P1판독/` (dxftools, extract_s1, debug_coping), 그림 `판독/*.png` | — |
| 엔진 | `engine/pipeline.py`, `gates.py`, `rhino/concrete_tapered.py`, `rhino/checks/g1_tapered.py`, `rhino/bearings.py`, `checks/g5_bearings.py`, `reader.py` | — |
| 웹 | `web/app.py`, `web/store.py`, templates, `engine/report*.py` (패치 `tools/patches/2026-10-13_patch_scope_web.py`) | — |
| 게이트 결과 | `Code/교각모델링앱/출력/울산P1_S1/` (G1.3dm, G5.3dm, 판정 JSON) | — |
| 시험 | `tools/test_web_ulsan.py`, `tools/test_web_ulsan_full.py` | — |
| 철근 판독 | `Code/울산P1판독/schedule.py`, `extract_r2.py`, `extract_r3.py`, `extract_r4.py`, `dims.py`, 그림 `판독/r4_*.png` | — |
| 철근 엔진 | `rhino/column_rebar_ring.py`, `footing_rebar_mats.py`, `rebar_polylines.py`, `checks/g2_ring.py`, `g3_mats.py`, `g4_polylines.py` | — |
| 철근 게이트 결과 | `Code/교각모델링앱/출력/울산P1_S1/` (G1~G5 .3dm·판정), 회귀 `출력/P1회귀_울산철근/` | — |
## MODEL
Claude Opus 5.5 (claude-opus-5-5) — 전환 없음
## EFFORT
도구호출 약 75(형상) + 약 60(철근) — 철근 단계에서 예산 80~120 초과(판독 범위가 넓음: 마크 34종), 서브에이전트 0
## STATUS
DONE — 형상(G1·G5)과 철근(G2·G3·G4) 모델링 완료. 울산 G1~G5 전부 PASS(104·35·63·129·75), 웹 시험 축소 범위·전체 범위 전 항목 PASS(일괄 실행·승인·보고서·G5 내려받기). 운곡교 P1 회귀 G1~G5 PASS, G5 지문 3,190/3,190 동일. [추론]·도면 불일치 확인은 OPEN #22, H22·H13 색은 R8 확정 대기
## 비고
- 앱 화면에서의 확정·승인은 하지 않음(사용자 몫). 판독값은 `data/산외교울산P1`에 들어 있음
- 철근(G2~G4)은 별도 판독 스크립트(`Code/울산P1판독/schedule.py`)로 재료표를 읽음 — 앱 표 인식(reader)은 여전히 2단 머리행 미지원
- 실제 교각(`data/산외교울산P1`)의 앱 화면 확정·승인은 하지 않음(사용자 몫). 시험은 사본으로만 수행