クライアント側エンジンと Web 側エンジン
FormIt プラグインは、2 つの異なる JavaScript エンジンを使用します。
HTML を表示するパネル(Web 側)
クライアント側のパネル(FormIt)。FormIt とそのジオメトリ カーネルを呼び出します
これら 2 つの JavaScript エンジンは、異なるプロセスで動作します。
クライアント側(FormIt)と Web 側(HTML)
FormIt は複数の JavaScript エンジンを同時に実行します。
FormIt アプリケーションには独自の JavaScript エンジンがあります
各プラグイン ツールバーには独自の JavaScript エンジンがあります
各プラグイン パネルには独自の JavaScript エンジンがあります(Chromium)
プラグインでは、JavaScript がロードされる場所を指定できます。

クライアント側(FormIt)
manifest.json を使用して、指定します。
Web 側(HTML)
index.html を使用して、指定します。
Web 側スクリプトは、Web ページからロードされます。
Web 側スクリプトは、複数の非同期の呼び出しを使用してクライアント側(FormIt)の JavaScript を呼び出すことができます。
Web ベースのプラグインからクライアント側(FormIt)のコマンドを呼び出す 3 つのメソッド
メソッド 1: FormItInterface.CallMethod
CallMethod
は、FormIt 側で実行される関数名とその引数を取得します。このメソッドを渡された関数は、関数呼び出しの結果とともに呼び出されます。
長所:
➕ await
が不要です。
短所:
➖ 結果を取得するにはコールバックが必要ですが、そのタイミングを決めることができません。
➖ スクリプトは 2 つの異なる場所で定義されます。
➖ プラグイン ロジックを 2 つの異なるファイルに分割する必要があります。
メソッド 2: FormIt.CallJS
*FormIt 2022.1 以降でのみ使用可能です
CallJS は、FormIt 側で呼び出される JavaScript 関数、および arguments.json オブジェクトを取得します。
長所:
➕ 必要なときに結果を利用できます
短所:
➖ **** 非同期の呼び出しをすべて await で修飾する必要があります。これを忘れると正しく機能しません。
➖ **** await
が原因で動作が遅くなる可能性があります。
メソッド 3 (async/await)
非同期の呼び出しで、Web 側が FormIt 側を呼び出します。この呼び出しは、あるプロセスで開始して別のプロセスに送られ、その結果が開始プロセスに戻されます。そのため、await が必要です。
既定では、組み込みの FormIt API のみを呼び出すことができます。
長所:
➕ 必要なときに結果を利用できます。
➕ manifest.json にスクリプトが定義されていなくても、すべてのコードを結合して、Web 側から実行される 1 つの JS ファイルにすることができます。
短所:
➖ **** 非同期の呼び出しをすべて await
で修飾する必要があります。これを忘れると正しく機能しません。
➖ **** await.
が原因で動作が遅くなる可能性があります。
メソッド 4 (RegisterAsyncAPI)
*FormIt 2023.0 以降でのみ使用可能です
FormIt 側でユーザ定義関数を呼び出すには、関数を登録する必要があります。次に例を示します。
クライアント側(FormIt)
Web 側(HTML)
例として、HelloBlockAsync を参照してください。
長所:
➕ 必要なときに結果を利用できます。
➕ manifest.json にスクリプトが定義されていなくても、すべてのコードを結合して、Web 側から実行される 1 つの JS ファイルにすることができます。
短所:
➖ **** 非同期の呼び出しをすべて await で修飾する必要があります。これを忘れると正しく機能しません。
➖ **** await.
が原因で動作が遅くなる可能性があります。
Last updated