デフォルトで円弧ツールはありますが・・・巨大な円弧を始点と角度を指定して描いてみました。
function drawArcInMM() {
// ユーザー入力を取得
var radiusMM =
prompt("円弧の半径を入力してください (mm):", "50");
var startAngle =
prompt("開始角度を入力してください (度):", "0");
var endAngle =
prompt("終了角度を入力してください (度):", "90");
// 入力を数値に変換
radiusMM = parseFloat(radiusMM);
startAngle = parseFloat(startAngle);
endAngle = parseFloat(endAngle);
// 入力値が有効でない場合は終了
if (isNaN(radiusMM) || isNaN(startAngle) || isNaN(endAngle) ||
radiusMM <= 0) {
alert("正しい数値を入力してください。");
return;
}
// mmをpxに変換 (1mm = 2.83464567px)
var mmToPx = 2.83464567;
var radiusPx = radiusMM * mmToPx;
// 度をラジアンに変換
var startRad = (Math.PI / 180) * startAngle;
var endRad = (Math.PI / 180) * endAngle;
// ドキュメントの参照を取得
var doc = app.activeDocument;
// ドキュメントの中心座標を取得
var centerX = doc.width / 2;
var centerY = doc.height / 2;
// 円弧を構成する点を計算
var arcPath = [];
for (var t = startRad; t <= endRad; t += 0.01) {
var x = centerX + radiusPx * Math.cos(t);
var y = centerY + radiusPx * Math.sin(t);
arcPath.push([x, y]);
}
// パスを作成
var pathItem = doc.activeLayer.pathItems.add();
pathItem.setEntirePath(arcPath);
pathItem.stroked = true;
pathItem.filled = false;
pathItem.strokeColor = new RGBColor();
pathItem.strokeColor.red = 0;
pathItem.strokeColor.green = 0;
pathItem.strokeColor.blue = 0;
alert("円弧を描画しました!");
}
// スクリプトを実行
drawArcInMM();
ジッ恋すると、円弧入力パレットが表示され・・・
続いて開始角度円弧入力パレットが表示され・・・
さごに終了角度入力パレットが表示されるので入力すれば・・・
生成されますが、生成位置をドキュメント内にうまく配置できないので、縮小表示で見つけてください。
なを、生成される円弧はパスの塊なので[オブジェクト]>[パス]>[単純化]を実行すれば完成です。