「Acet-gc-match」の版間の差分
(ページの作成:「{{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 : テスト対象のエンティティデータリス…」) |
(相違点なし)
|
2025年8月3日 (日) 22:47時点における最新版
- 構文
- (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)
)
関連事項