月曜日, 7月 13, 2026

JavaScriptでAI遊び 99 
Illustratorで選択したオブジェクトのサイズをランダム変更

選択したオブジェクトのサイズをランダムに変更じます。

// 選択オブジェクトをランダムスケール

if (app.documents.length === 0) {
alert("ドキュメントを開いてください。");
} else {
var doc = app.activeDocument;

if (doc.selection.length === 0) {
alert("オブジェクトを選択してください。");
} else {

var minScale = parseFloat(prompt("最小倍率(%)", "50"));
if (isNaN(minScale)) exit();

var maxScale = parseFloat(prompt("最大倍率(%)", "200"));
if (isNaN(maxScale)) exit();

if (minScale > maxScale) {
var tmp = minScale;
minScale = maxScale;
maxScale = tmp;
}

function randomScale(min, max) {
return min + Math.random() * (max - min);
}

for (var i = 0; i < doc.selection.length; i++) {

var item = doc.selection[i];
var scale = randomScale(minScale, maxScale);

item.resize(
scale, // 水平
scale, // 垂直
true, // パターン変形
true, // グラデーション変形
false, // 線幅は維持
true, // 塗りパターン変形
scale // 線幅倍率
);
}

alert("ランダムスケール完了");
}
}

オブジェクトを選択し実行すると・・・

最小倍率を指定し・・・

最大倍率を指定するだけです。

このパレットが表示されたら完了です。

上は処理結果です。線幅も対応させる場合は、38行目を以下の様に変更すれば完了です。

false, // 線幅は維持
true, // 線幅も変更

※Illustratorのアップデートで不具合が出る場合があります。気がついた時点でデバッグするように心がけていますが、すぐに対応できないのでご容赦ください。