Vla-selectatpoint

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年10月17日 (土) 21:00時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-select ''vla-object'' ''Point'' [ ''FilterType'' ''FilterData'' ]) ; 機能 : 指定された点を通る 1 つのオブジェクトを選...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-select vla-object Point [ FilterType FilterData ])


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


引数
選択セットの場合
  • vla-object … SelectionSet の VLA オブジェクト
  • Point … 選択に使用される点を指定する 3D UCS 座標。
  • FilterType … 使用するフィルタのタイプを指定する DXF グループ コード。
  • FilterData … フィルタをオンにする値。


戻り値
なし


  • 注意 : このメソッドは、フィルタ機能をサポートしている。CAD の既定のオブジェクト選択用プロンプト文字列が、自動的に使用される。

選択モードのオプションについての詳細は、vla-selectvla-selectbypolygon、および vla-selectatpoint メソッドを参照。

  • Windows 以外の環境とか、VL関数使えない互換CAD では、ssgetentsel とか VLA 関数ではない図形選択関数を使用する。


サンプル
(vl-load-com)
(defun c:Example_SelectAtPoint()
    ;; 点で最初に見つかった図形を表示するサンプル
    ;; 次に円だけ選択するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; 選択セットを作成
    (setq ssetObj (vla-Add (vla-get-SelectionSets doc) "TEST_SSET1"))
   
    ;; (6.8,9.4,0)の点で選択
    (setq point (vlax-3d-point 6.8 9.4 0))
    (vla-SelectAtPoint ssetObj point)
  
    (alert (strcat "選択図形 : " (itoa (vla-get-Count ssetObj))))
    (vla-Clear ssetObj)
    
    ;; 円を作成して (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 "選択図形 : " (itoa (vla-get-Count ssetObj))))

    (vla-Delete ssetObj)
)

関連事項