Files
Pier_v1/Code/review_pipeline/dots_method/swpos.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

16 lines
950 B
Python

import sys, io, json, math, collections; sys.path.insert(0,'pylib')
import rhino3dm
m3=rhino3dm.File3dm.Read(r"D:\★Pier 자료\심수석님 검토 파일\검토_산외교P1\산외교P1 G5.3dm")
bars=collections.defaultdict(list)
for o in m3.Objects:
g=o.Geometry
if isinstance(g,rhino3dm.Brep) or not hasattr(g,'PointAtStart'): continue
us=dict(o.Attributes.GetUserStrings())
mk=us.get('mark')
if not mk: continue
bb=g.GetBoundingBox()
bars[mk].append({'name':o.Attributes.Name,'bb':[round(v,1) for v in (bb.Min.X,bb.Min.Y,bb.Min.Z,bb.Max.X,bb.Max.Y,bb.Max.Z)],'dia':us.get('dia'),'shape':us.get('shape'),'host':us.get('host'),
'p0':[round(v,1) for v in (g.PointAtStart.X,g.PointAtStart.Y,g.PointAtStart.Z)],'p1':[round(v,1) for v in (g.PointAtEnd.X,g.PointAtEnd.Y,g.PointAtEnd.Z)]})
json.dump(bars,open('swpos.json','w',encoding='utf-8'),ensure_ascii=False)
print({k:len(v) for k,v in bars.items()})