土曜日, 9月 12, 2026
金曜日, 9月 11, 2026
JavaScriptでAI遊び 106
Illustratorで選択したオブジェクトを数と比率を指定してランダム複製・配置
// 選択オブジェクトをランダム複製・配置
// アートボード内に収める
if (app.documents.length == 0) {
alert("ドキュメントを開いてください。");
} else {
var doc = app.activeDocument;
var sel = doc.selection;
if (sel.length == 0) {
alert("オブジェクトを選択してください。");
} else {
var count = Number(prompt("複製数", "30"));
if (isNaN(count) || count < 1) exit();
var minScale = Number(prompt("最小倍率(%)", "50"));
var maxScale = Number(prompt("最大倍率(%)", "150"));
if (isNaN(minScale) || isNaN(maxScale)) exit();
var ab = doc.artboards[
doc.artboards.getActiveArtboardIndex()
].artboardRect;
var left = ab[0];
var top = ab[1];
var right = ab[2];
var bottom = ab[3];
for (var c = 0; c < count; c++) {
for (var i = 0; i < sel.length; i++) {
var obj = sel[i].duplicate();
// ランダム倍率
var scale = minScale + Math.random() * (maxScale - minScale);
obj.resize(
scale,
scale,
true,
true,
true,
true
);
// ランダム回転
obj.rotate(Math.random() * 360);
// サイズ取得
var b = obj.visibleBounds;
var w = b[2] - b[0];
var h = b[1] - b[3];
// アートボードより大きい場合は削除
if (w > (right - left) || h > (top - bottom)) {
obj.remove();
continue;
}
// ランダム位置
var x = left + Math.random() * ((right - left) - w);
var y = top - Math.random() * ((top - bottom) - h);
obj.translate(
x - b[0],
y - b[1]
);
}
}
doc.selection = null;
alert("完了");
}
}
TCDW8886
薄力粉ではなくて小麦粉なのは何故?
木曜日, 9月 10, 2026
Let's start JavaScript 110
ランダムに円、三角、四角を表示
TCDW8885
断片的な景色だけでは永遠に辿り着けませんね
水曜日, 9月 09, 2026
Modeling in Fusion 19
Illustratorデータを正確に利用する手順
Fusion 2704.1.23 arm64






































