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>
This commit is contained in:
commit
964a841de1
3978 files changed
+58013356
No files matched your search
@@ -0,0 +1,48 @@
|
||||
"""산외교 J 겹침 시험(수정4)의 전·후 비교 이미지 — Rhino 캡처(결과/캡처/lap_before|after_*.png)를 라벨과 함께 한 장으로 합친다."""
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
|
||||
ROOT = Path(r"D:\★Pier 자료\프로그램\Pier_T")
|
||||
CAP = ROOT / "Code" / "검토수정" / "결과" / "캡처"
|
||||
OUT = ROOT / "검토파일" / "수정후_캡처"
|
||||
FONT = r"C:\Windows\Fonts\malgun.ttf"
|
||||
FONTB = r"C:\Windows\Fonts\malgunbd.ttf"
|
||||
F = lambda s, b=False: ImageFont.truetype(FONTB if b else FONT, s)
|
||||
|
||||
ROWS = [("C7", "C7~C9 · 형식 II (수직 스터럽)", "수정 전: 닫힌 ㅁ 한 개", "수정 후: 뚜껑 ⊓ (빨강, 다리 C 660) + 바닥 ⊔ (파랑, 전체 높이), 다리에서 660 겹침"),
|
||||
("C10", "C10 · 형식 III (수평 띠, 평면)", "수정 전: 닫힌 ㅁ 한 개", "수정 후: 왼쪽 ㄷ (파랑) + 오른쪽 ㄷ (빨강), 위·아래 변 가운데에서 J 660 겹침"),
|
||||
("C12", "C12 · 형식 XII (수평 띠 R400, 평면)", "수정 전: 닫힌 ㅁ 한 개", "수정 후: 좌·우 ㄷ 두 조각, 위·아래 변 가운데에서 J 660 겹침 (모서리 R400)"),
|
||||
("C13", "C13 · 형식 VIII (갈고리 직선, 평면)", "수정 전: 갈고리 달린 한 개", "수정 후: 갈고리 달린 두 조각이 가운데에서 J 660 겹침")]
|
||||
W = 760
|
||||
rows = []
|
||||
for m, title, lb, la, in ROWS:
|
||||
b = Image.open(CAP / ("lap_before_%s.png" % m)).convert("RGB")
|
||||
a = Image.open(CAP / ("lap_after_%s.png" % m)).convert("RGB")
|
||||
b = b.resize((W, int(b.height * W / b.width)))
|
||||
a = a.resize((W, int(a.height * W / a.width)))
|
||||
h = max(a.height, b.height)
|
||||
band = Image.new("RGB", (W * 2 + 12, 44), (40, 40, 40))
|
||||
ImageDraw.Draw(band).text((10, 6), title, font=F(26, True), fill=(255, 255, 255))
|
||||
row = Image.new("RGB", (W * 2 + 12, 44 + h + 70), (255, 255, 255))
|
||||
row.paste(band, (0, 0))
|
||||
row.paste(b, (0, 44))
|
||||
row.paste(a, (W + 12, 44))
|
||||
d = ImageDraw.Draw(row)
|
||||
d.text((8, 44 + h + 6), lb, font=F(22, True), fill=(170, 40, 30))
|
||||
d.text((W + 20, 44 + h + 6), la, font=F(21, True), fill=(20, 110, 50))
|
||||
rows.append(row)
|
||||
H = 110 + sum(r.height for r in rows) + 12 * len(rows)
|
||||
out = Image.new("RGB", (rows[0].width, H), (255, 255, 255))
|
||||
bd = Image.new("RGB", (out.width, 100), (30, 120, 60))
|
||||
ImageDraw.Draw(bd).text((14, 8), "산외교 코핑 전단철근 — J(겹침) 반영 시험 전·후 (Rhino 캡처)", font=F(38, True), fill=(255, 255, 255))
|
||||
ImageDraw.Draw(bd).text((14, 60), "대호지교 방식(⊓ 뚜껑 + ⊔ 바닥 / 좌·우 ㄷ)으로 겹침 J 표기. 겹침부는 같은 선 위에서 겹침. 조각 색은 구분용(빨강/파랑)", font=F(22), fill=(255, 255, 255))
|
||||
out.paste(bd, (0, 0))
|
||||
y = 110
|
||||
for r in rows:
|
||||
out.paste(r, (0, y))
|
||||
y += r.height + 12
|
||||
p = OUT / "산외교_J겹침_시험_전후.png"
|
||||
out.save(p)
|
||||
print(p.name, out.size)
|
||||
Reference in new issue
Block a user