Vla-getsubentity

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-getsubentity vla-object Object PickedPoint TransMatrix ContextData Prompt )


機能
対話形式でオブジェクトまたはサブ図形を取得する。


引数
  • vla-object … Utility の VLAオブジェクト
  • Object … 選択したオブジェクトまたはサブ図形。図形オブジェクトのいずれかとすることができる。
  • PickedPoint … 選択した点を指定する 3D WCS 座標。
  • TransMatrix … この図形に適用される変換マトリックス。
  • ContextData … 選択したオブジェクトにネストされたオブジェクトすべてのオブジェクト ID の配列。
  • Prompt … ユーザに入力を求めるときに表示される文字列。


戻り値
nil


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

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


サンプル
(vl-load-com)
(defun c:Example_GetSubEntity()
    ;; マウスのクリックで画面上のオブジェクトの選択をユーザーに確認し、
    ;; 選択したオブジェクトに関する情報を返すサンプル。
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;;選択図形の情報を取得
    (vla-GetSubEntity (vla-get-Utility doc) 'Object 'PickedPoint 'TransMatrix 'ContextData "サブエンティティを選択 : ")
    
    ;; 選択したオブジェクトのプロパティを表示します。
    (if (/= ContextData nil)
        (setq HasContextData " あり ")
        (setq HasContextData " なし ")
    )
    
    (alert (strcat "The object you chose was an: " (vla-get-ObjectName Object)
                   "\nあなたがクリックした点は: " (rtos (vlax-safearray-get-element PickedPoint 0) 2) ", "
                                                  (rtos (vlax-safearray-get-element PickedPoint 1) 2) ", "
	                                          (rtos (vlax-safearray-get-element PickedPoint 2) 2)
                   "\nこの図形にはネスト図形が " HasContextData " でした。"))
)

関連事項