クリエイター手抜きプロジェクト[347]Illustrator CS3〜CS6編 レイヤーを複製する/古籏一浩

投稿:  著者:  読了時間:4分(本文:約1,900文字)


今回のスクリプトは、アクティブになっているレイヤーの内容を複製するものです。手作業だとレイヤーの複製は簡単にできます。ところが、スクリプトではなぜかレイヤーを複製する機能がありません。図形や文字を複製する機能はあるのですが、不思議です。

まず、以下のスクリプトはサブレイヤーを除くレイヤー内容を複製します。サブレイヤーを複製したくない場合や、サブレイヤーがないときに使えます。





var srcLayer = app.activeDocument.activeLayer;
var dstLayer = app.activeDocument.layers.add(); // 新規レイヤーを作成
for(var i=0; i<srcLayer.pageItems.length; i++){
  var src = srcLayer.pageItems[i].duplicate();
  src.move(dstLayer, ElementPlacement.PLACEATEND);
}


サブレイヤーが含まれる場合には、以下のスクリプトを使うとサブレイヤーごと複製されます。サブレイヤーの名前なども、そのままコピーされます。ただし、通常の図形とサブレイヤーの順番に関しては、同じように複製されません。


var srcLayer = app.activeDocument.activeLayer;
var dstLayer = app.activeDocument.layers.add(); // 新規レイヤーを作成
dupLayer(srcLayer, dstLayer);
// レイヤーを複製(再帰)
function dupLayer(srcLayer, dstLayer){
  for(var i=0; i<srcLayer.pageItems.length; i++){
    var src = srcLayer.pageItems[i].duplicate();
    src.move(dstLayer, ElementPlacement.PLACEATEND);
  }
  for(i=0; i<srcLayer.layers.length; i++){
    var dstLayer2 = dstLayer.layers.add(); // 新規レイヤーを作成
    dstLayer2.name = srcLayer.layers[i].name;
    dupLayer(srcLayer.layers[i], dstLayer2);
  }
}


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

本業とは関係ないものが多々やってきて、なかなか仕事が進まず。マシンパワーがあれば、早く終わる仕事もあるけど基本的には自分の能力、技術力不足が大きい感じ。という事で、今回は短めの原稿。時間を見てAdobe系のアプリのライブラリを作っておきたいというのもあるけど......。あと、ブームが去って余った業務用3Dカメラを貸してもらったので、そこらへんも書きたいところ。

・Nexus 10(アンドロイドタブレット)使い方辞典
< http://www.openspc2.org/reibun/Android/Nexus10/ >

・Kindle Fire HD使い方辞典
< http://www.openspc2.org/reibun/Kindle/Fire_HD/ >

・Nexus 7(アンドロイドタブレット)使い方辞典
< http://www.openspc2.org/reibun/Android/Nexus7/ >

・iPad mini(アイパッドミニ)使い方辞典
< http://www.openspc2.org/reibun/iPad/mini/2012/ >

・JavaScript逆引きハンドブック
< http://www.amazon.co.jp/dp/4863541082 >

・改訂5版JavaScriptポケットリファレンス
< http://www.amazon.co.jp/dp/4774148199 >

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

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

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >
吉田印刷所の「印刷の泉」でも購入できるようになりました。