見出し画像

【scriptLibrary】スクリプトのソースコードを解説!

今回は、特定のフォルダに保存されたスクリプトを簡単に選択・実行できるスクリプト【scriptLibrary】のソースコードを解説します。

スクリプトの概要

このスクリプトは、フォルダを指定し、そのフォルダ内の .jsx ファイルを一覧表示、選択して実行できる仕組みを提供します。

主な機能は以下の通りです。

  1. スクリプトフォルダの選択・保存

  2. フォルダ内のスクリプト一覧を表示

  3. 選択したスクリプトを実行

  4. フォルダの変更が可能

ソースコードの解説

以下、ソースコードの主要な部分を解説します。

1. スクリプトエンジンのターゲット設定

#targetengine "main"

このコードは、スクリプトが実行されるエンジンを指定します。これにより、スクリプトが独立したプロセスとして動作し、継続的に実行されるようになります。

2. フォルダパスの保存

var settingsFile = new File(Folder.userData + "/illustrator_script_folder.txt");

このコードは、ユーザーのデータフォルダに illustrator_script_folder.txt というファイルを作成し、スクリプトフォルダのパスを保存する役割を果たします。

3. フォルダの取得と選択


function getScriptFolder() {
     if (settingsFile.exists) {
         settingsFile.open("r");
         var folderPath = settingsFile.read(); 
        settingsFile.close(); 
        var scriptFolder = new Folder(folderPath);
         if (scriptFolder.exists) {
             return scriptFolder;
         } else { 
            alert("保存されたフォルダが見つかりません。再度フォルダを選択してください。");
         }
     }
     return selectAndSaveFolder(); }

この関数は、保存されたフォルダのパスを取得し、フォルダが存在する場合はそのパスを返します。存在しない場合は、新たにフォルダを選択するよう促します。

4. フォルダの選択と保存

function selectAndSaveFolder() {
    var scriptFolder = Folder.selectDialog("スクリプトフォルダーを選択してください");
    if (scriptFolder) {
        settingsFile.open("w");
        settingsFile.write(scriptFolder.fsName);
        settingsFile.close();
        return scriptFolder;
    }
    return null;
}

この関数は、新しくスクリプトフォルダを選択し、そのパスを保存します。

5. スクリプトの実行

function executeScript(file) {
    if (file instanceof File) {
        var bt = new BridgeTalk();
        bt.target = "illustrator";
        bt.body = "$.evalFile('" + file.fsName + "')";
        bt.onError = function(err) {
            alert("Error executing: " + file.displayName + "\n" + err.body);
        };
        bt.send();
    }
}

この関数は、選択されたスクリプトファイルをIllustratorで実行する処理を行います。BridgeTalk を使用することで、Illustratorの環境でスクリプトを安全に評価・実行できます。


実際にスクリプトを活用しよう!

このスクリプトを活用することで、Illustratorでのスクリプト実行をよりスムーズに行うことができます。

【scriptLibrary】は、ブログからDLできます。
さらに詳しい解説や他のスクリプトもブログで紹介しています。ぜひチェックしてみてください!

▶ 詳しくはこちらのブログへ!


いいなと思ったら応援しよう!