- 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>
52 lines
3.1 KiB
Python
52 lines
3.1 KiB
Python
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)
|