- 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>
38 lines
1.8 KiB
Python
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)
|