doEx.jsxについての簡単な説明2

舌の根が乾かないうちに、勢いにまかせて連投します。
というか、機能を追加しました。すでにダウンロードされている方はダウンロードしなおしてください。
追加した機能は「選択したものを表のようにあつかうため?のクラス(多方向対応/インデザイン・イラストレーター対応版)」です。
あといろいろ。肥大化したソースはとうとう1000行を超えてしまいました。




目玉機能の紹介

説明が難しい機能なんですが無理矢理説明すると…

#include 'doEx.jsx'
doEx(activeDocument.pathItems).hvg().view();

上のスクリプトを実行するとこうなります。
横の■と□で表現したグリッド的なものがスクリプトで認識したオブジェクトの形状になります。

また別の場合は、こうなります……。

なんだかちょっと違うな〜ってときは

#include 'doEx.jsx'
doEx(activeDocument.pathItems).hvg(0.5).view();

引数に絞り値(今回は0.5:デフォルトは1です。)を入れることで、納得の結果が得れるかもしれません。





■オブジェクトを吐き出す順番

ある程度、気に入った結果が得られたことろで、次に行うのはeachです。eachです。
例えば、認識したオブジェクトの形状がこんな形だった場合。

eachしていく順番はこうなります。eachで取り出せるのは常にZ方向です。(Z方向で判るかな)





じゃ…じゃぁ他の順番にしたい時はどうするの?
当然の疑問です。
そういう場合はrotateで形状を回転させます。

doEx(app.activeDocument.pathItems).hvg().rotate().view();

そうすると形状が回転してこうなります。

これをeachするとこの順番になります。

さらにrotateとreverseを駆使することであらゆる方向から順番にオブジェクトを取り出すことが可能です。

doEx(app.activeDocument.pathItems).hvg().rotate().reverse().view();


目玉機能です。




■その他

hvg()した後はhvgオブジェクトとしてメソッドチェーンしていくことになります。
そこで他の形式に変換したい場合はこうします。
Arrayに変換

doEx(app.activeDocument.pathItems).hvg().rotate().toArray();

doExオブジェクトに変換

doEx(app.activeDocument.pathItems).hvg().rotate().doEx();

レッツ、メソッドチェーン!




■おまけ

doEx(app.activeDocument.pathItems).view();

とするとこんなダイアログが表示されます。

ここでeachした場合のオブジェクトを確認することができます。




ところでhvgの意味なんですが、Human Visual Gridとかそんな感じです。
……
うん、まぁ。今日はここまで。