Creating paths and shapes¶
This section explains how to create items that contain paths.
Paths¶
To create line or a freeform path, specify a series of path points, as a series of x-y coordinates or path
point objects.
Using x-y coordinates limits the path to straight segments. To created a curved path, you must create pathPoint
objects. Your path can comprise a combination of page coordinates and pathPoint
objects.
Specifying a series of x-y coordinates¶
To specify a path using page-coordinate pairs, use the setEntirePath()
property of the pathItems
object. The following script specifies three pairs of x-y coordinates, to create a path with three points
var myDoc = app.activeDocument;
var myLine = myDoc.pathItems.add();
//set stroked to true so we can see the path
myLine.stroked = true;
myLine.setEntirePath([[220, 475], [375, 300], [200, 300]]);
Using path point objects¶
To create a pathPoint
object, you must define three values for the point.
- A fixed
anchor
point, which is the point on the path. - A pair of direction points—
left direction
andright direction
—which allow you to control the path segment's curve.
You define each property as an array of page coordinates in the format [x, y]:
- If all three properties of a
pathPoint
object have the same coordinates, and the properties of the nextpathPoint
in the line are equal to each other, you create a straight-line segment. - If two or more properties in a
pathPoint
object have different values, the segment connected to the point is curved.
To create a path or add points to an existing path using pathPoint
objects, create a pathItem
object, then add the path points as child objects in the pathItem
:
var myDoc = app.activeDocument;
var myLine = myDoc.pathItems.add();
//set stroked to true so we can see the path
myLine.stroked = true;
var newPoint = myLine.pathPoints.add();
newPoint.anchor = [220, 475];
//giving the direction points the same value as the
//anchor point creates a straight line segment
newPoint.leftDirection = newPoint.anchor;
newPoint.rightDirection = newPoint.anchor;
newPoint.pointType = PointType.CORNER;
var newPoint1 = myLine.pathPoints.add();
newPoint1.anchor = [375, 300];
newPoint1.leftDirection = newPoint1.anchor;
newPoint1.rightDirection = newPoint1.anchor;
newPoint1.pointType = PointType.CORNER;
var newPoint2 = myLine.pathPoints.add();
newPoint2.anchor = [220, 300];
//giving the direction points different values
//than the anchor point creates a curve
newPoint2.leftDirection =[180, 260];
newPoint2.rightDirection = [240, 320];
newPoint2.pointType = PointType.CORNER;
Combining path point types¶
The following script sample creates a path with three points:
var myDoc = app.activeDocument;
var myLine = myDoc.pathItems.add();
myLine.stroked = true;
myLine.setEntirePath( [[220, 475], [375, 300]]);
// Append another point to the line
var newPoint = myLine.pathPoints.add();
newPoint.anchor = [220, 300];
newPoint.leftDirection = newPoint.anchor;
newPoint.rightDirection = newPoint.anchor;
newPoint.pointType = PointType.CORNER;
Shapes¶
To create a shape, you use the object that corresponds to the shape's name (like ellipse
, rectangle
, or polygon
), and use the object's properties to specify the shape's position, size, and other information like the number of sides in a polygon.
Remember:
- All measurements and page coordinates are processed as points by the scripting engine. For details, see Measurement Units.
- x and y coordinates are measured from the bottom-left corner of the document, as indicated in the Info panel in the Illustrator application. For details, see Page-item positioning and dimensions.
Creating a rectangle¶
Consider the following sample:
var myDocument = app.documents.add()
var artLayer = myDocument.layers.add()
var rect = artLayer.pathItems.rectangle( 144, 144, 72, 216 );
The sample uses the pathItems
object's rectangle()
method to create a rectangle with these properties:
- The top of the rectangle is 2 inches (144 points) from the bottom edge of the page.
- The left edge is 2 inches (144 points) from the left edge of the page.
- The rectangle is 1 inch (72 points) wide and 3 inches (216 points) long.
Creating a polygon¶
Consider the following sample:
var myDocument = app.documents.add()
var artLayer = myDocument.layers.add()
var poly = artLayer.pathItems.polygon( 144, 288, 72.0, 7 );
The sample uses the polygon()
method to create a polygon with these properties:
- The center point of the object is inset is 2 inches (144 points) on the horizontal axis and 4 inches (288 points) on the vertical axis.
- The length of the radius from the center point to each corner is 1 inch (72 points).
- The polygon has 7 sides.