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

26 lines
1.5 KiB
Python

import ezdxf, sys
from collections import defaultdict
sys.stdout.reconfigure(encoding='utf-8')
d=ezdxf.readfile(r'D:\★Pier 자료\심수석님 검토 파일\철근 모델랑 운곡교P1_바이브코딩\1.dxf'); ms=d.modelspace()
CXe=12159.4
def EL(y): return 26.208+(y-8115.6)/1000.0 # footing bottom 8115.6 = EL 26.208
x0,x1,y0,y1=11000,13400,10320,16520
V=defaultdict(list);H=defaultdict(list);C=defaultdict(list)
for e in ms:
t=e.dxftype()
if t=='LINE' and e.dxf.layer in('CS-RBAR-MAJR','CS-CONC-MAJR','CS-RBAR-EREC'):
a,b=e.dxf.start,e.dxf.end
if x0<min(a.x,b.x) and max(a.x,b.x)<x1 and y0<min(a.y,b.y) and max(a.y,b.y)<y1:
if abs(a.x-b.x)<0.6 and abs(a.y-b.y)>500: V[(e.dxf.layer[3:7],round(a.x-CXe,1))].append((round(min(a.y,b.y),1),round(max(a.y,b.y),1)))
elif abs(a.y-b.y)<0.6 and abs(a.x-b.x)>200: H[(e.dxf.layer[3:7],round(a.y,1))].append((round(min(a.x,b.x)-CXe),round(max(a.x,b.x)-CXe)))
elif t=='CIRCLE':
c=e.dxf.center
if x0<c.x<x1 and y0<c.y<y1: C[round(c.x-CXe,1)].append(round(c.y,1))
print('vertical lines (x offset from pier centre):')
for k in sorted(V): print(' ',k,[ (a,b,'EL %.3f~%.3f'%(EL(a),EL(b))) for a,b in sorted(V[k])][:3],len(V[k]))
print('horizontal lines >200 long:')
for k in sorted(H,reverse=True)[:25]: print(' ',k,sorted(H[k])[:2],'EL %.3f'%EL(k[1]))
print('circle columns (x offset: count, y min..max -> EL):')
for k in sorted(C):
ys=sorted(C[k]); print(' ',k,len(ys),ys[0],ys[-1],'EL %.3f..%.3f'%(EL(ys[0]),EL(ys[-1])))