概要 - ObjectARX アプリケーションをロードする

ObjectARX アプリケーションの定義済みコマンドや関数を使用するためには、まずこのアプリケーションをロードする必要があります。

ObjectARX アプリケーションは、次のいずれかの方法でロードすることができます。

注: AutoCAD 2014 ベースの製品から、システム変数 SECURELOAD を 1 または 2 に設定している場合は、カスタム アプリケーションはセキュア モードでのみ機能することになりました。セキュア モードで動作している場合、プログラムはコードを含むファイルを信頼する場所からロードおよび実行するように制限されます。信頼する場所は、システム変数 TRUSTEDPATHS で指定します。

ObjectARX アプリケーションを自動ロードする

注: ObjectARX アプリケーションの中には、システム メモリを非常に多く使用するものがあります。使用し終えたアプリケーションをメモリからロード解除するには、ARX コマンドの[ロード解除(U)]オプションまたは APPLOAD コマンドを使用します。

ObjectARX の一部のサンプルには、AutoCAD ベースの製品を起動すると自動的にロードされる ObjectARX アプリケーション ファイルがリストされた acad.rx ファイルが含まれています。

このファイルは、ASCII テキスト ファイルを作成できるテキスト エディタやワード プロセッサを使用して作成、編集できます。必要に応じてこのファイルの内容を追加したり削除することで、用途に応じて適切な ObjectARX アプリケーションが使用できるようになります。別の方法として、APPLOAD[アプリケーション ロード]コマンドの[スタートアップ登録]オプションを使用して、指定したアプリケーションを自動的にロードすることができます。この方法を使用すると、ファイルを編集する必要はありません。

AutoCAD ベースの製品は、ライブラリ パスで指定されている順序で acad.rx ファイルを検索します。したがって、図面フォルダごとに別々の acad.rx ファイルを使用できます。このため、図面の特定の種類に応じた特定の ObjectARX アプリケーションを使用できます。たとえば、AcadJobs¥3d_dwgs というフォルダに、3D 図面を保存するとします。そのフォルダが現在のフォルダに設定されている場合、acad.rx ファイルをこのフォルダにコピーして、次のように修正します。

myapp1
otherapp

この新しい acad.rx ファイルを AcadJobs¥3d_dwgs フォルダに保存し、このフォルダを現在のフォルダにしてプログラムを起動します。これによって、この新しい ObjectARX アプリケーションがロードされ、コマンド プロンプトから使用できるようになります。元の acad.rx ファイルは AutoCAD ベースのプログラム ファイルが格納されているフォルダに残っているので、acad.rx ファイルのない別のフォルダからプログラムを起動すると、既定の acad.rx ファイルがロードされます。

arxload 関数を使用して、MNL ファイルから ObjectARX アプリケーションをロードできます。これにより、メニュー ファイルのロード時に、メニューの適切な操作に必要な ObjectARX アプリケーションが確実にロードできます。

AutoLISP を使用して ObjectARX アプリケーションをロードする

arxload 関数の構文は、AutoLISP ファイルで使用する load 関数の構文とほとんど同じです。arxload 関数が ObjectARX アプリケーションのロードに成功すると、そのプログラム名が返されます。arxload 関数の構文は、次のとおりです。

(arxload filename [onfailure])

arxload 関数に対する 2 つの引数は、filenameonfailure です。load 関数の場合と同様に、filename 引数は必須で、ロードする ObjectARX アプリケーション ファイルの完全なパス名を指定します。onfailure 引数は省略可能で、コマンド プロンプトから ObjectARX アプリケーションをロードする場合は、通常指定しません。次の例は、ObjectARX アプリケーション myapp.arx をロードします。

(arxload "myapp")

AutoLISP ファイルの場合と同様に、プログラムはライブラリ パスで指定されたファイルを検索します。ライブラリ パスにないファイルをロードする必要がある場合は、ファイルの絶対パス名を記述する必要があります。

注: フォルダ パスを指定する場合は、スラッシュ(/)または 2 つの円記号(¥¥)を区切り記号として使用する必要があります。これは、AutoLISP では、単一の円記号(¥)には特別な意味があるためです。

既にロードされているアプリケーションをロードしようとすると、エラーになります。arxload 関数を使用する前に、arx 関数を使用して、現在ロードされているアプリケーションを調べてください。

AutoLISP を使用してアプリケーションをロード解除するには、arxunload 関数を使用します。次の例では、myapp アプリケーションをロード解除しています。

(arxunload "myapp")

arxunload 関数を使用すると、メモリから ObjectARX アプリケーションがロード解除されるだけでなく、そのアプリケーションで定義されているコマンドも除去されます。