Vla-erase

提供:GizmoLabs - だいたい CAD LISP なサイト
2024年5月3日 (金) 15:50時点におけるGizmon (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-erase vla-object)


機能
選択セット内のすべてのオブジェクトを削除する。


引数
  • vla-object … 選択セットのVLAオブジェクト


戻り値
nil


サンプル
(vl-load-com)
(defun c:Example_Erase()
    ;; この例では、選択セットといくつかのオブジェクトを作成する。
    ;; 選択セットにオブジェクトを追加し、選択セットからオブジェクトを消去する。
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; 新規選択セットの作成
    (setq ssetObj (vla-Add (vla-get-SelectionSets doc) "TEST_SELECTIONSET"))
    
    ;; 放射線 オブジェクトをモデル空間に作成
    (setq basePoint (vlax-3d-point 3 3 0)
          secondPoint (vlax-3d-point 1 3 0))

    (setq modelSpace (vla-get-ModelSpace doc))
    (setq rayObj (vla-AddRay modelSpace basePoint SecondPoint))
    
    ;; ポリライン オブジェクトをモデル空間に作成
    (setq points (vlax-make-safearray vlax-vbDouble '(0 . 5)))
    (vlax-safearray-fill points '(3 7
                                  9 2
                                  3 5))

    (setq plineObj (vla-AddLightWeightPolyline modelSpace points))
    (vla-put-Closed plineObj :vlax-true)

    ;; 線分オブジェクトをモデル空間に作成
    (setq startPoint (vlax-3d-point 0 0 0)
          endPoint (vlax-3d-point 2 2 0))
    (setq lineObj (vla-AddLine modelSpace startPoint endPoint))
    
    ;; 円 オブジェクトをモデル空間に作成
    (setq centerPt (vlax-3d-point 20 30 0)  
          radius 3)
    (setq circObj (vla-AddCircle modelSpace centerPt radius))

    ;; 楕円オブジェクトをモデル空間に作成
    (setq majAxis (vlax-3d-point 5 5 0)
          center (vlax-3d-point 10 20 0)
          radRatio 0.3)
    (setq ellObj (vla-AddEllipse modelSpace center majAxis radRatio))

    (vla-ZoomAll acadObj)
    
    ;; モデル領域のコレクションを反復処理。
    ;; 選択セットに追加するオブジェクトの配列に見つかったオブジェクトを収集。
    (setq ssobjs (vlax-make-safearray vlax-vbObject (cons 0 (- (vla-get-Count modelSpace) 1))))
    (setq I 0)
    (while (>= (- (vla-get-Count modelSpace) 1) I)
        (vlax-safearray-put-element ssobjs I (vla-Item modelSpace I))
        (setq I (1+ I))
    )
    
    ;; 選択セットにオブジェクトの配列を追加。
    (vla-AddItems ssetObj ssobjs)
    
    ;; 選択セット内のすべてのオブジェクトを一覧表示する。
    (if (= (vla-get-Count ssetObj) 0)
        (alert "選択セットは空です")
        (progn
           (setq I 0)
           (while (>= (- (vla-get-Count ssetObj) 1) I)
                (alert (strcat "選択セットが含まれています: " (vla-get-ObjectName (vla-Item ssetObj I))))
                (setq I (1+ I))	      
            )))

    ;; 選択セットのオブジェクトを消去。
    (vla-Erase ssetObj)

    ;; 選択セット内のすべてのオブジェクトを一覧表示。
    (if (= (vla-get-Count ssetObj) 0)
        (alert "選択セットは空です")
        (progn
           (setq I 0)
           (while (>= (- (vla-get-Count ssetObj) 1) I)
             (alert (strcat "選択セットが含まれています : " (vla-get-ObjectName (vla-Item ssetObj I))))
            )))
)


関連事項