月曜日, 9月 18, 2023

JavaScriptでAI遊び 11 
ファイル内のオブジェクトデータを一気選択

Illustratorで選択したオブジェクト(テキストを含む)からオブジェクトデータだけを選択した状態にする。

複数のレイヤーに分散したデータを選択し、以下のJavaScriptを失効すると・・・

// 選択されたオブジェクトを取得
var selectedItems = app.activeDocument.selection;

// テキストフレーム以外のオブジェクトを格納する配列
var nonTextItems = [];

// 選択オブジェクトを走査し
//テキストフレーム以外のオブジェクトを取得
for (var i = 0; i < selectedItems.length; i++) {
var currentItem = selectedItems[i];
if (currentItem.typename != "TextFrame") {
nonTextItems.push(currentItem);
}
}

// テキストフレーム以外のオブジェクトを選択状態にする
if (nonTextItems.length > 0) {
// すべてのオブジェクトの選択状態を解除
app.activeDocument.selection = null;

// テキストフレーム以外のオブジェクトを選択
for (var j = 0; j < nonTextItems.length; j++) {
nonTextItems[j].selected = true;
}
} else {
alert("オブジェクトが選択されていません。");
}


オブジェクトデータだけが選択された状態になります。

レイヤーの状態はこんな感じです。