import sys, collections, ezdxf sys.stdout.reconfigure(encoding='utf-8') rows=[] for l in open('c9_16.txt',encoding='utf-8'): if l.startswith(' seg') or ' | len ' not in l: continue p=l.strip().split(' | ') rows.append((p[0],eval(p[2].split('min ')[1]),eval(p[3].split('max ')[1]),float(p[4].split()[1]))) by=collections.defaultdict(list) for r in rows: by[r[0].split('-')[2]].append(r) T={'C9':(60,1407,(2956+1376)/2,750,518.820),'C10':(21,1407,2998,750,216.510),'C11':(60,1407,(2956+1664)/2,750,536.040)} print('stirrups: model a=Y width, b=Z range+54.3, c=750') for k,(n,ta,tb,tc,tl) in T.items(): ma=sum(2*(r[2][1]-r[1][1]) for r in by[k]); mb=sum(2*((r[2][2]-r[1][2])+54.3) for r in by[k]); mc=n*2*tc ta_=n*2*ta; tb_=n*2*tb print(k,'width part model %.2f table %.2f diff %.2f m | height part model %.2f table %.2f diff %.2f m | total diff %.2f'%(ma/1000,ta_/1000,(ma-ta_)/1000,mb/1000,tb_/1000,(mb-tb_)/1000,(ma+mb+mc-tl*1000)/1000)) T2={'C12':(18,(12228+3151)/2,1407,580,369.234),'C13':(9,(12167+12044)/2,1407,580,264.105)} print('loops: model a=X range+54.3, b=Y width, c=580') for k,(n,ta,tb,tc,tl) in T2.items(): ma=sum(2*((r[2][0]-r[1][0])+54.3) for r in by[k]); mb=sum(2*(r[2][1]-r[1][1]) for r in by[k]); mc=n*4*tc ta_=n*2*ta; tb_=n*2*tb print(k,'A part model %.2f table %.2f diff %.2f m | B part model %.2f table %.2f diff %.2f m'%(ma/1000,ta_/1000,(ma-ta_)/1000,mb/1000,tb_/1000,(mb-tb_)/1000)) d=ezdxf.readfile(r'D:\★Pier 자료\심수석님 검토 파일\철근 모델랑 운곡교P1_바이브코딩\1.dxf'); ms=d.modelspace() print('B-B left/bottom dim texts') for e in ms: if e.dxftype()=='TEXT': p=e.dxf.insert if 39000