SelectAtPoint メソッド(ActiveX)

指定された点を通る 1 つのオブジェクトを選択し、それを選択セットに配置します。

サポートされているプラットフォーム: Windows のみ

構文と要素

VBA:

object.SelectAtPoint Point, FilterType, FilterData
object

タイプ: SelectionSet

このメソッドが適用されるオブジェクト。

Point

アクセス: 入力のみ

タイプ: バリアント型(3 要素の倍精度浮動小数点数型配列)

選択に使用される点を指定する 3D UCS 座標。

FilterType

アクセス: 入力のみ; オプション

タイプ: バリアント型

使用するフィルタのタイプを指定する DXF グループ コード。

FilterData

アクセス: 入力のみ; オプション

タイプ: バリアント型

フィルタをオンにする値。

戻り値(RetVal)

戻り値はありません。

注意

このメソッドは、フィルタ機能をサポートしています。

システム変数 PICKBOX は、オブジェクト選択に影響します。

選択モードのオプションについての詳細は、SelectSelectByPolygon、および SelectOnScreen メソッドを参照してください。

VBA:

Sub Example_SelectAtPoint()
    ' This example adds objects to a selection set by identifying a point.
    ' At first all objects at the point are added to the selection set. Then
    ' only circle objects at the point are added to the selection set.
    
    ' Create the selection set
    Dim ssetObj As AcadSelectionSet
    Set ssetObj = ThisDrawing.SelectionSets.Add("TEST_SSET1")
   
    ' Add to the selection set all the objects that lie at point(6.8,9.4,0) 
    Dim point(0 To 2) As Double
    point(0) = 6.8: point(1) = 9.4: point(2) = 0
    ssetObj.SelectAtPoint point
    
    ' Add to the selection set all the Circles that lie at point (6.8,9.4,0) 
    Dim gpCode(0) As Integer
    Dim dataValue(0) As Variant
    gpCode(0) = 0
    dataValue(0) = "Circle"
    
    Dim groupCode As Variant, dataCode As Variant
    groupCode = gpCode
    dataCode = dataValue
    
    ssetObj.SelectAtPoint point, groupCode, dataCode
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_SelectAtPoint()
    ;; This example adds objects to a selection set by identifying a point.
    ;; At first all objects at the point are added to the selection set. Then
    ;; only circle objects at the point are added to the selection set.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; Create the selection set
    (setq ssetObj (vla-Add (vla-get-SelectionSets doc) "TEST_SSET1"))
   
    ;; Add to the selection set all the objects that lie at point(6.8,9.4,0)
    (setq point (vlax-3d-point 6.8 9.4 0))
    (vla-SelectAtPoint ssetObj point)
  
    (alert (strcat "Objects selected: " (itoa (vla-get-Count ssetObj))))
    (vla-Clear ssetObj)
    
    ;; Add to the selection set all the Circles that lie at point (6.8,9.4,0)
    (setq gpCode (vlax-make-safearray vlax-vbInteger '(0 . 0)))
    (vlax-safearray-put-element gpCode 0 0)
    (setq dataValue (vlax-make-safearray vlax-vbVariant '(0 . 0)))
    (vlax-safearray-put-element dataValue 0 "Circle")
    
    (vla-SelectAtPoint ssetObj point gpCode dataValue)
    (alert (strcat "Objects selected: " (itoa (vla-get-Count ssetObj))))

    (vla-Delete ssetObj)
)