グループ:JavaScript × Illustrator

グループ化する

グループをつくる(中身は空)

var grp=app.activeDocument.groupItems.add();

オブジェクトをグループに入れる

obj.move(grp,ElementPlacement.PLACEATEND);
move(relativeObject, insertionLocation)
引数1 relativeObject グループを指定
引数2 insertionLocation 重なり順を指定
ElementPlacement.INSIDE ……内側
ElementPlacement.PLACEATBEGINNING ……最前面
ElementPlacement.PLACEATEND ……最背面ElementPlacement.PLACEBEFORE ……前ElementPlacement.PLACEAFTER ……後

グループの中にオブジェクト作成

var lineObj = grp.pathItems.add();

選択オブジェクトをグループ化/メニュー使用(CS6以上対象)

app.executeMenuCommand("group");

選択オブジェクトをグループ化

var grp=app.activeDocument.groupItems.add();
var sel=app.activeDocument.selection;
for(i=0; i < sel.length; i++){
 sel[i].move(grp, ElementPlacement.PLACEATEND);
}

グループ解除

選択オブジェクトのグループ解除/メニュー使用(CS6以上対象)

// グループ解除
app.executeMenuCommand('ungroup'); 

グループ化を1段階解除

var sel=app.activeDocument.selection;
for(var i=(sel.length-1);i>-1;i--){
 sel[i].move(activeDocument, ElementPlacement.PLACEATEND);
}

いろいろ

ドキュメント内のグループの数(入れ子になってるグループもカウント)

var groupcount=app.activeDocument.groupItems.length;

グループ内のすべてのアイテムを処理

配列をわたす

groupLoop(sel); 
//グループの中身にアクセス 
function groupLoop(objs){
   for(var i=0;i<objs.length;i++){
     if(objs[i].typename=="GroupItem"){
       groupLoop(objs[i].pageItems);
     }else{
       //ここに処理をかく
     }
   }
 return;
 }

変数をわたす

groupLoop(sel[i]);
 //グループの中身にアクセス
 function groupLoop(obj){
     if(obj.typename=="GroupItem"){
       for(var j=0;j<obj.pageItems.length;j++){
          groupLoop(obj.pageItems[j]);
        }
     }else{
       //ここに処理をかく 
    }
 return;
 }
タイトルとURLをコピーしました