Page 1 sur 1

Script pour Adobe Illustrator

Posté : 08 juin 2018, 09:49
par fredstib
Bonjour

Je suis débutant en javascript et j'essaie d'optimiser mes travaux sur le logiciel Illustrator en créant des script.
J'ai par exemple créer un script qui me permet d'ajouter une couche (layer) ou de supprimer une couche

app.activeDocument.layers.getByName('Layer 1').remove();
app.activeDocument.layers.getByName('Layer 1').add();

Ma question est la suivante:
Je voudrais selectionner un layer spécifique par son nom (par eg; Layer 1)
Quel action (du genre 'remove', 'add') puis-je utiliser pour selectionner ?
J'ai essayé 'select' ou 'selection' mais ça ne fonctionne pas.

Merci d'avance pour vos conseils

Fred

Re: Script pour Adobe Illustrator

Posté : 08 juin 2018, 11:38
par Frosty
Bonjour

Je pense avoir trouvé un exemple de solution ici :
https://forums.adobe.com/thread/569012

Code : Tout sélectionner

app.activeDocument.activeLayer = app.activeDocument.layers.itemByName("Layout");

Re: Script pour Adobe Illustrator

Posté : 08 juin 2018, 12:37
par fredstib
Bonjour Frosty

Merci pour votre réponse.
Malheureusement, ça ne fonctionne pas. :(
Ill_error.PNG
Ill_error.PNG (17.02 Kio) Vu 10269 fois
Fred

Re: Script pour Adobe Illustrator

Posté : 09 juin 2018, 09:03
par Frosty
Ah, j'aurais dû faire plus attention, c'est pour indesign et pas pour illustrator :-(

Re: Script pour Adobe Illustrator

Posté : 12 juin 2018, 10:30
par Frosty
Cela dit, vu ces deux discussions, ça a quand même l'air d'être la marche à suivre :

https://forums.adobe.com/thread/644267
https://forums.adobe.com/thread/625715

Rassure-moi, tu as quand même adapté la ligne que je t'ai donnée ? C'est à dire mettre par exemple "Layer 1" à la place de "Layout" comme paramètre pour l'appel à app.activeDocument.layers.itemByName(...) ?

Re: Script pour Adobe Illustrator

Posté : 12 juil. 2018, 16:41
par fredstib
Je viens de trouver une solution à mon problème:

var aDoc = app.activeDocument;
var myLayers = aDoc.layers;
var actName = "Months";
try {
aDoc.activeLayer = myLayers.getByName(actName);
redraw();
actLayer = aDoc.activeLayer;
actLayer.locked = false;
actLayer.visible = true;
redraw();
}
catch (e) {
alert ("Layer "+actName+" not found")
}