"""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)