Sponsored links

【AutoLISP DXF情報】画層情報を得る 関数 tblsearch

Sponsored links
基礎編
Sponsored links

entgetでは、図形が持つDXF情報を得ることができました。

tblsearch では、文字、寸法、線種、画層などのDXF情報を得ることができます。

今回はtblsearch で得た画層情報についてです。

Sponsored links

関数 tblsearch

関数 tblsearchは、文字、寸法、線種、画層などのDXF情報を得る機能がある関数です。

現在の各種スタイルや画層などの設定を知ることができます。

例えば、もし、この名前の寸法スタイルが無ければ作成する。とか、画層の情報を得て、もしこの名前の画層が非表示になっているなら表示、表示なら非表示など、一つのコマンドで表示/非表示切り替えしたり。などに使えます。

tblsearchでDXF画層情報を見る

では、実際にtblsearchからどのような情報を得られるのか見ていきましょう。

  • 画層名: “0”
  • フリーズ:してない
  • ロック:してない
  • 新しいVPでフリーズ しない
  • 表示 する
  • 色 白(7)
  • 線種 “Continuous” 

この画層の情報を得ます。

tblsearchの引数は、テーブル名シンボルです。
画層の情報を得る時は、“layer”がテーブル名。画層名がシンボルです。
画層名”0″の情報を得るコードは

(tblsearch "layer" "0")

です。そして、以下のようにDXF情報が出てきます。

((0 . "LAYER") (2 . "0") (70 . 0) (62 . 7) (6 . "Continuous"))

(0 . “LAYER”) これは、ドットペアと呼ばれ、番号と情報がセットになっているリストと呼ばれる形の一つです。
そして、さらにドットペアが( )の中に並んでリストになっています。

リストやドットペアが何かは置いておいて、ここでは、関数 tblsearch
グループコードと情報がペアになって並んでいる情報
を得られるとだけ理解しておいてください。

各番号と情報

(0 . “LAYER”)

グループコード 0 は、テーブル名です。tblsearchで使ったテーブル名が入ります。
画層(LAYER)で検索したので、“LAYER”の情報です。

(2 . “0”)

グループコード 2 は、画層名です。画層名”0”を検索しました。

(70 . 0)

グループコード 70は、ビットコードと呼ばれる値で、いろんな情報の足し算の値になります。

  • 1 フリーズオン
  • 2 新しい VP でフリーズがオン
  • 4 ロック
  • 16 外部参照の画層
  • 32 問題なく外部参照されている画層(16とセット)

これらの値が合算されたものがここに現れます。
情報を得た時の画層”0”は、フリーズもロックもされていないので、0 です。

例えば、
フリーズしたら、1
ロックしたら、4
ロックもフリーズもしたら、それぞれのコードを足して5

と値が変更します。

(62 . 7)

グループコード 70は、画層の色と画層表示です。
数字は画層の色番号、表示がオフになるとマイナスが付いて-7になります。

(6 . “Continuous”)

グループコード 70は、線種の名前です。

まとめ

  • 関数tblsearchは、寸法、文字などのスタイルや画層などのDXF情報を得る機能がある。
  • 引数はテーブル名と欲しい情報のスタイル/画層名。
  • 画層のテーブル名は”layer”。
  • グループコードと情報がセットになったDXF情報が戻り値。
  • 画層の場合、((0 . “LAYER”) (2 . “画層名”) (70 . フリーズ/ロック) (62 . 色と表示) (6 . “線種”))の情報を得ることができる。

関連記事

ドットペアから欲しい情報を取得。

リストやドットペアについてもっと知りたい方はこちら。

Comments