Ai table

提供:GizmoLabs - だいたい CAD LISP なサイト
2021年1月28日 (木) 09:36時点におけるGizmon (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(ai_table table_name bit)


機能
指定されたテーブル内の項目のリストを返す。


引数
  • table_name … テーブル名
  • bit … 取得する情報のビット値
ビット値の意味は以下のとおり。
  • 0 - 指定されたテーブル内のすべての項目を一覧表示。
  • 1 - レイヤ0 と 線種 CONTINUOUS を取得しない。
  • 2 - 無名ブロックまたは匿名のグループを表示しない。
次のビットのための70のフラグに対するチェック: 1 - 無名ブロック/グループ
  • 4 - 外部依存アイテムの一覧を表示しない。
70 フラグに対するチェックは 48 まで追加次のビットのいずれかのために作られる:
16 - 依存外部
32 - 外部または依存の解消
  • 8は - 外部参照を一覧表示しない。
次のビットのための70のフラグに対するチェック:
4 - 外部リファレンス
  • 16 - BYBLOCK と BYLAYER アイテムをリストに追加。


戻り値
取得された項目のリスト


  • MEMO :


サンプル
(ai_table "layer" 0)
("画層7" "画層6" "画層5" "画層4" "画層3" "画層2" "画層1" "0")

(ai_table "layer" 1)
("画層7" "画層6" "画層5" "画層4" "画層3" "画層2" "画層1")

(ai_table "block" 1)
("画層7" "画層6" "画層5" "画層4" "画層3" "画層2" "画層1")


(ai_table "block" 0)
("*D3" "aaa" "bbb")

(ai_table "block" 2)
("aaa" "bbb")


; 関数の定義は以下のとおり
(defun ai_table (table_name bit / tbldata table_list just_name)
  (setq tbldata nil)
  (setq table_list '())
  (setq table_name (xstrcase table_name))
  (while (setq tbldata (tblnext table_name (not tbldata)))
    (setq just_name (cdr (assoc 2 tbldata)))
    (cond 
      ((= "" just_name))               ; Never return null Shape names.
      ((and (= 1 (logand bit 1))
            (or (and (= table_name "LAYER") (= just_name "0"))
                (and (= table_name "LTYPE")
                     (= just_name "CONTINUOUS")
                )
            )
      ))
      ((and (= 2 (logand bit 2))
            (= table_name "BLOCK")
            (= 1 (logand 1 (cdr (assoc 70 tbldata))))
      )) 
      ((and (= 4 (logand bit 4))
            ;; Check for Xref dependents only. 
            (zerop (logand 4 (cdr (assoc 70 tbldata)))) 
            (not (zerop (logand 48 (cdr (assoc 70 tbldata)))))
            
      ))
      ((and (= 8 (logand bit 8))
            (not (zerop (logand 4 (cdr (assoc 70 tbldata)))))
      ))
      ;; Vports tables can have similar names, only display one.
      ((member just_name table_list)
      )
      (T (setq table_list (cons just_name table_list)))
    )
  )
  (cond
    ((and (= 16 (logand bit 16))
          (= table_name "LTYPE") ) (setq table_list (cons "BYBLOCK" 
     (cons "BYLAYER" table_list))) ) 
    (t) 
  ) 
  (ai_return table_list) 
)



関連事項

  • [[]]
  • [[]]