Tblnext

提供:GizmoLabs - だいたい CAD LISP なサイト
2009年11月16日 (月) 13:51時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成: ; 構文 : (tblnext'' table-name'' [''rewind'']) ; 機能 : シンボル テーブル内の次の項目を取得する。 : tblnext 関数は、繰り返し使用されるた…)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(tblnext table-name [rewind])
機能
シンボル テーブル内の次の項目を取得する。
tblnext 関数は、繰り返し使用されるたびに、指定したテーブル内の次の項目を返す。 次に取得する項目は、tblsearch 関数を使用して設定することができる。rewind 引数が指定され、その値が nil 以外の場合は、シンボル テーブルの最初に戻り、シンボル テーブルの最初の項目が取得される。
引数
  • table-name : シンボル テーブルを示す文字列。有効な table-name 引数の値には、"LAYER", "LTYPE", "VIEW", "STYLE", "BLOCK", "UCS", "APPID", "DIMSTYLE", "VPORT" があります。 引数は、大文字と小文字は区別されない。
  • rewind : この引数が指定され、その値が nil でない場合、シンボル テーブルの最初に戻り、そのシンボルテーブルの最初の項目が取得される。
戻り値
シンボル テーブル項目が見つかると、その項目が、DXF 形式のコードと値のドット ペアのリストとして返される。 テーブル内にそれ以上項目がない場合は、nil が返される。 削除されたテーブル項目は返される。


サンプル
シンボル テーブル内の最初の画層を取得する。
(tblnext "layer" T)
((0 . "LAYER") (2 ."0") (70 . 0) (62 . 7) (6 . "CONTINUOUS"))
戻り値の意味は、次のとおり。
(0 . "LAYER")      シンボル タイプ
(2 . "0")          シンボル名
(70 . 0)           フラグ
(62 . 7)           色番号、非表示の場合は負数
(6 . "CONTINUOUS") 線種名
グループ -1 が存在しないことに注意。 各テーブルから最後に返した項目を保存して、tblnext 関数が呼び出されるたびに次の項目を返す。テーブルの走査を開始するときは、テーブルの先頭に戻って 1 番目の項目が返されるように、必ず 2 番目の引数に nil 以外の値を指定すること。
-----
ブロック テーブルから取り出した項目には、グループ -2 がブロック定義の 1 番目の図形の図形名とともに含まれる。 たとえば、次のコマンドでは、BOX という名前のブロックに関する情報を取得している。
(tblnext "block")
((0 . "BLOCK") (2 ."BOX") (70 .0) (10 9.0 2.0 0.0) (-2 . <Entity name: 1dca370>))
戻り値の意味は、次のとおり。
(0 . "BLOCK")                   シンボル タイプ
(2 . "BOX")                     シンボル名
(70 . 0)                        フラグ
(10 9.0 2.0 0.0)                原点 X,Y,Z
(-2 . <Entity name: 1dca370>)   最初の図形
グループ -2 の図形名は、entget 関数と entnext 関数では受け入れられますが、他の図形アクセス関数では受け入れられない。 たとえば、ssadd 関数を使用して選択セットに含めることはできない。グループ -2 の図形名を entnext 関数に与えると、ブロック定義を構成する図形を走査することができ、entnext 関数はブロック定義の最後の項目の後で nil を返す。
ブロックに図形が含まれない場合、tblnext 関数が返すグループ -2 はその ENDBLK 図形の図形名。
注:vports 関数は現在の VPORT テーブル情報を返すので、この情報を取得するには tblnext 関数よりも vports 関数を使用したほうが簡単。