■リサイズ入替の使い勝手がグーンと良くなりました!
06
 おつかれさまです。@gorolibです。
 今回はオブジェクト同士を互いの大きさにリサイズし、さらに入れ替えも行う(以下、リサイズ入替)スクリプトです。

 リサイズ入替は古今東西すぐれたスクリプトが存在します。若輩ながら私も過去に提案しております。



■リサイズ入替は必ずどちらか不要になる


 しかしこのリサイズ入替に少々不満がでてきました。それは従来のリサイズ入替では、処理後に必ずどちらかのオブジェクトが不要になるということです。

 ここでリサイズ入替の仕様に言及してみましょう。対象オブジェクトは次のように表現できます。

 (A)入替元…Bの位置・サイズに変更して使う
 (B)入替先…位置・サイズの参照用。入替後は捨てる

 つまり従来のリサイズ入替では必ずBを削除する操作が入るのです。位置とサイズの参照用としては必要だが処理後は不要になるというのは、スクリプトが有効活用できる典型的なパターンです。


■別ファイルからの入れ替えが異次元レベル!


 いまひとつの問題点は、入替元が往々にして別のIllustratorファイル上にあるということです。従来のリサイズ入替は同じIllustratorファイル上で選択する必要がありますので、いったん入替先にペーストしなくてはなりません。

 例えばロゴデザインの納品データから別ファイル上に貼り付けると、あまりのサイズ違いに驚くことはよくあります。
14

 太陽と他の惑星かよ!(三村風)

 これを従来のリサイズ入替スクリプトで入れ替えると「全く不要なデカいB」が登場します(笑)
27

 そこで今回のスクリプトでは、入替元をクリップボードにしました。もちろん内部処理でペーストは行いますが、参照したらすぐに削除します。ついでに選択しておいた入替先のオブジェクトも削除します。


■今回のスクリプト情報
06

【スクリプト概要】
クリップボード内容を選択オブジェクトにリサイズし、さらに入れ替えまで行います。


【スクリプトファイル名】
G344_PasteAndResize.jsx


【使い方】
(1)入替元オブジェクトAをコピーします
(2)入替先オブジェクトBを選択します
(3)このスクリプトを起動します
(4)入替先がAに入れ替わります


【仕様】
(1)Illustratorのアクティブドキュメント上に、クリップボードの内容をいったんペーストします
(2)選択オブジェクトのタテヨコと比較し、小さい倍率の方を採用して変倍します(*1)
(3)変倍後に座標を再計算して、選択オブジェクトの位置に移動します
(4)いったんペーストしたオブジェクトは処理の最後に削除します
(5)入れ替わった選択オブジェクトは削除します
(6)複数選択されている場合は、それぞれリサイズ入替を行います


(*1)…選択オブジェクトからはみ出さないような倍率となります

お役に立てれば幸いです!ではでは出羽の海。


■ダウンロードはこちらから


https://note.mu/gorolib/n/n06abff4c8353



(追記170530)
ノーリサイズ版(拡大縮小しない)を追加しました。この2本立て、最強です
G346_PasteAndNoResize.jsx

(ダウンロードはこちらから)
https://note.mu/gorolib/n/n06abff4c8353