イラレでページアイテムの四隅をドラッグして変形するとき、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