Object と言えば、AutoCADの図形のことを思い浮かべる人が多いと思います。
ここでは、AcadObject=AutoCADソフト ActiveDocument=今開いている図面ファイルのことです。
VLISP関数 vlax-get-acad-object
vlax-get-acad-objectは、使用しているAutoCAD情報を得る関数です。
Visual LISPの関数は長い分、わかりやすいですね。
(vlax-get-Acad-Object)
とコマンドラインに入力してみて下さい。
#<VLA-OBJECT IAcadApplication 00007ff79fac51a8>
この戻り値がAutoCADのVLAオブジェクト情報です。
VLISP関数 vlax-dump-object
vlax-dump-objectは、VLAオブジェクト情報のプロパティを一覧にする関数です。
先ほどのAutoCADのVLAオブジェクト情報。
#<VLA-OBJECT IAcadApplication 00007ff79fac51a8>
数記号で出てくるので何のことだかさっぱりですね。
この中に含まれている情報を知りたい時、この関数vlax-dump-objectを使うと、この情報の中身を一覧にしてコマンドラインに表示してくれます。
(vlax-dump-object (vlax-get-Acad-Object))
とコマンドラインに入力してみましょう。
vlax-get-Acad-Objectで得たAutoCAD情報のプロパティ一覧になって出てきます。
vla-get-にこの一覧に出てくるプロパティ名をつなげると、さらにその詳細情報を得ることができます。
例として、現在開いている図面ファイルの情報を得ます。↓
VLISP関数 vla-get-ActiveDocument
vlax-get-Acad-Objectで得たAutoCAD情報のプロパティ一覧の一番上に、はActiveDocumentがあると思います。
; ActiveDocument = #<VLA-OBJECT IAcadDocument 0000029ba8943f18>
この、ActiveDocumentは、現在開いている図面ファイルのことです。
vla-get-プロパティ名で、そのプロパティ情報を得ることができるので、ActiveDocumentをくっつけてた vla-get-ActiveDocument が図面ファイル全体の情報を得る関数です。
ですので、現在の図面ファイルのVLAオブジェクト名を得るにはこのようになります。
(vla-get-ActiveDocument (vlax-get-Acad-Object))
この現在の図面ファイルの情報、図面全体の中から何か情報を得るのに使えます。
ここからこの図面にある画層や寸法などを得ることができます。
まとめ
- vlax-get-acad-object はAutoCAD情報を得る関数。
- vlax-dump-object は、VLXオブジェクトのプロパティを一覧にする関数。
- vla-get-ActiveDocumentは、現在開いている図面ファイルの情報を得る関数。
関連記事
ここで得た図面の情報から画層情報を取得します。
Comments