Files
Pier_v1/Code/검토수정/스크립트/fix_m9_text_xlsx.py
T
ahnyongjooandClaude Sonnet 5.5 964a841de1 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>
2026-10-28 11:20:18 +09:00

69 lines
4.7 KiB
Python

"""Ramp-A P3-1 M-9 기록을 정정한다 (2026-10-26): 말뚝 반경 기준 측정 결과로 문구를 바꾸고 '도면 오류'로 표기.
이전 문구('기둥 표면에 닿음', '중심 피복 0.1 mm')는 콘크리트 구간을 잘못 잡은 측정이었다.
입력: Code/검토수정/결과/c1_radial_cover.json. 이미 정정되어 있으면(M-9 내용에 '말뚝 PL01' 포함) 중단.
"""
import json
import sys
from pathlib import Path
import openpyxl
ROOT = Path(r"D:\★Pier 자료\프로그램\Pier_T")
XLSX = ROOT / "검토파일" / "4개교_공통사항_종합.xlsx"
rc = json.loads((ROOT / "Code" / "검토수정" / "결과" / "c1_radial_cover.json").read_text(encoding="utf-8"))
b, a = rc["before"]["P3-1"], rc["after"]["P3-1"]
CONTENT = ("Ramp-A교 P3-1(H16, 48본)을 도면 치수(r135, a 200, b 2,137, c 165, d 150)대로 만들면 말뚝 콘크리트 밖으로 튀어나감 [도면 오류 의심, 사용자 지적 2026-10-26]. "
"다리·갈고리는 모두 아래 방향으로 걸림(48/48본). 말뚝은 아래 PL01 반지름 1,175 (z 32,752~40,252), 위 PL02 반지름 1,250 (z 40,252~45,452) 으로 좁아지는데 "
"도면 P3-1 은 구간 구분 없이 같은 치수")
DIFF = ("반경 기준 중심 피복: 기존 모델(b·갈고리 작게) 최소 %.1f mm (PL01, 안쪽·돌출 없음) → 도면 치수 적용(수정5): PL01 %d본 전부 중심이 말뚝 밖(최소 %.1f mm), "
"PL02 %d본 중 %d본 철근이 표면 밖으로 삐져나옴(최소 %.1f mm < 반지름 8)" %
(b["PL01"]["min_radial_centre_cover"], a["PL01"]["bars"], a["PL01"]["min_radial_centre_cover"], a["PL02"]["bars"],
a["PL02"]["bars_pipe_sticks_out(cover<8)"], a["PL02"]["min_radial_centre_cover"]))
STATUS = ("도면 오류로 보류: 도면 P3-1 치수는 반지름 1,250 구간에만 겨우 맞고 반지름 1,175 구간에서는 갈고리가 말뚝 밖으로 나감. "
"모델은 도면 치수대로 두고 오류로 기록. 구간별 치수는 설계자 확인")
wb = openpyxl.load_workbook(XLSX)
done = 0
wg = wb["교량별 항목 합본"]
for r in wg.iter_rows(min_row=4):
if r[0].value == "Ramp-A교" and r[1].value == "M-9":
if "말뚝 PL01" in str(r[3].value):
sys.exit("이미 정정됨 - 중단")
r[3].value = CONTENT
r[4].value = "말뚝·기둥 반경(구간별) ↔ 철근 중심선 (10 mm 간격 샘플)"
r[5].value = DIFF
r[6].value = "도면 상세 P3-1: r135 a200 b2,137 c165 d150 (갈고리 직선), 구간별 치수 구분 없음"
r[7].value = STATUS
r[8].value = "도면 오류 (말뚝 돌출)"
done += 1
wi = wb["개별 항목"]
for r in wi.iter_rows(min_row=4):
if r[0].value == "Ramp-A교" and r[1].value == "M-9":
r[3].value, r[4].value, r[5].value, r[6].value = CONTENT, DIFF, "도면 오류 (말뚝 돌출)", STATUS
done += 1
wh = wb["미수정·보류"]
for r in wh.iter_rows(min_row=4):
if r[0].value == "Ramp-A교" and str(r[1].value).startswith("P3-1"):
r[3].value = "도면 치수대로 만들면 갈고리가 말뚝 밖으로 나감 (PL01 26본 중심이 밖, PL02 22본 표면 돌출)"
r[4].value = "기존 모델은 안쪽(최소 106.5 mm)이었으나 도면 b 2,137·갈고리 r135 c165 d150 적용 시 돌출. 도면 오류로 기록. 'M-9', '수정 내역' R-17"
r[5].value = "구간별(반지름 1,175 / 1,250) 치수 설계자 확인"
done += 1
ev = wb["수정 증거(마크별)"]
for r in ev.iter_rows(min_row=4):
if r[0].value == "Ramp-A교" and r[1].value == "P3-1" and "콘크리트 돌출" in str(r[3].value):
r[3].value = "말뚝 반경 기준 중심 피복 측정 (구간별)"
r[5].value = "기존: PL01 최소 %.1f / PL02 최소 %.1f mm, 돌출 0본" % (b["PL01"]["min_radial_centre_cover"], b["PL02"]["min_radial_centre_cover"])
r[6].value = "수정5: PL01 %d본 중심이 밖(최소 %.1f), PL02 %d본 표면 돌출(최소 %.1f)" % (a["PL01"]["bars"], a["PL01"]["min_radial_centre_cover"], a["PL02"]["bars_pipe_sticks_out(cover<8)"], a["PL02"]["min_radial_centre_cover"])
r[8].value = "c1_radial_cover.py: 말뚝 PL01 r1175(z32752~40252), PL02 r1250(~45452), 기둥 r1000(~57452) 반경과 철근 중심선 점의 반경 비교. 기존 = ramp-A G5_검토완료.3dm"
done += 1
wn = wb["수정 내역"]
for r in wn.iter_rows(min_row=4):
if r[0].value == "R-17":
r[10].value = ("P3-1 은 도면 b·갈고리 치수를 적용하면 말뚝 밖으로 나감 (M-9, 도면 오류). 기존 모델은 말뚝 안쪽이었음(최소 중심 피복 106.5 mm). "
"P3·P5 는 콘크리트 안")
done += 1
wb.save(XLSX)
print("updated cells groups:", done)