Acet-list-remove-duplicates

提供:GizmoLabs - だいたい CAD LISP なサイト
2025年8月10日 (日) 05:06時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (acet-list-remove-duplicates ''datalist'' ''fuz'' ) ; 機能 : datalist から許容差 fuz を考慮した同じ値を取り除いたリストを返す。 ; 引数 :* datalist … エンティティ名のリスト :* fuz … 許容誤差 ; 戻り値 : 重複が取り除かれた datalist のリスト。lst が NIL の場合は NIL を返す。 ===MEMO=== * 除去はリスト値の最初から処理されるのでリスト値の順…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(acet-list-remove-duplicates datalist fuz )


機能
datalist から許容差 fuz を考慮した同じ値を取り除いたリストを返す。


引数
  • datalist … エンティティ名のリスト
  • fuz … 許容誤差


戻り値
重複が取り除かれた datalist のリスト。lst が NIL の場合は NIL を返す。


MEMO

  • 除去はリスト値の最初から処理されるのでリスト値の順番により異なる結果になりえる。


サンプル
(acet-list-remove-duplicates  '(1 2 3 4 3 2 4 5) 0)
(1 2 3 4 5) ; リスト内の重複値が除去される(後ろが削られる)

(acet-list-remove-duplicates  '(1.1 1.2 1.3 1.4 1.31 2.0 4.0 5.5) 0)
(1.1 1.2 1.3 1.4 1.31 2.0 4.0 5.5)

(gz:deduplicate  '(1 2 3 3 4 3 2 4 5))
(1.1 1.2 1.3 1.4 1.31 2.0 4.0 5.5) ; fuz は無いので完全に同じもの以外は残る acet-list-remove-duplicatesの Fuz=0 と同じ


; fuz 指定でリストの順番により消える値が異なる例
(acet-list-remove-duplicates  '(1.1 1.2 1.3 1.4 1.31 2.0 4.0 5.5) 0.1)
(1.1 1.3 2.0 4.0 5.5)
; 1.2 1.4 1.31 が除去される 1.3 は 1.2 が除去された後なので除去されない

(acet-list-remove-duplicates  '(1.3 1.2 1.1 1.4 1.31 2.0 4.0 5.5) 0.1)
(1.3 1.2 2.0 4.0 5.5) 
; 1.1 1.4 1.31 が除去される 1.3 は 1.2 が除去されていないので残り 1.1 が消える


関連事項