円の円周を指定して合致した正円を描画させます。(RGB版)
function mmToPoints(mm) {
return mm * 2.83465; // 1 mm ≈ 2.83465 pt
}
function createCenteredCircleByUserInput() {
if (app.documents.length === 0) {
alert("ドキュメントを開いてください。");
return;
}
var userInput =
prompt("円周をmm単位で入力してください:", "300");
if (!userInput) return; // キャンセル時は終了
var circumferenceMM = parseFloat(userInput);
if (isNaN(circumferenceMM) || circumferenceMM <= 0) {
alert("有効な数値を入力してください。");
return;
}
var doc = app.activeDocument;
var artboard =
doc.artboards[doc.artboards.getActiveArtboardIndex()];
var artboardBounds = artboard.artboardRect;
// アートボードの中心座標を取得
var centerX = (artboardBounds[0] + artboardBounds[2]) / 2;
var centerY = (artboardBounds[1] + artboardBounds[3]) / 2;
var circumferencePt = mmToPoints(circumferenceMM);
var radiusPt = circumferencePt / (2 * Math.PI);
var diameterPt = radiusPt * 2;
// 円をアートボード中心に描画
var circle = doc.pathItems.ellipse(centerY +
radiusPt, centerX - radiusPt, diameterPt, diameterPt);
// ランダムなRGB色を適用
var fillColor = new RGBColor();
fillColor.red = Math.random() * 255;
fillColor.green = Math.random() * 255;
fillColor.blue = Math.random() * 255;
circle.filled = true;
circle.fillColor = fillColor;
circle.stroked = true;
circle.strokeColor = new RGBColor(); // 黒い枠線
circle.strokeWidth = 1;
}
createCenteredCircleByUserInput();
実行したら、円周の長さを指定すれば・・・
描画します。色はRGBのランダム色で生成されます。