Sponsored links

【AutoLISP VLISP】Acad Object と ActiveDocument

Sponsored links
Visual Lisp
Sponsored links
Jagaimo
Jagaimo

Object と言えば、AutoCADの図形のことを思い浮かべる人が多いと思います。

ここでは、AcadObject=AutoCADソフト ActiveDocument=今開いている図面ファイルのことです。

Sponsored links

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