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