概要 - オブジェクト スナップ(AutoLISP)

osnap 関数は、AutoCAD のオブジェクト スナップ モードの 1 つを使用して、点を検出します。

この関数には、3D 点を表す 3 つの要素リストを渡します。2D 点を指定する場合は、Z 軸を値 0 (ゼロ)に設定します。スナップ モードは、文字列値を使用して指定します。カンマ区切り記号を使用して、複数のスナップ モードを指定できます。

次のコード例は、pt1 の近くのオブジェクトの中点を検出します。

(setq pt2 (osnap pt1 "_midp"))

次のコード例は、pt1 に最も近いオブジェクトの中点、端点、または中心点を検出します。

(setq pt2 (osnap pt1 "_midp,_endp,_center"))
注: 各スナップ モードの前に常にアンダースコア(_)を追加することをお勧めします。このようにすると、英語版以外の AutoCAD でプログラム実行したときに、期待通りに動作させる一助となります。

どちらの例でも、osnap の条件に合うものが見つかった場合、pt2 にそのスナップ点が代入されます。複数のスナップ点が条件を満たす場合、点は AutoCAD のシステム変数 SORTENTS の設定に従って選択されます。条件に合う点が見つからなかった場合、pt2nil に設定されます。

注: オブジェクト スナップを使用する場合、AutoCAD のシステム変数 APERTURE によって、指定した点からオブジェクトまでの許容可能な近接範囲が決まります。