イラレでオブジェクトの面積を求めようとしたら地味に面倒だったのでスクリプトを作りました。
#概要
面積を測りたいオブジェクトを選択した状態で実行すると、新規テキストを作成して計算結果を表示します。
#注意
- 小数点を丸めているので厳密な計算には使えません。あくまでも目安ということで。
- 複雑なパスの場合、事前にパスの単純化をかけてから実行したほうが良いかもです。
- モニタの解像度によって計算結果が異なるかもなので、単純な四角形などで計算結果を確認してから使用してください。
area.jsx
var area = app.selection[0].area; // 選択中のオブジェクトの面積(単位がpt)を取得
var absolute = Math.abs(area); // 負の数字を引っ張ってくる場合があるので、絶対値を取得して正の数に統一
var convert = Math.ceil(absolute * 0.12445216049); // 小数点を切り上げしてptからメートル法に変換
var result = (convert * 0.01 +'㎠');
if (isNaN(area)) {
alert ("計算できませんでした。単体のオブジェクトを選択して再度実行してください。(グループ化されたものは計算できません)");
}
else {
var x = app.activeDocument.selection[0].position[0];
var y = app.activeDocument.selection[0].position[1]; // 選択中のオブジェクトのXY座標を取得
docObj = activeDocument;
textObj = docObj.textFrames.add();
textObj.contents = (result); //テキストフレームにresultを書き込み
textObj.translate(x,y); //テキストを選択中のオブジェクトのすぐ上に移動
}
#参考
オブジェクトの座標取得
https://stackoverflow.com/questions/4840595/how-do-i-get-the-position-of-the-selected-illustrator-pathitem-in-pixels-using
Illustrator CS自動化作戦
http://www.openspc2.org/book/IllustratorCS/
ILLUSTRATOR SCRIPTING
https://www.adobe.com/devnet/illustrator/scripting.html