After drawing a segmented circle in Adobe Illustrator using the Polar Grid Tool, how do you make each of the segments into individual layers that arent connected to the whole circle?

  • using the direct select tool, to select every other line segment, cut and paste that selection onto new layer. Mar 9 '14 at 22:14
  • object > expand appearance Mar 10 '14 at 18:29

If you would like to attack this programmatically, can I suggest javascript, as a good approach. A good place to start is demonstrated by the excellent scriptographer plugin for Adobe Illustrator, (the devs – Jürg Lehni and Jonathan Puckey – are no longer developing past CS5). They are actively developing paperjs - which looks excellent. The Developers say:

Paper.js is an open source vector graphics scripting framework that runs on top of the HTML5 Canvas. It offers a clean Scene Graph / Document Object Model and a lot of powerful functionality to create and work with vector graphics and bezier curves, all neatly wrapped up in a well designed, consistent and clean programming interface.

I've attached an example of the procedural art generated, by the division raster example.

// Based on 'JPEG Raster' by Jonathan Puckey:
// http://www.flickr.com/photos/puckey/3179779686/in/photostream/

// Create a raster item:
var raster = new Raster('mona.jpg');
var loaded = false;

raster.on('load', function() {
    loaded = true;

// Make the raster invisible:
raster.visible = false;

var lastPos = view.center;
function moveHandler(event) {
    if (!loaded)
    if (lastPos.getDistance(event.point) < 10)
    lastPos = event.point;

    var size = this.bounds.size.clone();
    var isLandscape = size.width > size.height;

    // If the path is in landscape orientation, we're going to
    // split the path horizontally, otherwise vertically:

    size /= isLandscape ? [2, 1] : [1, 2];

    var path = new Path.Rectangle({
        point: this.bounds.topLeft.floor(),
        size: size.ceil(),
        onMouseMove: moveHandler
    path.fillColor = raster.getAverageColor(path);

    var path = new Path.Rectangle({
        point: isLandscape
            ? this.bounds.topCenter.ceil()
            : this.bounds.leftCenter.ceil(),
        size: size.floor(),
        onMouseMove: moveHandler
    path.fillColor = raster.getAverageColor(path);


function onResize(event) {
    if (!loaded)

    // Transform the raster so that it fills the bounding rectangle
    // of the view:
    raster.fitBounds(view.bounds, true);

    // Create a path that fills the view, and fill it with
    // the average color of the raster:
    new Path.Rectangle({
        rectangle: view.bounds,
        fillColor: raster.getAverageColor(view.bounds),
        onMouseMove: moveHandler

Create the number of layers you need. Go object - expand appearance, then select one slice and use the layer-panel to "pull" the little coloured square into a new layer. Repeat.

enter image description here

Not the answer you're looking for? Browse other questions tagged or ask your own question.