You can try this script. I'm not familiar with the ET-Geotools version, but I think it does more or less the same. It adds the split parts to the existing polygon layer, but you can change it to write to a new feature class.
import arcpy
mxd = arcpy.mapping.MapDocument('CURRENT')
df = mxd.activeDataFrame
layers = arcpy.mapping.ListLayers(df)
# select layer - my known polygon layer with only one polygon
poly = layers[2]
# split steps
splits = [20, 30, 50]
# get polygon and extent properties
with arcpy.da.SearchCursor(poly, ["SHAPE@"]) as pcursor:
for prow in pcursor:
polygon = prow[0] # polygon to cut
e = polygon.extent # bounding extent of polygon
print e.XMin,e.YMin,e.XMax,e.YMax
del pcursor
# geometric cut test iteration step size - modify value to get better accuracy
stepsize = 0.001
# set parameters to move from left to right over the polygon
leftXstart = e.XMin
leftX = e.XMin + stepsize
ymax = e.YMax
ymin = e.YMin
cutpoly = polygon
icursor = arcpy.da.InsertCursor(poly, ["SHAPE@"])
# iterate cut percentage list
for i in splits[:2]:
print i
tol = 0
while tol < i:
# construct NS line
pntarray = arcpy.Array()
pntarray.add(arcpy.Point(leftX, ymax))
pntarray.add(arcpy.Point(leftX, ymin))
pline = arcpy.Polyline(pntarray,arcpy.SpatialReference(4326))
# cut polygon and get split-parts
cutlist = cutpoly.cut(pline)
tol = 100 * cutlist[1].area / polygon.area
leftX += stepsize
#print str(leftX) + ":" + str(tol)
cutpoly = cutlist[0]
# part 0 is on the right side and part 1 is on the left side of the cut
icursor.insertRow([cutlist[1]])
# insert last cut remainder
icursor.insertRow([cutlist[0]])
del icursor
This is the result for cutting the polygon into 20%, 30% and 50%