クリエイター手抜きプロジェクト[453]Adobe Illustrator CS6〜CC 2015編 選択した図形をすべてのレイヤーにコピーする
── 古籏一浩 ──

投稿:  著者:



今回は選択した図形をすべてのレイヤーにコピーするスクリプトと、指定した数だけレイヤーを複製するスクリプトの2本立てです。

まずは、選択した図形をすべてのレイヤーにコピーするスクリプトです。





// 選択した図形を全てのレイヤーにコピーする
(function(){
var docObj = app.activeDocument;
var selObj = docObj.selection;
var allLay = docObj.layers;
for(var i=0; i=0; j--){
var parentLay = getParentLayer(selObj[j]);
if (parentLay == allLay[i]){ continue; } // 同一レイヤーにはコピーしない
selObj[j].duplicate(allLay[i]);
}
}
})();
// 親レイヤーを取得する関数
function getParentLayer(obj){
var t = obj.parent.typename;
if (t != "Layer"){
getParentLayer(obj.parent);
}
return obj.parent;
}


次は、アクティブレイヤーを指定した数だけ複製するスクリプトです。


// アクティブレイヤーを指定した数だけ複製する
(function (){
var n = prompt("複製する数を入れてください", 1);
if (!n){ return; } // キャンセルされた場合は何もしない
var n = parseInt(n); // 整数化する
var docObj = app.activeDocument;
var srcLayer = docObj.activeLayer;
var layName = docObj.activeLayer.name; // レイヤー名
for(var i=0; i=0; j--){
srcLayer.pageItems[j].duplicate(dupLay, ElementPlacement.PLACEATBEGINNING);
}
}
})();


え〜、ちょっと原稿短いので、便利かもしれない短いスクリプトをいくつか。まず、ひとつ目は選択した図形のすべてのクリッピングマスクを解除するスクリプトです。

// 選択されたクリッピンググループを全て解除する
for(var i=0; i<256; i++){
app.executeMenuCommand("releaseMask");
}

実際には256段階までのクリッピングマスクしか解除できません。そこまでクリッピングしないだろという希望的観測ですが、もし256以上のクリッピングしている場合は「i<256」の256の数値を大きくしてください。

次のスクリプトは選択した図形のグループ化を100段階解除します。

// 選択した図形のグループを解除
for(var i=0; i<100; i++){
app.executeMenuCommand("ungroup");
app.redraw();
}

100段階以上のグループ化もありえますが、どうもあまり大きな数値を指定すると機能しないことがあります。また、時々一回目の実行がうまく処理されないことがあります。アクションで登録してファンクションキーに割り当てておけば、キーを2〜3回押せばグループ化を完全に解除できるでしょう。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/


前回のIchigoJamのプログラムサイズで1022文字と書きましたが、現在のバージョンでは1024byteまでだそうです。CPU(ARM)のワード境界の関係で、若干最大文字数が変わるそうです。詳細は以下のページで。
http://fukuno.jig.jp/980


IchigoJamのチートシートを用意しましたので、よければ使ってください。
http://www.openspc2.org/reibun/IchigoJam/etc/cheat-sheet/0001/index.html


・Premiere Pro & Media Encoder自動化サンプル集
http://www.amazon.co.jp/dp/4802090471/


・JavaScriptによるデータビジュアライゼーション入門
http://www.amazon.co.jp/dp/4873117461/


・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/


・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/


・Adobe JavaScriptリファレンス
http://www.amazon.co.jp/dp/B00FZEK6J6/


・ExtendScript Toolkit(ESTK)基本編
http://www.amazon.co.jp/dp/B00JUBQKKY/


・データビジュアライゼーションのためのD3.js徹底入門
http://www.amazon.co.jp/dp/4797368861


・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/


・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/