Files
Pier_v1/Code/교각모델링앱/tools/apply_pier_read.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

38 lines
1.8 KiB
Python

"""Command-line twin of the web screen "도면에서 읽기" (engine/geomread.py): print / write the values read from an Ungok-type pier drawing into
data/<pier>/params.json and expected.json (2026-10-19, rewritten on top of engine/geomread 2026-10-20).
python tools/apply_pier_read.py 운곡교P1 --dry (a finished pier: only rounding changes; see tools/test_geomread.py)
usage: python tools/apply_pier_read.py <pier> [--dry] backs up params / expected / confirm first; table + anchor candidates are applied afterwards (candidates screen)."""
import shutil
import sys
import time
from pathlib import Path
APP = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(APP / "web"))
sys.path.insert(0, str(APP))
import store # noqa: E402
from engine import geomread # noqa: E402
name = sys.argv[1]
pier = store.Pier(name)
P, E = pier.load("params"), pier.load("expected")
ref = store.rjson(store.template_dir("운곡교P1형") / "params.json")
audit = store.rjson(pier.drawings / "audit.json", [])
P2, E2, changes, notes = geomread.read(P, E, ref, pier.texts(), geomread.dxf_of(pier.dir, audit), name)
print(f"{name}: {len(changes)} changes")
for c in changes:
brief = lambda v: v if not isinstance(v, (list, dict)) else f"{type(v).__name__}[{len(v)}]" # noqa: E731
print(f" {c['file']}:{c['path']:58s} {str(brief(c['old']))[:22]:>22} -> {str(brief(c['new']))[:30]:<30} | {c['why']}")
for n in notes:
print("NOTE:", n)
if "--dry" in sys.argv:
sys.exit(0)
bk = pier.dir / "backup" / f"before_apply_pier_read_{time.strftime('%Y%m%d_%H%M%S')}"
bk.mkdir(parents=True)
for f in ("params.json", "expected.json", "confirm.json"):
if (pier.dir / f).exists():
shutil.copy2(pier.dir / f, bk / f)
pier.save("params", P2)
pier.save("expected", E2)
print("saved; backup:", bk)