概要 - オブジェクトを解放してメモリを空ける(AutoLISP/ActiveX)

オブジェクトの使用を終了したら、そのオブジェクトを解放し、そのオブジェクトが使用していたメモリを解放しなければなりません。

注: AutoLISP での ActiveX のサポートは Windows のみに制限されています。

VLA オブジェクトが図面オブジェクトを参照している間は、AutoCAD はオブジェクトに必要なすべてのメモリを保持します。メモリ内で異なる変数が同じ AutoCAD 図形を参照するようにすることができ、同じ図面オブジェクトを参照する複数の VLA オブジェクトを持つことができます。equal 関数を使用すると 2 つの VLA オブジェクトを比較でき、2 つのオブジェクトが両方とも同じ図面オブジェクトを参照する場合は T を返します。

オブジェクトを参照する必要がなくなったら、vlax‑release‑object 関数を使用します。

(vlax-release-object object)

オブジェクトを解放すると、VLA オブジェクトのポインタを使用してアクセスすることはできなくなります。これは、ファイルを閉じることに似ています。vlax‑release‑object を呼び出しても、必ずしもメモリが解放されるとは限りません。しかし、オブジェクトに対するすべての参照を解放すると、必要に応じて AutoCAD はメモリを解放できます。

オブジェクトが解放されているかどうかを調べるには、vlax‑object‑released‑p 関数を使用します。

(vlax-object-released-p object)

この関数は、オブジェクトが解放されている場合は T を、解放されていない場合は nil を返します。