import math, collections, sys sys.stdout.reconfigure(encoding='utf-8') # soffit EL(x): flat 40.411 for |x|<=1100, else arc R=12000 centre offset 6951.8 / y 6039.2 (drawing coords), EL = 43.411+(y-19515.6)/1000 def soffit(x): ax=abs(x) if ax<=1100: return 40.411 dx=6951.8-ax y=6039.2+math.sqrt(12000**2-dx**2) return 43.411+(y-19515.6)/1000 def top(x): ax=x for lim,el in ((-3800,43.411),(-1295,43.483),(1211,43.555),(3716,43.627),(99999,43.698)): if ax=13 dr={13:[43.188,43.088,42.011,41.011],913:[43.188,43.088,42.511,41.511],1913:[43.188,43.088,42.011,41.011],2913:[43.442,43.188,43.088,42.511,41.511],3913:[43.188,43.088,42.011],4913:[43.188,43.088,42.511]} print('x tie EL | hook DOWN end vs soffit (clear mm) | hook UP end vs top (clear mm)') bad=[] for x,els in sorted(dr.items()): for el in els: dn=el-0.350; up=el+0.350 c_dn=(dn-soffit(x))*1000; c_up=(top(x)-up)*1000 flag='' if c_dn<0: flag+=' <-- 아래 훅이 하면 밖' if c_up<0: flag+=' <-- 위 훅이 상면 밖' if flag: print('%5d %.3f | %7.0f | %7.0f %s'%(x,el,c_dn,c_up,flag)) print('(other drawing ties: both directions fit)')