GetSubEntity32 メソッド(ActiveX)

64 ビット システムで、対話形式でオブジェクトまたはサブ図形を取得します。(旧式)

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

構文と要素

VBA:

object.GetSubEntity32 Object, PickedPoint, TransMatrix, ContextData [, Prompt]
object

タイプ: Utility

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

object

アクセス: 出力のみ

タイプ: Object

選択したオブジェクトまたはサブ図形。図形オブジェクトのいずれかとすることができます。

PickedPoint

アクセス: 出力のみ

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

選択した点を指定する 3D WCS 座標。

TransMatrix

アクセス: 出力のみ

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

この図形に適用される変換マトリックス。

ContextData

アクセス: 出力のみ

タイプ: バリアント型(長整数型配列)

選択したオブジェクトにネストされたオブジェクトすべてのオブジェクト ID の配列。

Prompt

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

タイプ: バリアント型(文字列)

ユーザに入力を求めるときに表示される文字列。

戻り値(RetVal)

戻り値はありません。

注意

このメソッドは、グラフィックス画面上の点をクリックすることで、AutoCAD ユーザにオブジェクトの選択を要求します。図形またはサブ図形がクリックされた場合、その図形は最初のパラメータに戻され、2 番目のパラメータには WCS 座標内のクリックした点を含んでいます。図形にクリックする点がない場合、メソッドは失敗します。

このメソッドは、たとえ画面が見えない場合やフリーズされている画層の場合でも図形を検索することができます。

VBA:

Sub Example_GetSubEntity()
    ' This example prompts the user to select on object on the screen with a mouse click,
    ' and returns some information about the selected object.
    
    AppActivate ThisDrawing.Application.Caption
    
    Dim Object As Object
    Dim PickedPoint As Variant, TransMatrix As Variant, ContextData As Variant
    Dim HasContextData As String
    
    On Error GoTo NOT_ENTITY
        
TRYAGAIN:
        
    MsgBox "Use the mouse to click on an object in the current drawing after dismissing this dialog box."
        
    ' Get information about selected object
    ThisDrawing.Utility.GetSubEntity Object, PickedPoint, TransMatrix, ContextData
    
    ' Process and display selected object properties
    HasContextData = IIf(VarType(ContextData) = vbEmpty, " does not ", " does ")
    
    MsgBox "The object you chose was an: " & TypeName(Object) & vbCrLf & _
            "Your point of selection was: " & PickedPoint(0) & ", " & _
                                              PickedPoint(1) & ", " & _
                                              PickedPoint(2) & vbCrLf & _
            "This object" & HasContextData & "have nested objects."
    
    Exit Sub
    
NOT_ENTITY:
    ' If you click on empty space or do not select an entity,
    ' this error will be generated
    If MsgBox("You have not selected an object.  Click OK to try again.", _
               vbOKCancel & vbInformation) = vbOK Then
        Resume TRYAGAIN
    End If
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_GetSubEntity()
    ;; This example prompts the user to select on object on the screen with a mouse click,
    ;; and returns some information about the selected object.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; Get information about selected object
    (vla-GetSubEntity (vla-get-Utility doc) 'Object 'PickedPoint 'TransMatrix 'ContextData "Select a subentity: ")
    
    ;; Process and display selected object properties
    (if (/= ContextData nil)
        (setq HasContextData " does ")
        (setq HasContextData " does not ")
    )
    
    (alert (strcat "The object you chose was an: " (vla-get-ObjectName Object)
                   "\nYour point of selection was: " (rtos (vlax-safearray-get-element PickedPoint 0) 2) ", "
		                                                   (rtos (vlax-safearray-get-element PickedPoint 1) 2) ", "
		                                                   (rtos (vlax-safearray-get-element PickedPoint 2) 2)
                   "\nThis object" HasContextData "have nested objects."))
)