水曜日, 6月 18, 2025

JavaScriptでAI遊び 51 
Illustratorで角丸長方形の角を高さの比率で描画

個人的な必要にせまられたので、Illustratorで角丸長方形の角を高さの比率で描画してみました。

(function () {
var doc = app.activeDocument;
// ユーザー入力
var rectWidth = Number(prompt("矩形の幅 (px):", "200"));
var rectHeight = Number(prompt("矩形の高さ (px):", "100"));
var cornerRatio = Number(prompt("角丸の比率
        (高さに対する割合 0-0.5):", "0.2"));

if (isNaN(rectWidth) || isNaN(rectHeight) ||
        isNaN(cornerRatio) || cornerRatio < 0 || cornerRatio > 0.5) {
alert("無効な入力値です");
return;
}

var cornerRadius = rectHeight * cornerRatio;
    // 高さに対する比率で角丸を決定

// 矩形の作成(アートボードの中央に配置)
var artboard =
        doc.artboards[doc.artboards.getActiveArtboardIndex()];
var abBounds = artboard.artboardRect;
var centerX = (abBounds[0] + abBounds[2]) / 2;
var centerY = (abBounds[1] + abBounds[3]) / 2;
var rect = doc.pathItems.roundedRectangle(centerY +
        rectHeight / 2, centerX - rectWidth / 2,
        rectWidth, rectHeight, cornerRadius, cornerRadius);
alert("矩形を作成しました!");
})();

起動して幅と高さ、そして高さに対する比率を0〜0.5で指定します。0.5以上は指定しても意味が無いのでエラーになります。

上はデフォルト値の処理結果。下は比率を最大の0.5とした結果です。