忍者ブログ

ぼんぷろぐ

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

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

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

[イラレ]
イラレで「プレーンテキストとしてペースト」と「現在のレイヤーにペースト」(AutoHotkey)

「プレーンテキストとしてペースト」の方は前回ちょっと書いたんですが、今回はやり方をかえて、ExtendScriptっぽくcontentsにぶっこんじゃいましょう。これならクリップボードも書き換えずに済みます。
^!v::
    app:=ComObjActive("Illustrator.Application")
    sel:=app.Selection
    If (ComObjType(sel,"Name")="TextRange"){
        cc=%clipboard%
        If cc!=
        {
            sel.Contents:=cc
        }
    }
Return

んで、これは基本的にテキスト選択時に使用するものってことにする。そうじゃないときは、この同じCtrl+Alt+Vのコマンドを別のペーストに使いましょう。限りあるキーコマンドを大切に。

他にペースト系でキーボードショートカットが欲しかったのと言えば、「現在のレイヤーにペースト」です。私は普段、レイヤーパネルメニューにある「コピー元のレイヤーにペースト」をONにして作業してるので、これをOFFにして、ペーストして、またONに戻すって操作を一発でやりたい。
これをExtendScriptで書くとこんな感じ

    app.preferences.setBooleanPreference("layers/pastePreserve",false);
    app.paste();
    app.preferences.setBooleanPreference("layers/pastePreserve",true);

これをAutoHotkeyスクリプトに書き換えようと思ったのですが、COMオブジェクトにもSetBooleanPreferenceメソッドはたしかにあるのですが、第2引数がBoolean型じゃないと受け付けてくれない(0も"False"もダメ)。そしてなんとAHKスクリプトにはBoolean型が存在しない!

しかたないのでまたDoJavaScriptに登場してもらいます。


^!v::
    app:=ComObjActive("Illustrator.Application")
    sel:=app.Selection
    If (ComObjType(sel,"Name")="TextRange"){
        cc=%clipboard%
        If cc!=
        {
            sel.Contents:=cc
        }
    }
    Else
    {
    js=
    (
    app.preferences.setBooleanPreference("layers/pastePreserve",false);
    app.paste();
    app.preferences.setBooleanPreference("layers/pastePreserve",true);
    )
   app.DoJavaScript(js)
    }
Return


できあがりー
これでCtrl+Alt+Vがテキスト選択時には「プレーンテキストとしてペースト」、テキスト非選択時には「現在のレイヤーにペースト」になりました。
PR

[イラレ]
AutoHotkeyでイラレのスクリプトにショートカットキーを割り当ててみる(2)

前回の続きー

2つのページアイテムが選択されているとき、それらの位置を入れ替えるというスクリプトを考えてみます。

まずExtendScriptで書くとこんな感じ

var sel=app.selection;
if (sel.constructor.name!="TextRange" && sel.length==2) {
    var pos0=sel[0].position;
    sel[0].position=sel[1].position;
    sel[1].position=pos0;
}

これを「Ctrl+F1」に登録して実行するには、前回やった方法では、上記のスクリプトをjsxファイルとして保存し、AutoHotkey.ahkに次のように書き加えます。

^F1::
    app:=ComObjActive("Illustrator.Application")
    app.DoJavaScriptFile("D:\場所入れ替え.jsx")
Return

jsxファイルをいちいち用意しなきゃいけないのはめんどくさい!と思う方は、次のように書くこともできます。スクリプトをファイルじゃなく文字列で渡すようにしただけです。

^F1::
    irekaeScript=
    (
    var sel=app.selection;
    if (sel.constructor.name!="TextRange" && sel.length==2) {
        var pos0=sel[0].position;
        sel[0].position=sel[1].position;
        sel[1].position=pos0;
    }
    )
    app:=ComObjActive("Illustrator.Application")
    app.DoJavaScript(irekaeScript)
Return

[イラレ]
AutoHotkeyでイラレのスクリプトにショートカットキーを割り当ててみる(1)

※昨日ぐぐって見つけたばかりのソフトについて知ったようなことを書きますのであまりあてにしないでね

AutoHotkeyは、独自の言語で記述したスクリプトに従って、特定のキーが押された時などに様々な処理を自動実行できるWindows用のフリーソフトです。wikiなどには、AutoHotkeyとAutoHotkey_Lを区別して書いてあるのですが、現在は統合されているようです。最新版のAutoHotkeyをインストールすればAutoHotkey_Lの機能も使えます。

AutoHotkey(公式、英語)
AutoHotkey Wiki(日本語Wiki)

マイドキュメントにAutohotkey.ahkという名前のスクリプトを記述したファイルを置いて、AutoHotkey.exeを起動するというのが基本的な使い方になります。スクリプトを更新したら、タスクトレイの「H」アイコンを右クリックして「Reload This Script」を選びます。

ではではイラレスクリプト(jsx)をキーボードショートカットで実行するスクリプトを書いてみましょう。

[イラレ]
イラレのアピアランスで水平シアーを作るスクリプト

(2016.01.28) 垂直シアーに対応しました!




アピアランスの効果をスクリプトから適用する方法が解明された!(参考:IllustratorのLiveEffectメソッドがなんとかなった! - 手抜きLab@DTPの現場)ので、以前に作ったアピアランスの『変形』2つで水平シアーを作るための値を計算するツールをイラレスクリプトにしました。

使い方は、効果を適用したいアイテムを選択してスクリプトを実行→ダイアログに角度を入力するだけ。相変わらず45°以上に対応してません。

[ダウンロード]


ところで効果がスクリプトから適用できるようになった件ですが、この恩恵として、今までしょぼいUIをつっつくしかなかった『パスの自由変形』が、具体的な数値で作れるようになったんですよね。
まだじっくり試してはないのですが、シアーなんかもそっちで作ったほうが扱いやすそう。ただパスの自由変形で作ったシアーは適用するモノの縦横比によって角度が変わってくるので、これとどっちを使うかは場合によりけりです。


[追記]
イラレのアピアランスで段落に斜体をかけたい!!【Adobe illustrator】
https://note.com/raon_design/n/n27e543a7c6a4


この記事のリンクからここに来た方へ。
記事の説明では1回目(エリアテキストにする前)のシアーは「変形>シアー」で、2回目(エリアテキストにした後)のシアーはスクリプトでかけることになっていますが、2回とも「変形>シアー」を使うべきです。そうすれば変形後のテキストエリアは(見かけだけじゃなく本当に)長方形になるので、角をドラッグするだけで簡単にエリアサイズを変えられます。
スクリプトを使った場合は、見かけは長方形でも実際は平行四辺形なので、縦横比を保持せずリサイズすると角度が変わります。デメリットしかないです。

(このことはツイッタ上で著者の方には伝えたのですが記事を修正する気にはなってくれなかったようです)

プロフィール

kawamoto_α
(あるふぁ(仮))


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

ツイッタ

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



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



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



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