Attach script
import arcpy, traceback, os, sys, math
from math import radians,sin,cos
from arcpy import env
env.overwriteOutput = True
inFC=arcpy.GetParameterAsText(0)
outFolder=arcpy.GetParameterAsText(1)
rectangle=r'in_memory\rectangle'
tempf=r'd:\scratch\many.shp'
def showPyMessage():
arcpy.AddMessage(str(time.ctime()) + " - " + message)
def ShapeMake(pGon,angle):
ar=arcpy.Array()
a=radians(angle)
part=pGon.getPart(0)
for p in part:
x,y=p.X,p.Y
xN=cos(a)*x+sin(a)*y
yN=-sin(a)*x+cos(a)*y
pN=arcpy.Point(xN,yN)
ar.add(pN)
pgonRotated=arcpy.Polygon(ar)
return pgonRotated
try:
arcpy.MinimumBoundingGeometry_management(inFC,rectangle,
"RECTANGLE_BY_WIDTH", "NONE", "", "MBG_FIELDS")
m,n=0,0
with arcpy.da.SearchCursor(rectangle, ("SHAPE@","MBG_Orientation")) as rows:
for row in rows:
shp,angle = row
onside=ShapeMake(shp,-angle)
extent=onside.extent
origPoint='%s %s' %(extent.XMin,extent.YMin)
yPoint='%s %s' %(extent.XMin,extent.YMax)
endPoint='%s %s' %(extent.XMax,extent.YMax)
if extent.width>extent.height:nRows,nCols=1,8
else:nRows,nCols=8,1
arcpy.CreateFishnet_management(tempf, origPoint,yPoint,
"0", "0", nRows, nCols,endPoint,
"NO_LABELS", "", "POLYGON")
arcpy.AddField_management(tempf, "Rotation", "DOUBLE")
arcpy.AddField_management(tempf, "Label", "Text", 25)
m+=1
with arcpy.da.UpdateCursor(tempf, ["SHAPE@","Rotation","Label"]) as rows:
for row in rows:
shp = row[0]
rollBack=ShapeMake(shp,angle)
row[0]=rollBack
row[1]=angle
m+=1
row[2]=str(m).zfill(8)
rows.updateRow(row)
n+=1
arcpy.CopyFeatures_management(tempf, '%s%sfnet_%s'%(outFolder,os.sep,str(n).zfill(4)))
except:
message = "\n*** PYTHON ERRORS *** "; showPyMessage()
message = "Python Traceback Info: " + traceback.format_tb(sys.exc_info()[2])[0]; showPyMessage()
message = "Python Error Info: " + str(sys.exc_type)+ ": " + str(sys.exc_value) + "\n"; showPyMessage()
to tool:
Input feature layer:
Merge all shapefiles from Output Folder into single feature class shown below:
Best Answer
You might try the Editor, Copy Parallel tool to create lines the same distance apart. This would be a Polyline feature class. The Advanced Editing Tool bar has Split Polygon tool. First, Select the lines overlapping your polygon, then execute the tool. Your Polygon will be cut by each line. The lines need to extend beyond the edges of your polygon.