概要 - 独自の名前空間でアプリケーションを実行する(Visual LISP IDE)

Visual LISP では、VLX アプリケーションの名前空間を定義できます。

注: Visual LISP IDE は Windows でのみ使用可能です。

この方法で定義される VLX アプリケーションを、独自の名前空間 VLX といいます。独自の名前空間 VLX をロードすると、VLX をロードしたドキュメントの名前空間ではなく、VLX 独自の名前空間で実行されます。VLX 独自の名前空間で VLX アプリケーションを定義するためのオプションは、[アプリケーションを作成]プロセスで指定します。

既にロードされている独自の名前空間 VLX をロードしようとすると、そのことを示すエラー メッセージが表示されます。アプリケーションをロード解除するには、vl-unload-vlx 関数を使用します。この関数の構文は、次のとおりです。

(vl-unload-vlx "appname")

appname には、パスや拡張子 .vlx を含めないで VLX ファイル名を指定します。

VLX アプリケーションの名前空間で定義された変数と関数は、そのアプリケーションでのみ認識され、そのアプリケーションをロードしたときにアクティブだった図面ドキュメントでは認識されません。 これによって、変数が誤ってまたは意図的に他のアプリケーションまたはユーザによって上書きされるのを防ぐことができます。

VLX アプリケーションは、そのドキュメントのコンテキストの中でアプリケーションの関数にアクセスできるように、関数名をドキュメントの名前空間に書き出すことができます。次の図に、この動作を示します。

この図は、2 つの開いている図面ドキュメント、Document1Document2を含んだ AutoCAD セッションを示しています。「Hangman」という名前の VLX アプリケーションが Document1 に関連付けられてロードされています(たとえば、ユーザが Document1 を開いてから、AutoCAD コマンド プロンプトから VLX アプリケーションをロードした)。Hangman アプリケーションは、そのアプリケーション独自の名前空間を確立し、その名前空間で bar 関数と変数 dooley を宣言しました。

VLX は、bar 関数を Document1 の名前空間に書き出しました。ユーザが barDocument1 から 呼び出すと、アプリケーションの名前空間で bar が実行されます。bar 関数は、Document2 では認識されず、どちらのドキュメントも dooley 関数にアクセスできません(なぜなら VLX がこの関数を書き出していなかったからです)。別の hangman VLX のインスタンスを Document2 にロードすることはできますが、このインスタンスはそれ独自の名前空間と、独自の bardooley のコピーを持ちます。

注: 独自の名前空間を持つように定義されていない VLX ファイルをロードすると、その環境はロードされたファイルの環境と同様になります。VLX アプリケーションで定義されているすべての関数と変数は、ドキュメントの名前空間にロードされます。