Sponsored links

【AutoLISP VLISP】画層情報を得る

Sponsored links
Visual Lisp
Sponsored links
Jagaimo
Jagaimo

画層名から画層情報を得る方法です。

AutoLISP tblserch “Layer” の Visual LISP バージョン。

Sponsored links

事前知識

VLISPでは、ActiveDocument (現在の図面ファイル)情報を取得して、そこから画層情報を得ます。
ActiveDocumentを得る関数はコチラを参照にしてください。

図面全体の情報

まず、変数ActiveDoc に現在の図面ファイルの情報を入れます。

(setq ActiveDoc (vla-get-activedocument 
                    (vlax-get-Acad-Object)
                  )
  )

画層情報を取り出す

図面ファイル情報の中の画層情報は、”Layers” です。
VLISP関数 vla-get-layers で、画層全体の情報得ることができます。

そして、その中から要素を得る関数が、vla-item です。
引数にvla-get-layers で取得したオブジェクト情報と、画層名を渡します。

では、変数 LyInfoに、画層 0 の情報を入れてみましょう。

(setq LyInfo 
             (vla-item 
               (vla-get-layers ActiveDoc)
               "0"
             )
      )

vla-item を使って得た特定の画層の情報からは、vla-get-プロパティ名で、各種情報を得ることができます。
以下は、色、線種、オン/オフ、フリーズ、印刷、ロックの情報を得るコードです。

(setq Col (vla-get-color LyInfo))
(setq LineType (vla-get-linetype LyInfo))
(setq OnOff (vla-get-layeron LyInfo))
(setq Freeze (vla-get-freeze LyInfo))
(setq Plottable (vla-get-plottable LyInfo))
(setq Lock (vla-get-lock LyInfo))

まとめ

  • vla-get-layersは全体の画層情報を得る関数。
  • vla-itemは全体の情報から1つの要素の情報を得る関数。
  • vla-get-プロパティ名 で、各プロパティの情報を得る関数になる。

関連記事

AutoLISP関数 tblserach を利用して同じように画層情報を得る方法です。

練習問題

Comments