多忙のTen Aさんに代わりまして(勝手に)
app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM;
ここ、変えっぱなしだと(自分使い用ならいいんですが) 使った人が泣く恐れがあるので、
var coordinateSystemOrg = app.coordinateSystem; //元の設定
app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM;
//処理本体
app.coordinateSystem = coordinateSystemOrg;
のように、処理後に元の状態に戻してやるといいです。
return Math.abs((nagasa1 + nagasa2) / 2);
このMath.absは不要かと。
試しに、ルーラー原点あたりに中心がくるように長方形かなんか置いて現状のコードを実行してみるといいです。
単位を換算するには、UnitValueオブジェクトを利用するといいんですが、
return obj * 25.4 / 72;
としても、誤差のない値がとれます。0.3528だと端数が出るかと。
とりあえず以上です。関数もうまく使えていて、全体に見やすくていいと思います。
あ、追記(すみません)
MAINfn以外の4つの関数はMAINfn関数の専用で使うのであれば、MAINfn(){ }のブロック内に書いたほうがいいかなーと思います(ここは個人の感想の範疇です)。