Jagaimo
画層名から画層情報を得る方法です。
AutoLISP tblserch “Layer” の Visual LISP バージョン。
事前知識
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