Acet-gc-match

提供:GizmoLabs - だいたい CAD LISP なサイト
2025年8月3日 (日) 22:47時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (acet-gc-match ''dxf-code'' ''value'' ''elist'' ) ; 機能 : 単一のDXFグループコードと値のペアが、エンティティリスト内に存在するかをテストするっぽい。 : (acet-and-match elist (list (cons dxf-code value))) と等価。 ; 引数 :* dxf-code : 整数で表されるDXFグループコード。 :* value : dxf-code に対応する値。 :* elist : テスト対象のエンティティデータリス…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(acet-gc-match dxf-code value elist )


機能
単一のDXFグループコードと値のペアが、エンティティリスト内に存在するかをテストするっぽい。
(acet-and-match elist (list (cons dxf-code value))) と等価。


引数
  • dxf-code : 整数で表されるDXFグループコード。
  • value : dxf-code に対応する値。
  • elist : テスト対象のエンティティデータリスト。


戻り値
一致するペアが見つかったら T, 見つからなかったら nil


サンプル
; 全てのブロック参照("INSERT")の中から、ブロック名が "MyBlock" のものを選択する。
(defun c:SelectMyBlocks ()
  (setq ss (ssget "X" '((0 . "INSERT")))) ; まず全てのブロック参照を選択
  (setq i 0 result-ss (ssadd))
  (repeat (sslength ss)
    (setq ename (ssname ss i))
    (setq elist (entget ename))
    ; ブロック名(グループコード 2)が "MyBlock" かチェック
    (if (acet-gc-match 2 "MyBlock" elist)
        (ssadd ename result-ss)
    )
    (setq i (1+ i))
  )
  (if (> (sslength result-ss) 0)
      (sssetfirst nil result-ss)
  )
  (princ)
)

関連事項