ちくちく日記

DTP系備忘録。真面目にやってます。

IllustratorでApplescript

AppleScriptで配置されている画像の回転角度を得る事はできない。ようだ。

配置された画像に対して、rotateというコマンドを利用して、回転を行なう事はできる。

    • 配置された画像に45度の回転をかける

tell application "Adobe Illustrator"
rotate placed item 1 of layer 1 of document 1 angle 45.0 about bottom left
end tell

また、変換行列(変換matrix)という形式を利用して、オブジェクトに変形をくわえる事もできる

    • 配置された画像に45度の回転をかける

tell application "Adobe Illustrator"
set baseMatrix to get rotation matrix angle 45.0
transform placed item 1 of layer 1 of document 1 using baseMatrix
end tell


ところが、回転された画像は、回転された情報をmatrixという形でしか持たないので、

    • 配置された画像のmatrixを得る

tell application "Adobe Illustrator"
get matrix of placed item 1 of layer 1 of document 1
end tell


得られたmatrixは、わけわかめ
{class:matrix, mvalue_a:0.707106649876, mvalue_b:-0.70710670948, mvalue_c:0.707106649876, mvalue_d:0.707106649876, mvalue_tx:316.75048828125, mvalue_ty:587.07666015625}


Adobeスクリプトマニュアルには
「変換マトリックスは、線形代数という分野から生まれた、数学的な概念です」とあるので、なんか計算すればここから回転度数を得られるのだろうけど、難しい。ってか私には無理。

そもそも、なんでpropertiesの中にangleとかscaleが無いんだろう。

get angle of placed item 1 of layer 1 of document 1

とか

get horizontal scale of placed item 1 of layer 1 of document 1

でとれればいいのに。