水曜日, 10月 04, 2023

JavaScriptでAI遊び 12 
選択したオブジェクトの起点をmm表示

選択したオブジェクトの起点をmm表示してみます。相変わらず無駄処理系ですが、JavaScriptのソースはこんな感じです。

// 複製するオブジェクトを選択
var selectedItems = app.activeDocument.selection;

// 選択されたオブジェクトが存在したら
if (selectedItems.length > 0) {
// テキストフレームを作成
var textFrame = app.activeDocument.textFrames.add();
// テキストの位置とスタイルを設定
textFrame.top = -100; // 表示する位置の縦座標
textFrame.left = 100; // 表示する位置の横座標
textFrame.textRange.size = 12; // テキストのサイズ
// ドキュメントの左上から下に100ポイント
// ドキュメントの左端から右に100ポイントの位置

// ポイントをミリメートルに変換する関数
function pointsToMillimeters(points) {
return points * 0.352778;
// ポイントからミリメートルへの変換は
// 1インチ(25.4mm)÷72=0.3527777...
// よって1ポイントは約0.352778ミリメートル
}
// 選択したオブジェクトの位置をミリメートルで表示
for (var i = 0; i < selectedItems.length; i++) {
var item = selectedItems[i];
var x = pointsToMillimeters(item.position[0]);
var y = pointsToMillimeters(item.position[1]);
var text = "オブジェクト " + (i + 1) + " の位置: X="
+ x.toFixed(2) + " mm, Y=" + y.toFixed(2) + " mm\n";
textFrame.textRange.contents += text;
}
} else {
alert("オブジェクトが選択されていません。");
}

実行には、確認したいオブジェクトを選択してからJavaScriptを実行。

実行すると現在開いているドキュメントの一番上のレイヤーに結果が表示される。

表示位置はソース内の以下で指定・・・

// テキストの位置とスタイルを設定
textFrame.top = -100; // 表示する位置の縦座標
textFrame.left = 100; // 表示する位置の横座標
textFrame.textRange.size = 12; // テキストのサイズ
// ドキュメントの左上から下に100ポイント
// ドキュメントの左端から右に100ポイントの位置

表示結果はドキュメントの左上からの値で、選択したオブジェクトをデフォルト描画起点となります。