Skip to main content
Known Participant
July 31, 2023
Answered

Help with Illustrator Script for Creating Layers

  • July 31, 2023
  • 1 reply
  • 762 views

I'm not much into scripting, so I apologise for any stupid questions. I'm trying to create a script to set up layers that I usually create manually every time. I copied this script a while ago and it worked in previous versions of Illustrator, but i get errors in Illustrator 2023. Any help would be much appreciated.

 

//Apply to myDoc the active document

var layerName = LayerOrderType;

var myDoc = app.activeDocument;

//define first character and how many layers do you need

 

var layerName

var numberOfLayers=0;

 

//Create the layers

 

for(var i=0; i<=numberOfLayers; i++)

{ var layerName = "BACKGROUND"; var myLayer = myDoc.layers.add(); myLayer.name = layerName; }

{ var layerName = "ARTWORK"; var myLayer = myDoc.layers.add(); myLayer.name = layerName; }

{ var layerName = "FOLD"; var myLayer = myDoc.layers.add(); myLayer.name = layerName; }

{ var layerName = "KNIFE"; var myLayer = myDoc.layers.add(); myLayer.name = layerName; }

 

// Moves the bottom layer to become the topmost layer

if (documents.length > 0) {

countOfLayers = activeDocument.layers.length;

if (countOfLayers > 1) {

bottomLayer = activeDocument.layers[countOfLayers-1];

bottomLayer.zOrder(ZOrderMethod.BRINGTOFRONT);

}

else {

alert("The active document only has only 1 layer")

}

}

 

This is the error I get

This topic has been closed for replies.
Correct answer m1b

Hi @pnsyd, no need to apologize; scripting is challenging and it's good that you are trying to make things easier for yourself!

 

Unfortunately your script has lots of errors—but here is a fixed version:

(function () {

    var layerNames = [
        "BACKGROUND",
        "ARTWORK",
        "FOLD",
        "KNIFE",
    ];

    var doc = app.activeDocument;


    for (var i = 0; i < layerNames.length; i++) {
        var myLayer = doc.layers.add();
        myLayer.name = layerNames[i];
    }

    // Moves the bottom layer to become the topmost layer
    doc.layers[doc.layers.length - 1].zOrder(ZOrderMethod.BRINGTOFRONT);

})();

 - Mark

1 reply

m1b
Community Expert
m1bCommunity ExpertCorrect answer
Community Expert
July 31, 2023

Hi @pnsyd, no need to apologize; scripting is challenging and it's good that you are trying to make things easier for yourself!

 

Unfortunately your script has lots of errors—but here is a fixed version:

(function () {

    var layerNames = [
        "BACKGROUND",
        "ARTWORK",
        "FOLD",
        "KNIFE",
    ];

    var doc = app.activeDocument;


    for (var i = 0; i < layerNames.length; i++) {
        var myLayer = doc.layers.add();
        myLayer.name = layerNames[i];
    }

    // Moves the bottom layer to become the topmost layer
    doc.layers[doc.layers.length - 1].zOrder(ZOrderMethod.BRINGTOFRONT);

})();

 - Mark

pnsydAuthor
Known Participant
July 31, 2023

Thank you so much 🙂