Guest User

Untitled

a guest
Jan 16th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. Rollers = [{} for i in range(num_rollers)] # declare the rollers
  2. Rollers[0] = {'top_seg': 0, 'segments': 84, 'material': Copper, 'direction': ACW, 'ink': []} # Transfer
  3. Rollers[1] = {'top_seg': 0, 'segments': 71, 'material': Rubber, 'direction': CW, 'ink': []} # Inking
  4. Rollers[2] = {'top_seg': 0, 'segments': 84, 'material': Copper, 'direction': ACW, 'ink': []}
  5. Rollers[3] = {'top_seg': 0, 'segments': 75, 'material': Rubber, 'direction': CW, 'ink': []}
  6. Rollers[4] = {'top_seg': 0, 'segments': 84, 'material': Copper, 'direction': ACW, 'ink': []} # Ink drum
  7.  
  8. for i in range(0,num_rollers): # update the dictionary
  9. for j in range(Rollers[i]['segments']):
  10. Rollers[i]['ink'].append(0)
  11.  
  12. Nips = [{} for i in range(num_nips)] # declare the nip locations
  13. Nips[0] = {'rollers': [0, 1], 'locations': []}
  14. Nips[1] = {'rollers': [1, 2], 'locations': []}
  15. Nips[2] = {'rollers': [2, 3], 'locations': []}
  16. Nips[3] = {'rollers': [3, 4], 'locations': []}
  17.  
  18. def refresh (): # function to move the nips as the rollers turn
  19. Nips[0]['locations'] = [(Rollers[0]['top_seg'] + 71) % Rollers[0]['segments'], (Rollers[1]['top_seg'] + 25) % Rollers[1]['segments']]
  20. Nips[1]['locations'] = [(Rollers[1]['top_seg'] + 46) % Rollers[1]['segments'], (Rollers[2]['top_seg'] + 12) % Rollers[2]['segments']]
  21. Nips[2]['locations'] = [(Rollers[2]['top_seg'] + 44) % Rollers[2]['segments'], (Rollers[3]['top_seg'] + 1) % Rollers[3]['segments']]
  22. Nips[3]['locations'] = [(Rollers[3]['top_seg'] + 52) % Rollers[3]['segments'], (Rollers[4]['top_seg'] + 17) % Rollers[4]['segments']]
  23.  
  24.  
  25. def turn (): # turn the rollers, refresh the nips
  26. for R in Rollers:
  27. R['top_seg'] = (R['top_seg'] + R['direction']) % R['segments']
  28.  
  29. refresh()
  30.  
  31. def ink ():
  32. for N in Nips:
  33. total_ink = 0
  34. for R in range(2):
  35. Roller = Rollers[N['rollers'][R]]
  36. location = N['locations'][R]
  37. total_ink = total_ink + Roller['ink'][location]
  38. for R in range(2):
  39. Roller = Rollers[N['rollers'][R]]
  40. location = N['locations'][R]
  41.  
  42. # Assuming that ink split is dictated only by material
  43. if Roller['material']:
  44. Roller['ink'][location] = ratio*total_ink
  45. else:
  46. Roller['ink'][location] = (1-ratio)*total_ink
  47.  
  48. Rollers[0]['ink'][0] = 25
  49.  
  50. for i in range(360):
  51. turn()
  52. ink()
  53.  
  54. sum = 0
  55. for i in Rollers[4]['ink']:
  56. sum = sum + i
  57. mean = sum/Rollers[4]['segments']
  58.  
  59. temp = 0
  60. for i in Rollers[4]['ink']:
  61. temp = temp + (i-mean)*(i-mean)
  62.  
  63. sdev2 = temp/Rollers[4]['segments']
  64.  
  65. sdev = sdev2**0.5
  66.  
  67. # Results
  68. RollerOut = open('RollerOut.csv', 'w') # creates a workbook in excel
  69. for row in Rollers:
  70. for column in row:
  71. RollerOut.write('%s,' % column) # writes strings to columns rather than rows
  72. RollerOut.write('n') # writes values from Rollers
  73. RollerOut.close()
  74. print Rollers[4]
  75. print 'mean ink thickness on plate = ', mean
  76. print 'sdev of ink thickness on plate= ', sdev
  77.  
  78. def roll_data():
  79. roll_diameter = float(raw_input("Enter roller diameter" + str(i) + ": "))
  80. seg_angle = -1
  81. while seg_angle < 0 or seg_angle >360:
  82. print "anti-clockwise from TDC"
  83. seg_angle = float(raw_input("Enter angle into nip" = str(i) + ": "))
  84. if (seg_angle <0 or seg_angle>360):
  85. print "invalid range"
  86. R = Rollers[i]
  87. R['segments'] = int(round(Rollers[4]['segments']*roll_diameter/plate_diameter))
  88. R['angle'] = (360/R['segments']) # angle in degrees
  89. # R['radians'] = (R['angle']*(pi/180) # angle in radians
Add Comment
Please, Sign In to add comment