さようならESTK

最終更新日

Comments: 0

みなさまご無沙汰しております。実はわたくし、社内ノマドワーカー状態でしてそれというのもメインマシンであるいMacが瀕死状態となってしまった為なのですが、新しいまっくさんがいらっしゃるまでの期間は空きマシンを間借りしての生活となっておりますw

そんなこんなで、瀕死のHDDから色々とサルベージしながら別のところで手を動かしているのですが、ちょっとした問題がありまして……Catalinaさんが32bitアプリケーションなんか知らないって言うのが原因なのですが、殆どのツールは諦めますがESTKだけは捨てたくねぇ~って思ってもどうしようもございません。この時の為にVSCode用に型定義ファイル整備したりデバッガに手をいれていた訳です。

でもね、VSCodeでデバッグするのってちょっと煩わしいんですよw

出来ればもっと軽快なワークフローがあればなって思います。で、過去の物を引っ張り出してくるわけなんです。

1.Code Editorエクステンション

はい、知ってる人は知っているExtendScript編集・実行が可能なCEPエクステンションです。

こんな感じのやつですね。内部的にはCodeMirrorでして、キーバインドがvimというくるった仕様となっております。これ、ワンライナーとか書いて実行するのにとても重宝します。御覧の通りアプリケーション上で直接スクリプトを編集して即実行できるという、これぞヘルパーツールってやつです。

しかし、こいつにも弱点があります。アプリケーション内で編集作業を行いますので大きなパネルを開いて作業すると邪魔なんですねw

なので、そこそこ以上の規模のものを簡便に扱える仕組みというものがあればもう少し幸せになれそうです。

2.Coteditor

そこで目を付けたのがこのテキストエディタです。ExtendScriptではありませんが、JavaScriptをハイライト出来ますし、なんといっても使い慣れているってところが素敵ですw

重要なところはメニューにASを登録できるところです。

ご覧のようにスクリプトメニュにアップルスクリプトを登録可能なんですね。ここで登録してあるのはカレントドキュメントをIllustratorでJavaScriptとして実行するやつとInDesignで(以下同…

このようにCoteditorでスクリプトを実行するとIllustratorが実行してくれました。

Illustrator向けが以下のようになっています。

set filePath to ""
tell application "CotEditor"
if not (exists front document) then
display dialog "実行したいファイルを開いておいてね。" buttons {"OK"} default button "OK" with icon stop
return
end if
set filePath to path of document 0 as Unicode text
if filePath = "" then
display dialog "実行する時はファイルを一度保存しような???" buttons {"OK"} default button "OK" with icon stop
return
end if
if (filePath is not "") then
tell application "Adobe Illustrator"
activate (do javascript file filePath)
end tell
end if
end tell

つづいてInDesignの方も…

set filePath to ""
tell application "CotEditor"
if not (exists front document) then
display dialog "実行したいファイルを開いておいてね。" buttons {"OK"} default button "OK" with icon stop
return
end if
set filePath to path of document 0 as Unicode text
if filePath = "" then
display dialog "実行する時はファイルを一度保存しような。" buttons {"OK"} default button "OK" with icon stop
return
end if
if (filePath is not "") then
tell application "Adobe InDesign CC 2021"
do script file (filePath as POSIX file) language javascript
end tell
end if
end tell

このように同じ会社のアプリケーションで同じスクリプトエンジンのはずなのですが、若干実装が異なります。

ついでに、ここで利用したJavaScriptについて…

選択した2つのアンカーポイントの距離を計算して表示するものです。

if (selection.length>0) {
var pt = [];
for (var j,i=0;i<selection.length;i++) {
for (j=0;j<selection[i].pathPoints.length;j++) {
if (selection[i].pathPoints[j].selected===PathPointSelection.ANCHORPOINT)
pt.push(selection[i].pathPoints[j].anchor);
}
}
if (pt.length>2) alert("Selection must be 2 anchorPoints.");
else 
alert(Math.sqrt((pt[0][0]-pt[1][0])*(pt[0][0]-pt[1][0])+(pt[0][1]-pt[1][1])*(pt[0][1]-pt[1][1]))*.3527777778);
}

これで、大きめのプロジェクト以外はVSCodeを利用する必要がなくなりましたとさ(^-^;

ten_a

Graphic Designer, Scripter and Coder. Adobe Community Professional.

シェアする

コメントを残す