2番と8番の位置を入れ替えたいなーという時。
「整列」を使って入れ替えるの、ちょっと面倒くさいですよね?
そんな時に使えるテクニックをご紹介。
1.入れ替えたい2つのオブジェクトを選択する
2.ツールバーから「回転」を選択
ショートカットキーのRでも選択できます。
3.Enterキーを押して、180度回転する。
回転ツールをダブルクリックしても、設定のダイヤログが出てきます。
これで位置の入れ替えができました。
が、上下反転しちゃったので、次でそれを直します。
4.「オブジェクト」-「変形」-「個別に変形」を選択。
5.回転の角度に「180」と入力する。
これで位置の入れ替えができました。
スクリプト配布
この作業を自動でやってくれるスクリプトを、ChatGPTちゃんにお手伝いしてもらいながら作成しました。
素人が作ったものなので、使ってみて何か問題が起こっても責任は取れません。
動作の正確性や安全性についても保証はできないので、使うのはあくまで自己責任でお願いします。
【使い方】
位置を入れ替えたいオブジェクトを選択して、「オブジェクトの入れ替え.jsx」スクリプトを起動する。
【ダウンロード】
Googleドライブです。右上のダウンロードボタンからDLしてください。
右上にこんな感じのボタンがあります。
コードはこんな感じ。
#target illustrator app.preferences.setBooleanPreference('ShowExternalJSXWarning', false); function main() { var doc = app.activeDocument; var sel = doc.selection; if (!sel || sel.length !== 2) { alert("入れ替えたいグループまたはオブジェクトを2つ選択してください。"); return; } // グループ化(選択したオブジェクトやグループを一時的にグループ化) var tempGroup = doc.groupItems.add(); for (var i = 0; i < sel.length; i++) { sel[i].moveToBeginning(tempGroup); } // グループの中心点を計算 var bounds = tempGroup.visibleBounds; var cx = (bounds[0] + bounds[2]) / 2; var cy = (bounds[1] + bounds[3]) / 2; // グループを中心点で180度回転(入れ替え) tempGroup.rotate(180, cx, cy); // グループ解除(安全な処理) var items = []; while (tempGroup.pageItems.length > 0) { items.push(tempGroup.pageItems[0]); tempGroup.pageItems[0].moveToBeginning(doc); } tempGroup.remove(); // 各オブジェクト(またはグループ)を自身の中心で180度回転(上下を戻す) for (var i = 0; i < items.length; i++) { var item = items[i]; var ibounds = item.visibleBounds; var ix = (ibounds[0] + ibounds[2]) / 2; var iy = (ibounds[1] + ibounds[3]) / 2; item.rotate(180, ix, iy); } } main();