概要
このスクリプトは、Adobe Illustrator で選択したオブジェクトの幅と高さをミリメートル単位で計算し、そのサイズをオブジェクトの中央にテキストとして挿入します。さらに、挿入したテキストと選択したオブジェクトを同じグループにまとめます。
スクリプト
#target illustrator
// アクティブなドキュメントと選択されているアイテムを取得
var doc = app.activeDocument;
var selection = doc.selection;
// 選択されているオブジェクトがない場合、警告を表示
if (selection.length == 0) {
alert("オブジェクトを選択してください。");
} else {
// 選択されているオブジェクトに対して処理を行うループ
for (var i = 0; i < selection.length; i++) {
var item = selection[i];
// オブジェクトの幅と高さを取得し、ポイントからミリメートルに変換(小数点1位まで表示)
var width = (item.width * 0.352777778).toFixed(1); // pt to mm (1 pt = 0.352777778 mm)
var height = (item.height * 0.352777778).toFixed(1); // pt to mm
// テキストの内容を「幅 x 高さ mm」形式にする
var textContent = width + "mm x " + height + "mm";
// オブジェクトの中央の座標を計算
var centerX = item.position[0] + (item.width / 2); // オブジェクトのX座標の中央
var centerY = item.position[1] - (item.height / 2); // オブジェクトのY座標の中央
// テキストオブジェクトを作成し、テキスト内容を設定
var text = doc.textFrames.add();
text.contents = textContent;
// フォントサイズを12ポイントに設定
text.textRange.characterAttributes.size = 12;
// 作成したテキストをオブジェクトの中央に配置
text.position = [centerX - (text.width / 2), centerY + (text.height / 2)];
// グループを作成し、選択したオブジェクトとテキストを同一グループにする
var groupItems = doc.groupItems.add(); // 新しいグループを作成
item.moveToBeginning(groupItems); // 選択されたオブジェクトをグループに追加
text.moveToBeginning(groupItems); // 作成したテキストをグループに追加
}
}
説明
-
選択されたオブジェクトの幅と高さを計算:
- 幅と高さは、Illustrator のデフォルトのポイント単位をミリメートルに変換しています(1 pt = 0.352777778 mm)。
- 小数点以下1桁に丸めています。
-
中央にテキストを配置:
- オブジェクトの中心座標を計算し、その位置にサイズ情報をテキストとして挿入します。
-
グループ化:
- テキストとオブジェクトを新しいグループにまとめます。これにより、サイズのテキストとオブジェクトが一体となって移動や編集ができるようになります。
まとめ
このスクリプトは、Illustrator でオブジェクトのサイズを簡単に可視化し、それをオブジェクトの中央に表示する方法です。グループ化をし、サイズ表示が邪魔にならないように一緒に管理できるようにしています。