Interestingly, the output of that solving process says to be optimal, but the item placements actually have items on top of eachother (interesing parts bolded in the output below). For pallets 1 and 2 all stacks are placed on the same coordinates, but pallet 3 is perfect. And this is done in one calculation.
Pallet 1 (800x800)
Stack 6: (400x1000)
Reel 5: {'_id': 5, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 400, '_y': 200, '_z': 0}
Reel 20: {'_id': 20, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 400, '_y': 200, '_z': 500}
Stack 8: (400x1000)
Reel 17: {'_id': 17, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 400, '_y': 200, '_z': 0}
Reel 19: {'_id': 19, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 400, '_y': 200, '_z': 500}
Stack 10: (400x1000)
Reel 16: {'_id': 16, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 400, '_y': 200, '_z': 0}
Reel 18: {'_id': 18, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 400, '_y': 200, '_z': 500}
Pallet 2 (800x800)
Stack 2: (400x1000)
Reel 11: {'_id': 11, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 200, '_y': 400, '_z': 0}
Reel 14: {'_id': 14, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 200, '_y': 400, '_z': 500}
Stack 4: (400x1000)
Reel 2: {'_id': 2, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 200, '_y': 400, '_z': 0}
Reel 3: {'_id': 3, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 200, '_y': 400, '_z': 500}
Stack 5: (400x1000)
Reel 6: {'_id': 6, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 200, '_y': 400, '_z': 0}
Reel 7: {'_id': 7, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 200, '_y': 400, '_z': 500}
Pallet 3 (800x800)
Stack 1: (400x1000)
Reel 1: {'_id': 1, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 200, '_y': 200, '_z': 0}
Reel 4: {'_id': 4, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 200, '_y': 200, '_z': 500}
Stack 3: (400x1000)
Reel 9: {'_id': 9, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 200, '_y': 600, '_z': 0}
Reel 12: {'_id': 12, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 200, '_y': 600, '_z': 500}
Stack 7: (400x1000)
Reel 8: {'_id': 8, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 600, '_y': 200, '_z': 0}
Reel 15: {'_id': 15, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 600, '_y': 200, '_z': 500}
Stack 9: (400x1000)
Reel 10: {'_id': 10, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 600, '_y': 600, '_z': 0}
Reel 13: {'_id': 13, '_ordNum': 'testi7', '_horizontal': False, '_width': 500, '_length': 4000, '_diameter': 400,
'_x': 600, '_y': 600, '_z': 500}