忍者ブログ

ぼんぷろぐ

InDesignとかイラレとかのスクリプトよもやま話

新しいブログに引っ越しました。

こちらのブログはもう更新しませんが、コメント欄は生きてますので疑問、ご指摘などありましたらどうぞ。

[イラレ]
無変換キー押下中に線幅・効果・パターンの拡大縮小をONにする(AutoHotkey)

イラレでページアイテムの四隅をドラッグして変形するとき、Shiftを押しながらだと縦横比保持とか、Alt押しながらだと中心位置を保持とかっていう機能がありますが、そんな感じで無変換キーを押してると線幅・効果・パターンも変形されるようにしてみましょう。日本語キーボードの負の遺産、無変換キーを有効活用できるというのもAutoHotkeyの大きな利点です。

環境設定の「パターンも変形する」「線幅と効果も拡大縮小」をONにするExtendScriptはこうです。trueをfalseにしたらOFFになります。
app.preferences.setBooleanPreference("transformPatterns",true);
app.preferences.setBooleanPreference("scaleLineWeight",true);

あとはこれを無変換キー+左クリック押し始めに実行して、放した瞬間にOFFの方を実行する、というのをAHKスクリプトで書きます。vk1Dsc07Bというのが無変換キーを表す文字列。キーボードやマウスの入力はAutoHotkeyがホットキーとして受け取るとイラレ側には送られないので、左クリックだけはちゃんとSendコマンドで送ってやります。

vk1Dsc07B & LButton::
    js=
    (
    app.preferences.setBooleanPreference("transformPatterns",true);
    app.preferences.setBooleanPreference("scaleLineWeight",true);
    )
    app:=ComObjActive("Illustrator.Application")
    app.DoJavaScript(js)
    Send, {LButton down}
Return

vk1Dsc07B & LButton Up::
    Send, {LButton up}
    js=
    (
    app.preferences.setBooleanPreference("transformPatterns",false);
    app.preferences.setBooleanPreference("scaleLineWeight",false);
    )
    app:=ComObjActive("Illustrator.Application")
    app.DoJavaScript(js)
Return

できあがりー

追記:
上記のスクリプトでは、自由変形ツールでShiftやAltキーと無変換キーを組み合わせて使った場合にShift、Altが無効化されてしまうことがわかりました(選択ツールだと大丈夫なのに…)。
で、下記のようにマウスの左ボタンを放すときに押されてるキーも一緒に送ってやれば大丈夫そう。

vk1Dsc07B & LButton::
    js=
    (
    app.preferences.setBooleanPreference("transformPatterns",true);
    app.preferences.setBooleanPreference("scaleLineWeight",true);
    )
    app:=ComObjActive(AiProgId)
    app.DoJavaScript(js)
    Send, {LButton down}
Return
vk1Dsc07B & LButton Up::
    if (GetKeyState("Shift")=1)
    {
        if(GetKeyState("Alt")=1)
            Send, !+{LButton up}
        else
            Send, +{LButton up}
    }
    else
    {
        if(GetKeyState("Alt")=1)
            Send, !{LButton up}
        else
            Send, {LButton up}
    }
    js=
    (
    app.preferences.setBooleanPreference("transformPatterns",false);
    app.preferences.setBooleanPreference("scaleLineWeight",false);
    )
    app:=ComObjActive(AiProgId)
    app.DoJavaScript(js)
Return



なおAutoHotkeyはWindows用のフリーソフトです。これまでの記事はこちら

AutoHotkeyでイラレのスクリプトにショートカットキーを割り当ててみる(1)
AutoHotkeyでイラレのスクリプトにショートカットキーを割り当ててみる(2)
イラレで「プレーンテキストとしてペースト」と「現在のレイヤーにペースト」

そしてここまでの
・Shift+Zで2つの選択アイテムの位置をいれかえ
・Ctrl+Shift+Vでプレーンテキストとしてペースト&現在のレイヤーにペースト
・無変換キー押下中に線幅・効果・パターンの拡大縮小をONにする
の3つの機能がついたAHKスクリプトを置いておきます。

[ダウンロード]

.ahkがAutoHotkeyに関連付けられてればダブルクリックするだけで上記の機能が使えるようになるはず。

環境によっては1行目の
AiProgId=Illustrator.Application

AiProgId=Illustrator.Application.CS6
などと書き換えなくてはいけないかもしれません。

不具合あったら教えて下さい。
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

無題

Macで同じことができないかなぁとやってみてるんですが、難しいや。
keyboard maestroってのでできそうな気がすけど、かなり工夫が必要みたい。

プロフィール

kawamoto_α
(あるふぁ(仮))


InDesignで新聞組版のようなことをしています。

ツイッタ

※ブラウザによっては当ブログからDLしたzipファイルが拡張子なしになることがあるようですが、.zipを補って開いてください。



イラレ用トーンカーブスクリプト(¥1500)



クロソイド式角丸長方形スクリプト(¥500)
Illustrator用
InDesign用



イラレスクリプトをキーボードショートカットで実行するやつ(Win用)