Vla-appenditems

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年5月3日 (日) 11:15時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-appenditems ''vla-object'' ''Objects'') ; 機能 : 指定されたグループに 1 つ以上の図形を追加する。 ; 引数 :* vl...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-appenditems vla-object Objects)


機能
指定されたグループに 1 つ以上の図形を追加する。


引数
  • vla-object … group の VLAオブジェクト
  • Objects … 追加するオブジェクトの配列。配列は、任意の図形オブジェクトで構成することができる。


戻り値
nil


MEMO
  • グループ内の項目を取得するには、Item メソッドを使用します。
  • グループから個々の項目を除去するには、RemoveItems メソッドを使用する。


サンプル
(vl-load-com)
(defun c:Example_AppendItems()
    ;; いくつかの図形を作成してグループに追加するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; 新しいグループを作成
    (setq groupObj (vla-Add (vla-get-Groups doc) "TEST_GROUP"))
            
    ;; 放射線を作成
    (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 center (vlax-3d-point 5 5 0)
          majAxis (vlax-3d-point 10 20 0)
          radRatio 0.3)
    (setq ellObj (vla-AddEllipse modelSpace center majAxis radRatio))

    (vla-ZoomAll acadObj)
    
    ;; モデル領域のコレクションを反復処理。
    ;; グループに追加するオブジェクトの配列に見つかったオブジェクトを収集する。
    (setq I 0
          totalObjs (vla-get-Count modelSpace))
    (setq appendObjs (vlax-make-safearray vlax-vbObject (cons 0 (- totalObjs 1))))
    (while (>= (- totalObjs 1) I)
        (vlax-safearray-put-element appendObjs I (vla-Item modelSpace I))
        (setq I (1+ I))
    )
    
    ;; オブジェクトの配列をグループに追加。
    (vla-AppendItems groupObj appendObjs)
    
    (vla-Regen doc acActiveViewport)
)

関連事項