Photoshop script arrange selected layers in grid

20 Views Asked by At

It sounds super simple, I just want to arrange all my selected layers in a simple grid. This is what I whipped up:

var doc = app.activeDocument;

var hasLayers = doc.activeLayer.layers.length;

 

if (hasLayers > 0) {

    var selectedLayers = doc.activeLayer.layers;

 

    var cols = 11;

    var rows = 11;

    var xOffset = 512;

    var yoffset = 512;

 

    for(var i = 0; i < selectedLayers.length; i++){

        var layer = selectedLayers[i];

 

        var row = Math.floor(i / rows);

        var col = i % cols;

 

        var newX = col * xOffset;

        var newY = row * yoffset;

 

        layer.translate(newX, newY);

    }

 

    doc.activeLayer = doc.activeLayer;

    doc.activeLayer = doc.backgroundLayer;

 

    alert("It worked!");

} else {

    alert("Didnt work");

}

I just get:

Error 21: undefined is not an object. Line: 2 -> var hasLayers = doc.activeLayer.layers.length;

How can I make it work?

I tried removing the if statement altogether but it still didn't work.

0

There are 0 best solutions below