Graebert Japan ヘルプセンター

9/17開催 | 無料オンラインイベント「Graebert neXt Japan 2026」

  1. Home
  2. /
  3. FAQ
  4. /
  5. ARES LISP ガイド
  6. /
  7. 画層、線種などを調べる

画層、線種などを調べる

図形リストで調べるには

画層や線種が存在するかどうか調べるには、tblsearch 関数か tblobjname 関数を使います。

(tblsearch “LAYER” “FLOOR”)

((0 . “LAYER”) (2 . “floor”) (70 . 0) (62 . 3) (6 . “Continuous”))

(tblobjname “LTYPE” “DASHED”)

<EName:  000000356256a3a0>

tblsearch 関数は主要なプロパティを含むリストか、nilを返します。

tblobjname 関数は図形名か、nilを返します。

画層や線種の完全なリストを取得するには、tblobjname 関数と entget 関数を使います。

(setq el (entget (tblobjname “LTYPE” “DASHED”)))

((-1 . <EName:  000000356256a3a0>) (0 . “LTYPE”) (5 . “117”) (330 . <EName:  000000356e703b40>) (100 . “AcDbSymbolTableRecord”) (100 . “AcDbLinetypeTableRecord”) (2 . “DASHED”) (70 . 0) (3 . “Dashed __  __  __  __  __  __  __  __  __  __  “) (72 . 65) (73 . 2) (40 . 19.05) (49 . 12.7) (74 . 0) (49 . -6.35) (74 . 0))

ブロック(BLOCK)、画層(LAYER)、線種(LTYPE)、文字スタイル(STYLE)、寸法スタイル(DIMSTYLE)、UCS、ビュー(VIEW)、タイルビューポート(VPORT)、アプリケーションID(APPID) は tblsearch 関数や tblobjname 関数で同じようにアクセスできます。

オートメーションで調べるには

オートメーションで画層や線種を調べることも可能です。

: (setq lays (vla-get-layers doc))

 #<VLA-OBJECT IAcadLayers 626cf970>

: (setq lay (vla-Item lays “Floor”))

 #<VLA-OBJECT IAcadLayer 6c542b00>

: (vlax-dump-object lay)

ドキュメントオブジェクトに、ブロック、画層、線種、文字スタイル、寸法スタイル、UCS、ビュー、タイルビューポート、アプリケーションID を保持するコレクションを取得するプロパティがあります。画層 (layer) に対して 画層コレクションは layers と複数形になっています。

画層コレクションから画層にアクセスするには、Item メソッドで名前を指定して取得します。オブジェクトが取得できれば、 vla-get-プロパティ名で特定のプロパティにアクセスできます。 vlax-dump-object 関数を使えば、そのオブジェクトのプロパティをまとめて確認することができます。

基本LISP関数ですべての画層名を表示する

tblnext 関数を使うと、ブロック、画層、線種、文字スタイル、寸法スタイル、UCS、ビュー、タイルビューポート、アプリケーションID をすべて確認することができます。

(defun get-records ( kind / f el ret )

(setq f T ret nil)

(while (setq el (tblnext kind f))

  (setq ret (cons (cdr (assoc 2 el)) ret))

  (setq f nil)

)

ret

)

tblnext 関数は2つパラメータが必要で、最初は取得するデータの種類、2番目は T は巻き戻しをします。nil を指定すると次のデータを取得します。戻り値は tblsearch 関数と同じ主要なプロパティを含むリストか nil です。

上の関数は、ローカル変数 ret に図面の画層名や線種名をリストとしてため込んで、最後にその値を返します。

実行すると次のようになります。

(get-records “LAYER”)

(“floor” “PIPE” “0”)

(get-records “LTYPE”)

(“DASHED” “Continuous” “ByLayer” “ByBlock”)

リストの順序を反転するには reverse 関数を使います。

オートメーションですべての画層名を取得する

オートメーションでコレクションの内容をすべて取得するには、vlax-for 関数を使います。

(setq lays (vla-get-layers doc))

(vlax-for lays lay

  (princ (strcat (vla-get-Name lay) “\n”))

)

結果は次のようになります。

0

PIPE

floor


図形を編集するに戻る レイアウトを調べるに進む

短縮URL: https://jp-help.graebert.com/?p=38981

ARES CAD 活用リソース

ARES Commander 2027 リリース

ARES の最新バージョン ARES 2027 がリリースされました。ARES 2027 は、AI・自 動化・BIM・クラウドという、CADの各領域を強化した最新版です。

DWG図面をリンク1つで共有

表示専用リンクを使えば、DWG図面をリンクだけで安全に共有できます。
CADソフトを持っていない相手でもブラウザから閲覧し、コメントやマークアップを追加できます。

DWG図面を無料でオンライン表示

ARES Kudoの無料ビューアーを使えば、DWG図面をブラウザから簡単に表示できます。
インストール不要で図面の確認や計測ができ、コメントやマークアップで共同作業も可能です。