Copy link to clipboard
Copied
Hello everyone,
I have to count some groups in a specific layer. I would like to run a script which search in the layer called "VEI" to find all the groups with "PEH" et "PEV" included in order to count them by adding numbers.
Thank you
PM
1 Correct answer
Bonjour Polotrobo,
Le texte en position 0 est modifié,selon la disposition en ligne de gauche à droite et du haut vers le bas...
// JavaScript Document for Illustrator
// INIT --------------------
var layerName = "VEY";
var Grp1Name = "PEH";
var Grp2Name = "PEV";
// -------------------------
function main () {
var docRef = activeDocument;
var lay = docRef.layers[layerName];
var grps = [];
for (var i = 0; i < lay.groupItems.length; i++) {
grps.push(lay.groupItems[i]);
}
...
Explore related tutorials & articles
Copy link to clipboard
Copied
This is hard-coded to search only for the group names you've given. It could be changed to be more dynamic:
function countGroups() {
var aDoc = app.activeDocument;
var myLayer = prompt('Set Layer', 'VEI');
var ii = 0;
for (i = 0; i < aDoc.layers[myLayer].groupItems.length; i++) {
var myGroup = aDoc.layers[myLayer].groupItems[i];
if (myGroup.name == 'PEH' || myGroup.name == 'PEV') {
ii = ii + 1;
}
}
alert(ii);
}
countGroups();
EDIT:
This version allows you to set the "Group" names within the script:
function countGroups() {
var aDoc = app.activeDocument;
var myLayer = prompt('Set Layer', 'VEI'),
myGroup1 = prompt('Set Group1', 'PEH'),
myGroup2 = prompt('Set Group1', 'PEV');
var ii = 0;
for (i = 0; i < aDoc.layers[myLayer].groupItems.length; i++) {
var myGroup = aDoc.layers[myLayer].groupItems[i];
if (myGroup.name == myGroup1 || myGroup.name == myGroup2) {
ii = ii + 1;
}
}
alert(ii);
}
countGroups();
Copy link to clipboard
Copied
Bonjour Polotrobo,
Le texte en position 0 est modifié,selon la disposition en ligne de gauche à droite et du haut vers le bas...
// JavaScript Document for Illustrator
// INIT --------------------
var layerName = "VEY";
var Grp1Name = "PEH";
var Grp2Name = "PEV";
// -------------------------
function main () {
var docRef = activeDocument;
var lay = docRef.layers[layerName];
var grps = [];
for (var i = 0; i < lay.groupItems.length; i++) {
grps.push(lay.groupItems[i]);
}
grps.reverse();
var k = 1, grp, text, h, H;
for (i = 0; i < grps.length; i++) {
grp = grps[i];
if ((grp.name == Grp1Name || grp.name == Grp2Name)&& grp.textFrames.length > 0) {
text = grp.textFrames[0];
h = text.height;
text.contents = text.contents+"\n"+k;
H = text.height;
text.translate(0,H-h);
k++;
}
}
}
if (app.documents.length) main();
René
Copy link to clipboard
Copied
Merci à vous pour vos réponses.
@rcraighead This script is useful bur unfortunately it only count the groups and does not add number to them..
@renél80416020 Merci pour cette solution mais lorsque je lance le script voilà ce que j'obtiens...
J'effectue certainement mal votre script.
Encore merci,
PM
Copy link to clipboard
Copied
EDIT: Merci beaucoup @renél80416020 il y avait juste une coquille le nom du layer n'est pas VEY mais VEI, une fois changé tout fonctionne parfaitement, encore merci c'est parfait !!

