クリエイター手抜きプロジェクト[437]Adobe Illustrator CS4〜CC 2015編 選択した図形をすべてのアートボードにコピーする/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,500文字)


今回はIllustratorで選択した図形を、すべてのアートボードにコピーするスクリプトです。

Illustrator CS4からは、ひとつのドキュメントで複数のページを持つことができるようになりました。そのせいで、ちょっとしたページものならばIllustratorで作ってしまおうという私にみたいな人も多いかもしれません。

そんな場合に不便なのが、Illustratorにはマスターページがないことです。

InDesignなどではマスターページに図形やページ番号を入れておけば、追加修正すると自動的にすべてのページに反映されます。ところがIllustratorにはマスターページがないので、手作業でアートボードを選択しつつ前面にペースト(か背面にペースト)していかなければなりません。

それは、面倒だということで作ったのが、以下のスクリプトです。図形やパスを選択して実行すると、自動的に全アートボードに同じものがコピーされます。




// 選択されている内容を他のアートボードにコピーする
(function(){
// 現在アクティブになっているアートボードの番号を取得
var abIndex = app.activeDocument.artboards.getActiveArtboardIndex();
// 選択している図形
var selObj = app.activeDocument.selection;
for(var i=0; i<selObj.length; i++){
// もし、コピーした後にパスを選択したくないなら以下の行の先頭の//を削除
//selObj[i].selected = false;
// 図形を複製する
var coords = checkPath(selObj[i], abIndex);
if (coords){
for(var j=0; j<app.activeDocument.artboards.length; j++){
// 同じアートボードの場合は処理しない
if (j == abIndex){ continue; }
// パスの複製を作る
var dupObj = selObj[i].duplicate();
drawPath(dupObj, j, coords.dx, coords.dy);
}
}
}
function checkPath(pObj, artNo){
// アートボードをアクティブにする
app.activeDocument.artboards.setActiveArtboardIndex(artNo);
// アクティブなアートボードのサイズを求める
var rect = app.activeDocument.artboards[artNo].artboardRect;
var ax1 = rect[0];
var ay1 = -rect[1];
var ax2 = rect[2];
var ay2 = -rect[3];
// パスの座標を読み出す
var geo = pObj.geometricBounds;
if (!geo){ return false; }
var x1 = geo[0];
var y1 = -geo[1];
var x2 = geo[2];
var y2 = -geo[3];
// アートボード内に完全に座標値が収まっているか調べる
if (x2 < ax1){ return false; }
if (x1 > ax2){ return false; }
if (y2 < ay1){ return false; }
if (y1 > ay2){ return false; }
// アートボード内に収まっているので座標値の差分を返す
return { dx : x1 - ax1, dy : y1 - ay1 }
}
function drawPath(pObj, artNo, dx, dy){
// アートボードをアクティブにする
app.activeDocument.artboards.setActiveArtboardIndex(artNo);
// アクティブなアートボードのサイズを求める
var rect = app.activeDocument.artboards[artNo].artboardRect;
var ax1 = rect[0];
var ay1 = rect[1];
pObj.left = ax1 + dx;
pObj.top = ay1 - dy;
}
})();


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

結局エンブレムは撤回というオチになってしまったようで。撤回されたら、こんなネタも発生。

・「#究極にダサいロゴ作るからお前らも作れ」
< http://nlab.itmedia.co.jp/nl/articles/1509/05/news024.html >

ダサい後は口直しに綺麗な花火。9月5日に長野県の諏訪湖で行われた、全国新作花火競技大会でも。面白かったのは花火で寿司を作る、というもの(009)。確かにマグロの寿司に見えます。

・全国新作花火競技大会
< http://footage3.openspc2.org/seminar/hanabi/20150905/ >

・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/ >