
以前の記事【解決】Illustratorにもオートフィルがほしい!により,選択した2つのテキストフレームの距離でアイテムを複製移動し,数値をオートフィルできるようになりました。
スクリプト実行にショートカットを割り振れば,ショートカットを連打するだけで一定間隔での複製と数値の打ち替えができます。便利ですね。
しかし作業をしていると「パスとかグループとか一定間隔で複製移動だけしてくれないか? 数値はオートフィルしなくていいから」と思うことがあります。リピートグリッドがあれば解決しそうですが,連打でできる爽快感も良いものです。
そこで今回は,選択した2つのアイテムの距離でアイテムを複製移動するIllustratorスクリプトを紹介します。
あらまし
選択した2つのアイテムの距離でアイテムを複製移動するIllustratorスクリプトです。古い(背面にある)アイテムから新しい(前面にある)アイテムに向かう方向と距離で,新しいほうのアイテムを複製移動します。
選択アイテムが両方ポイントテキストの場合アンカーポイントで,それ以外の場合は左上座標で距離を測ります。
このリンクからダウンロードしてください。
autoCopy.jsx
1 ファイル 0.92 KB
使いかたは?
難しいことは何もありません。2つのアイテムを選択し,スクリプトを実行するだけです。
これでまた少し仕事が速くなりました。今日もさっさと仕事を切り上げて好きなことをしましょう!
コードはこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
/** * @file 選択した2つのアイテムの距離でアイテムを複製移動する * @version 1.0.0 * @author sttk3.com * @copyright (c) 2020 sttk3.com */ //#target 'illustrator' (function() { if(app.documents.length <= 0) {return ;} var doc = app.documents[0] ; // 種類は何でもいいが2つのアイテムを対象とする。過不足があれば終了する var targetItems = doc.selection ; if(targetItems.length != 2) {return ;} targetItems.reverse() ; // 移動距離を算出する。ポイントテキスト同士のときはanchorで,それ以外はpositionで計算する var propName = 'position' ; if( (targetItems[0].constructor.name == 'TextFrame') && (targetItems[1].constructor.name == 'TextFrame') && (targetItems[0].kind == TextType.POINTTEXT) && (targetItems[1].kind == TextType.POINTTEXT) ) { propName = 'anchor' ; } var pos0 = targetItems[0][propName] ; var pos1 = targetItems[1][propName] ; var deltaXY = [pos1[0] - pos0[0], pos1[1] - pos0[1]] ; // アイテムを複製して移動する targetItems.push(targetItems[1].duplicate()) ; targetItems[2].translate(deltaXY[0], deltaXY[1]) ; // 連続で実行できるよう選択を変更する doc.selection = [targetItems[1], targetItems[2]] ; })() ; |
このサイトで配布しているスクリプトやその他のファイルを,無断で転載・配布・販売することを禁じます。
それらの使用により生じたあらゆる損害について,私どもは責任を負いません。
スクリプトやファイルのダウンロードを行った時点で,上記の規定に同意したとみなします。