選択した円の線に入力指定した数の円を隙間なく配置します。なお、円は正円であることが条件です。
/*
Illustrator Script
選択した円に指定数の円を隙間なく配置
*/
if (app.documents.length === 0) {
alert("ドキュメントがありません");
exit();
}
var doc = app.activeDocument;
var sel = doc.selection;
if (sel.length !== 1 || sel[0].typename !== "PathItem") {
alert("円(パス)を1つ選択してください");
exit();
}
// 円の数を入力
var count = prompt("配置する円の数を入力してください", "24");
if (count === null || isNaN(count) || count <= 0) {
alert("正しい数値を入力してください");
exit();
}
count = Number(count);
var base = sel[0];
// 元の円情報
var b = base.geometricBounds;
var cx = (b[0] + b[2]) / 2;
var cy = (b[1] + b[3]) / 2;
var radius = (b[2] - b[0]) / 2;
// 円周長
var circumference = 2 * Math.PI * radius;
// 小円の直径(隙間なし)
var d = circumference / count;
// 配置
for (var i = 0; i < count; i++) {
var angle = (2 * Math.PI / count) * i;
var x = cx + Math.cos(angle) * radius;
var y = cy + Math.sin(angle) * radius;
var c = doc.pathItems.ellipse(
y + d / 2,
x - d / 2,
d,
d
);
c.stroked = true;
c.filled = false;
}
任意の円を選択し・・・
実行すると、デフォルト値を表示したパレットが表示されます。
そのまま[OK]で上図の結果が得られます。
指定数は自由に設定できます。
上図は9に設定した結果です。
































