Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Rollers = [{} for i in range(num_rollers)] # declare the rollers
- Rollers[0] = {'top_seg': 0, 'segments': 84, 'material': Copper, 'direction': ACW, 'ink': []} # Transfer
- Rollers[1] = {'top_seg': 0, 'segments': 71, 'material': Rubber, 'direction': CW, 'ink': []} # Inking
- Rollers[2] = {'top_seg': 0, 'segments': 84, 'material': Copper, 'direction': ACW, 'ink': []}
- Rollers[3] = {'top_seg': 0, 'segments': 75, 'material': Rubber, 'direction': CW, 'ink': []}
- Rollers[4] = {'top_seg': 0, 'segments': 84, 'material': Copper, 'direction': ACW, 'ink': []} # Ink drum
- for i in range(0,num_rollers): # update the dictionary
- for j in range(Rollers[i]['segments']):
- Rollers[i]['ink'].append(0)
- Nips = [{} for i in range(num_nips)] # declare the nip locations
- Nips[0] = {'rollers': [0, 1], 'locations': []}
- Nips[1] = {'rollers': [1, 2], 'locations': []}
- Nips[2] = {'rollers': [2, 3], 'locations': []}
- Nips[3] = {'rollers': [3, 4], 'locations': []}
- def refresh (): # function to move the nips as the rollers turn
- Nips[0]['locations'] = [(Rollers[0]['top_seg'] + 71) % Rollers[0]['segments'], (Rollers[1]['top_seg'] + 25) % Rollers[1]['segments']]
- Nips[1]['locations'] = [(Rollers[1]['top_seg'] + 46) % Rollers[1]['segments'], (Rollers[2]['top_seg'] + 12) % Rollers[2]['segments']]
- Nips[2]['locations'] = [(Rollers[2]['top_seg'] + 44) % Rollers[2]['segments'], (Rollers[3]['top_seg'] + 1) % Rollers[3]['segments']]
- Nips[3]['locations'] = [(Rollers[3]['top_seg'] + 52) % Rollers[3]['segments'], (Rollers[4]['top_seg'] + 17) % Rollers[4]['segments']]
- def turn (): # turn the rollers, refresh the nips
- for R in Rollers:
- R['top_seg'] = (R['top_seg'] + R['direction']) % R['segments']
- refresh()
- def ink ():
- for N in Nips:
- total_ink = 0
- for R in range(2):
- Roller = Rollers[N['rollers'][R]]
- location = N['locations'][R]
- total_ink = total_ink + Roller['ink'][location]
- for R in range(2):
- Roller = Rollers[N['rollers'][R]]
- location = N['locations'][R]
- # Assuming that ink split is dictated only by material
- if Roller['material']:
- Roller['ink'][location] = ratio*total_ink
- else:
- Roller['ink'][location] = (1-ratio)*total_ink
- Rollers[0]['ink'][0] = 25
- for i in range(360):
- turn()
- ink()
- sum = 0
- for i in Rollers[4]['ink']:
- sum = sum + i
- mean = sum/Rollers[4]['segments']
- temp = 0
- for i in Rollers[4]['ink']:
- temp = temp + (i-mean)*(i-mean)
- sdev2 = temp/Rollers[4]['segments']
- sdev = sdev2**0.5
- # Results
- RollerOut = open('RollerOut.csv', 'w') # creates a workbook in excel
- for row in Rollers:
- for column in row:
- RollerOut.write('%s,' % column) # writes strings to columns rather than rows
- RollerOut.write('n') # writes values from Rollers
- RollerOut.close()
- print Rollers[4]
- print 'mean ink thickness on plate = ', mean
- print 'sdev of ink thickness on plate= ', sdev
- def roll_data():
- roll_diameter = float(raw_input("Enter roller diameter" + str(i) + ": "))
- seg_angle = -1
- while seg_angle < 0 or seg_angle >360:
- print "anti-clockwise from TDC"
- seg_angle = float(raw_input("Enter angle into nip" = str(i) + ": "))
- if (seg_angle <0 or seg_angle>360):
- print "invalid range"
- R = Rollers[i]
- R['segments'] = int(round(Rollers[4]['segments']*roll_diameter/plate_diameter))
- R['angle'] = (360/R['segments']) # angle in degrees
- # R['radians'] = (R['angle']*(pi/180) # angle in radians
Add Comment
Please, Sign In to add comment