Files
Pier_v1/검토파일/검토_운곡교P1/스크립트/mark_cover_png.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

52 lines
3.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import sys, ezdxf, matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle, FancyArrowPatch
from ezdxf.addons.drawing import RenderContext, Frontend
from ezdxf.addons.drawing.matplotlib import MatplotlibBackend
plt.rcParams['font.family']='Malgun Gothic'
Y='#FFE600'
d=ezdxf.readfile('1.dxf'); ms=d.modelspace()
fig=plt.figure(figsize=(18,11),dpi=100,facecolor='#1e2228')
ax=fig.add_axes([0.01,0.47,0.98,0.50])
Frontend(RenderContext(d),MatplotlibBackend(ax)).draw_layout(ms)
ax.set_xlim(39350,46350);ax.set_ylim(23100,24780)
ax.set_title('도면 D1 단면 A-A (노란색 = 검토 표기)',color=Y,fontsize=14)
ax.add_patch(Rectangle((43070,24340),3030,300,fill=False,ec=Y,lw=1.5,ls='--'))
ax.add_patch(Rectangle((43070,24545),3030,100,fill=False,ec=Y,lw=2.5))
ax.text(46150,24590,'①',color=Y,fontsize=18,fontweight='bold',va='center')
ax.text(46150,24400,'상면 3단',color=Y,fontsize=11,va='center')
ax.plot([40100,43070],[24591.5,24591.5],color=Y,lw=1.4,ls=':')
ax.text(40160,24625,'②',color=Y,fontsize=18,fontweight='bold',va='bottom')
ax.plot([43040,43200,43200,43040,43040],[24545,24545,24705,24705,24545],color=Y,lw=2)
ax.text(42960,24730,'③ 아래 확대',color=Y,fontsize=11,ha='right',va='bottom')
ax2=fig.add_axes([0.03,0.02,0.36,0.42])
Frontend(RenderContext(d),MatplotlibBackend(ax2)).draw_layout(ms)
ax2.set_xlim(43040,43200);ax2.set_ylim(24545,24705)
for sp in ax2.spines.values(): sp.set_color(Y); sp.set_linewidth(2.5)
ax2.set_xticks([]);ax2.set_yticks([])
ax2.plot([43040,43200],[24591.5,24591.5],color=Y,lw=1.6,ls='--')
ax2.plot([43120.3],[24587.0],'o',color=Y,ms=5)
ax2.annotate('',xy=(43172,24591.5),xytext=(43172,24587.0),arrowprops=dict(arrowstyle='<->',color=Y,lw=2))
ax2.text(43176,24577,'4.5mm',color=Y,fontsize=15,fontweight='bold',va='center')
ax2.annotate('',xy=(43070,24691.5),xytext=(43070,24591.5),arrowprops=dict(arrowstyle='<->',color=Y,lw=1.8))
ax2.text(43076,24640,'치수 100',color=Y,fontsize=13,va='center')
ax2.text(43044,24700,'콘크리트 상면 y=24691.5',color=Y,fontsize=10,va='top')
ax2.text(43126,24560,'작도 점 y=24587.0',color=Y,fontsize=10,va='top')
ax2.set_title('③ 좌상단 모서리 확대 (160×160mm)',color=Y,fontsize=13)
fig.text(0.42,0.43,"""① 상면 3단 철근(C1·C2·C3 / C4·C5·C6)의 작도 점
치수 100 / 200 / 300 → 작도 104.5 / 204.5 / 304.5
② 치수 100 의 기준선 (상면 24691.5 - 100 = 24591.5)
③ 작도 점 24587.0 은 그 기준선보다 4.5mm 아래
(하면 쪽도 같은 현상: 기준 23269.3 / 작도 23264.7, 4.6mm)
무슨 뜻인가
· 치수가 맞고 점 그림이 4.5mm 어긋난 것 → 치수 우선
· 모델은 치수 100 을 따름 → 도면 점과 4.5mm 차이
· 철근 반지름(14.3mm)보다 작아 시공상 영향 없음
· 보고서 E-06(기초 상면 피복 표기 100 vs 작도 2,127)과
같은 "치수 vs 작도 점" 불일치 유형""",
color=Y,fontsize=14,va='top',ha='left',linespacing=1.55)
out=r'D:\Rhino-MCP\rhino-mcp-main\Claude outputs\C1_피복_작도오차_표기.png'
fig.set_size_inches(18,11); fig.savefig(out,dpi=100,facecolor=fig.get_facecolor()); print(out)