概要 - オブジェクトのプロパティとメソッドをリストする(AutoLISP/ActiveX)

Visual LISP の[検査]ツールと vlax-dump-object 関数では、オブジェクトのプロパティを表示することができます。

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

vlax-dump-object 関数は、AutoLISP プログラム、Visual LISP の[コンソール]ウィンドウのプロンプト、または AutoCAD のコマンド プロンプトから呼び出すことができます。vlax-dump-object 関数は、指定されたオブジェクトのプロパティのリストを表示して、T を返します。

たとえば、次のコードは、モデル空間に最後に追加されたオブジェクトを取得してから、vlax-dump-object を呼び出してオブジェクトのプロパティを出力します。

(setq WhatsMyLine (vla-item mSpace (- (vla-get-count mspace) 1)))
#<VLA-OBJECT IAcadLWPolyline 036f1d0c>

(vlax-dump-object WhatsMyLine)
; IAcadLWPolyline: AutoCAD Lightweight Polyline Interface
; Property values:
; Application (RO) = #<VLA-OBJECT IAcadApplication 00a4ae24>
; Area (RO) = 2.46556
; Closed = 0
; Color = 256
; ConstantWidth = 0.0
; Coordinate = ...Indexed contents not shown...
; Coordinates = (8.49917 7.00155 11.2996 3.73137 14.8 5.74379 ... )
; Database (RO) = #<VLA-OBJECT IAcadDatabase 01e3da44>
; Elevation = 0.0
; Handle (RO) = "53"
; HasExtensionDictionary (RO) = 0
; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 01e3d7d4>
; Layer = "0"
; Linetype = "BYLAYER"
; LinetypeGeneration = 0
; LinetypeScale = 1.0
; Lineweight = -1
; Normal = (0.0 0.0 1.0)
; ObjectID (RO) = 28895576
; ObjectName (RO) = "AcDbPolyline"
; PlotStyleName = "ByLayer"
; Thickness = 0.0
; Visible = -1
T

vlax-dump-object 関数には、オブジェクトに適用するメソッドすべてもリストできるように、省略可能な 2 つ目の引数を指定できます。単に、オブジェクト名の後に T を指定します。

(vlax-dump-object WhatsMyLine T)