Visual LISP では、VLX アプリケーションの名前空間を定義できます。
この方法で定義される VLX アプリケーションを、独自の名前空間 VLX といいます。独自の名前空間 VLX をロードすると、VLX をロードしたドキュメントの名前空間ではなく、VLX 独自の名前空間で実行されます。VLX 独自の名前空間で VLX アプリケーションを定義するためのオプションは、[アプリケーションを作成]プロセスで指定します。
既にロードされている独自の名前空間 VLX をロードしようとすると、そのことを示すエラー メッセージが表示されます。アプリケーションをロード解除するには、vl-unload-vlx 関数を使用します。この関数の構文は、次のとおりです。
(vl-unload-vlx "appname")
appname には、パスや拡張子 .vlx を含めないで VLX ファイル名を指定します。
VLX アプリケーションの名前空間で定義された変数と関数は、そのアプリケーションでのみ認識され、そのアプリケーションをロードしたときにアクティブだった図面ドキュメントでは認識されません。 これによって、変数が誤ってまたは意図的に他のアプリケーションまたはユーザによって上書きされるのを防ぐことができます。
VLX アプリケーションは、そのドキュメントのコンテキストの中でアプリケーションの関数にアクセスできるように、関数名をドキュメントの名前空間に書き出すことができます。次の図に、この動作を示します。
この図は、2 つの開いている図面ドキュメント、Document1 と Document2を含んだ AutoCAD セッションを示しています。「Hangman」という名前の VLX アプリケーションが Document1 に関連付けられてロードされています(たとえば、ユーザが Document1 を開いてから、AutoCAD コマンド プロンプトから VLX アプリケーションをロードした)。Hangman アプリケーションは、そのアプリケーション独自の名前空間を確立し、その名前空間で bar 関数と変数 dooley を宣言しました。
VLX は、bar 関数を Document1 の名前空間に書き出しました。ユーザが bar を Document1 から 呼び出すと、アプリケーションの名前空間で bar が実行されます。bar 関数は、Document2 では認識されず、どちらのドキュメントも dooley 関数にアクセスできません(なぜなら VLX がこの関数を書き出していなかったからです)。別の hangman VLX のインスタンスを Document2 にロードすることはできますが、このインスタンスはそれ独自の名前空間と、独自の bar と dooley のコピーを持ちます。