- 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>
25 lines
2.4 KiB
Python
25 lines
2.4 KiB
Python
"""옥성 C15·C17 양끝 갈고리(r80, 호 188=134.65°, 꼬리 140) 전후 비교 이미지: 도면 그림 | 수정 전(수정8) | 수정 후(수정9). 입력 jobs/cap/out/ok8hook_*, ok9hook_*"""
|
||
from pathlib import Path
|
||
from PIL import Image, ImageDraw, ImageFont
|
||
ROOT = Path(r"D:\★Pier 자료\프로그램\Pier_T"); CAP = Path(r"C:\Users\User\AppData\Local\PierApp\jobs\cap\out")
|
||
SRC = Image.open(ROOT / "검토파일" / "검토_옥성교P1" / "1_색구분_재료표·철근상세.png").convert("RGB")
|
||
FIG = {"C15": SRC.crop((940, 1590, 1185, 1675)), "C17": SRC.crop((940, 1785, 1185, 1875))}
|
||
F = lambda s, b=False: ImageFont.truetype(r"C:\Windows\Fonts\%s.ttf" % ("malgunbd" if b else "malgun"), s)
|
||
W, H = 520, 290
|
||
def fit(im, w, h):
|
||
im = im.copy(); im.thumbnail((w, h)); c = Image.new("RGB", (w, h), (255, 255, 255)); c.paste(im, ((w - im.width) // 2, (h - im.height) // 2)); return c
|
||
items = [("C15", "end", "C15 오른쪽 끝"), ("C15", "start", "C15 왼쪽 끝"), ("C17", "end", "C17 오른쪽 끝"), ("C17", "mid", "C17 가운데 j550")]
|
||
out = Image.new("RGB", (W * 3 + 40, 130 + len(items) * (H + 56)), (255, 255, 255)); d = ImageDraw.Draw(out)
|
||
d.rectangle([0, 0, out.width, 100], fill=(40, 40, 40))
|
||
d.text((16, 8), "옥성교 코핑 타이 C15·C17 — 양끝 갈고리 반영 전·후 (Rhino 평면 Top, 철근 1본 확대)", font=F(28, True), fill=(255, 255, 255))
|
||
d.text((16, 52), "도면: 호 r80 · 호 길이 188(=134.65°) · 꼬리 140 / 길이 = a + 2×(188+140) (+j550). 갈고리 방향은 단면 중심 쪽(가정, 확인 필요)", font=F(21), fill=(255, 255, 255))
|
||
y = 116
|
||
for m, w, t in items:
|
||
b = Image.open(CAP / ("ok8hook_%s_%s.png" % (m, w))).convert("RGB"); a = Image.open(CAP / ("ok9hook_%s_%s.png" % (m, w))).convert("RGB")
|
||
for i, (tt, im, col) in enumerate((("도면 (%s)" % m, FIG[m].resize((FIG[m].width * 3, FIG[m].height * 3)), (138, 90, 0)), ("수정 전 — " + t + " (직선)", b, (170, 40, 30)), ("수정 후 — " + t, a, (30, 120, 60)))):
|
||
x = 10 + i * (W + 10)
|
||
d.rectangle([x, y, x + W, y + 40], fill=col); d.text((x + 8, y + 5), tt, font=F(21, True), fill=(255, 255, 255))
|
||
out.paste(fit(im, W, H), (x, y + 44)); d.rectangle([x, y + 44, x + W, y + 44 + H], outline=(120, 120, 120), width=2)
|
||
y += H + 56
|
||
p = ROOT / "검토파일" / "수정후_캡처" / "옥성교_타이C15C17_갈고리_전후.png"; out.save(p); print(p, out.size)
|