概要 - オブジェクトのメソッドを呼び出す(AutoLISP/ActiveX)

オブジェクトのメソッドは、タイプ ライブラリを読み込むことによって作成されたラッパー関数を使用するか、直接 vlax-invoke-method 関数を使用することで呼び出すことができます。

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

vl-load-com で ActiveX サポート関数をロードすると、vla- 関数を使用してオブジェクトのメソッドを呼び出すことができます。

vla-methodname 関数には、次の引数が必要です。

たとえば次の例は、現在の図面のモデル空間に円オブジェクトを追加します。

(setq MSpace (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))))
#<VLA-OBJECT IAcadModelSpace 0000000030434638>

(vla-AddCircle MSpace (vlax-3d-point '(5.0 5.0 0.0)) 3)
#<VLA-OBJECT IAcadCircle 00000000303b2698>

vla- で始まる関数は、AutoCAD タイプ ライブラリ用のラッパー関数ですが、他のタイプ ライブラリのラッパー関数の名前は使用している接頭語によって変わります。タイプ ライブラリを読み込むと、[該当]ウィンドウを使用して使用可能な関数を確認することができるので理想的です。ただし、読み込まれたタイプ ライブラリの一部のプロパティ、メソッド、定数はラップされません。

vlax-invoke-method 関数は、オブジェクトのメソッドを実行します。この関数には、次の引数を指定する必要があります。

タスクに対してラッパー関数を使用できる場合でも、vlax-invoke-method を使用することができます。

たとえば次の例は、現在の図面のモデル空間に円オブジェクトを追加します。

(setq MSpace (vlax-get-property (vlax-get-property (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace))
#<VLA-OBJECT IAcadModelSpace 0000000030434638>

(vlax-invoke-method MSpace 'AddCircle (vlax-3d-point '(5.0 5.0 0.0)) 3)
#<VLA-OBJECT IAcadCircle 00000000303b2698>