Savelyev_Vyacheslav

DuvalTryAng4

Mar 7th, 2022 (edited)
518
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.03 KB | None | 0 0
  1. import openpyxl
  2. import time
  3.  
  4. Book = openpyxl.Workbook()
  5. sheetBook = Book.active
  6. bookRoster = openpyxl.open('in.xlsx')
  7. sheetRoster = bookRoster.active
  8.  
  9. def ConsTop():
  10.     print("Реультат будет записан в фаил in.xlsx")
  11.     print("IN set value - Acetylene C2H2 / Methane CH4 / Ethylene C2H4: ")
  12.     print("OUT defect type - Разр низк энерг(D1) / Разр высок энерг(D2) / Tепл поврежд и разр (DT)")
  13.     print("Тепл поврежд (Т1)<300 / Тепл поврежд (Т2)>300 / Тепл поврежд (Т3)>700 / Частич разр (PD)")
  14. ConsTop()
  15.  
  16. numBase = int(sheetRoster[1][3].value+1)
  17. print(numBase)
  18.  
  19.  
  20. def CATsection(TryAngl, x1,x2, y1,y2, z1,z2): # вырезает куски графика где x1 начало х2 конец
  21.     leg=[]
  22.     if (TryAngl[0] >= x1 and TryAngl[0] <= x2) and (TryAngl[1] >= y1 and TryAngl[1] <= y2) and (TryAngl[2] >= z1 and TryAngl[2] <= z2):
  23.             return True
  24.     return False
  25.  
  26. def Find( ArAll, AllName):
  27.     j=0
  28.     for i in ArAll:
  29.         if i:
  30.             return AllName[j]
  31.         j+=1
  32.  
  33. def out(C2H2,CH4,C2H4):
  34.     while True:
  35.         pp = 100/(C2H2+CH4+C2H4)
  36.         C2H2 = round(C2H2*pp, 1)
  37.         CH4 = round(CH4*pp, 1)
  38.         C2H4 = round(C2H4*pp, 1)
  39.         TryAngl = [C2H2,CH4,C2H4]
  40.         D1 = CATsection(TryAngl, 14,100, 0,100, 0,23)  # Разряды низкой энергии (D1)  
  41.         PD = CATsection(TryAngl, 0,100, 98,100, 0,100)  # Частичный разряд (PD)  
  42.         T1 = CATsection(TryAngl, 0, 4, 0, 98, 0, 20)  # Тепловое повреждение (Т1) возникает в масле и (или) в бумаге при температуре ниже 300 °С
  43.         T2 = CATsection(TryAngl, 0, 4, 0, 100, 20, 50)  # Тепловое повреждение (Т2) возникает в масле и (или) в бумаге при температуре выше 300 °C и ниже 700 °C
  44.         T3 = CATsection(TryAngl, 0, 15, 0, 100, 50, 100)  # Тепловое повреждение (Т3) возникает в масле и (или) в бумаге при температуре выше 700 °C с явными признаками карбонизации масла, окрашивания металла (при 800 °C) или плавления металла (при температуре ниже 1000 °C).
  45.  
  46.         D2_1 = CATsection(TryAngl, 15, 100, 0, 100, 23, 40)  # Разряды высокой энергии (D2) составной
  47.         D2_2 = CATsection(TryAngl, 29, 100, 0, 100, 40, 100)  # Разряды высокой энергии (D2) составной
  48.  
  49.         DT_1 = CATsection(TryAngl, 14,29, 0,100, 50,100)  # Сочетание тепловых повреждений и разрядов (DT) составной
  50.         DT_2 = CATsection(TryAngl, 4,29, 0,100, 40,50)  # Сочетание тепловых повреждений и разрядов (DT) составной
  51.         DT_3 = CATsection(TryAngl, 4,14, 0,100, 0,40)  # Сочетание тепловых повреждений и разрядов (DT) составной
  52.         ArAll = [D1, PD, T1, T2, T3, D2_1, D2_2, DT_1, DT_2, DT_3]
  53.         AllName = ['D1', 'PD', 'T1', 'T2', 'T3', 'D2', 'D2', 'DT', 'DT', 'DT']
  54.         return Find(ArAll,AllName)
  55.  
  56. #out()
  57.    
  58. def GetExell(numBase):
  59.     ArExell = []
  60.     for row in range(1,numBase):
  61.         try:
  62.             C2H2 = int(sheetRoster[row][0].value) # Acetylene C2H2
  63.             CH4 = int(sheetRoster[row][1].value) # Methane CH4
  64.             C2H4 = int(sheetRoster[row][2].value) # Ethylene C2H4
  65.             100/(C2H2+CH4+C2H4)
  66.         except:
  67.             print("Something went wrong")
  68.             ArExell.append("None")
  69.             continue
  70.         ArExell.append(out(C2H2,CH4,C2H4))
  71.     return ArExell
  72.  
  73. i=1
  74. for item in GetExell(numBase):
  75.     sheetRoster.cell(i,5).value = str(item)
  76.     print(item)
  77.     i+=1
  78.  
  79.  
  80.  
  81. bookRoster.save("in.xlsx")
  82. print("ГОТОВО")
  83.  
  84. Book.close()
  85.  
  86. bookRoster.close()
  87. time.sleep(15)
  88.  
  89.  
  90.  
Add Comment
Please, Sign In to add comment