選択したパス(線幅)の太さを指定範囲でランダムに変更します。
// 選択したオブジェクトの線幅をランダム変更
if (app.documents.length === 0) {
alert("ドキュメントを開いてください。");
} else {
var doc = app.activeDocument;
if (doc.selection.length === 0) {
alert("オブジェクトを選択してください。");
} else {
var minWeight = parseFloat(prompt("最小線幅(pt)", "0.5"));
if (isNaN(minWeight)) exit();
var maxWeight = parseFloat(prompt("最大線幅(pt)", "5"));
if (isNaN(maxWeight)) exit();
if (minWeight > maxWeight) {
var temp = minWeight;
minWeight = maxWeight;
maxWeight = temp;
}
function randomWeight(min, max) {
return min + Math.random() * (max - min);
}
function applyRandomStroke(item) {
if (item.typename === "PathItem") {
if (item.stroked) {
item.strokeWidth =
randomWeight(minWeight, maxWeight);
}
}
else if (item.typename === "GroupItem") {
for (var i = 0; i < item.pageItems.length; i++) {
applyRandomStroke(item.pageItems[i]);
}
}
else if (item.typename === "CompoundPathItem") {
for (var j = 0; j < item.pathItems.length; j++) {
if (item.pathItems[j].stroked) {
item.pathItems[j].strokeWidth =
randomWeight(minWeight, maxWeight);
}
}
}
}
for (var k = 0; k < doc.selection.length; k++) {
applyRandomStroke(doc.selection[k]);
}
alert("線幅をランダム変更しました。");
}
}
パスを選択し実行すると・・・
最小線幅を指定し・・・
最大線幅を指定するだけです。
このパレットが表示されたら完了です。
上は処理結果です。ハンドルのある曲線やクローズパスにも対応します。
※Illustratorのアップデートで不具合が出る場合があります。気がついた時点でデバッグするように心がけていますが、すぐに対応できないのでご容赦ください。






