I'd stick to editing Alex Tereshenko's code.
The main thing to edit is the template line coordinates used for cutting the polygons:
pnt_arr.add(arcpy.Point(x_min, y_max))
pnt_arr.add(arcpy.Point(x_min, y_min))
Suppose you want a cut line 45 degrees from NW to SE. You'd change the coordinates to:
x_diff = math.tan(math.radians(45)) * (y_max - y_min)
pnt_arr.add(arcpy.Point(x_min - x_diff, y_max))
pnt_arr.add(arcpy.Point(x_min, y_min))
... then keep trying cutting as you go right. Like picture below (maybe makes it more confusing...).
Unfortunately, I don't believe there's any way to avoid coding on this one. You'd also have to do some extra coding to accommodate all possible line angles.