Vla-arrayrectangular

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年10月25日 (日) 03:55時点におけるGizmon (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla- vla-object NumberOfRows NumberOfColumns NumberOfLevels [DistBetweenRows DistBetweenColumns])


機能
オブジェクトの 2 次元または 3 次元の矩形状配列複写を作成する。


引数
  • vla-object … VLAオブジェクト(すべての図形)
  • NumberOfRows … 矩形状配列複写の行数。正数。この数値が 1 の場合、NumberOfColumns は 1 より大きくなければならない。
  • NumberOfColumns … 矩形状配列複写の列数。正数。この数値が 1 の場合、NumberOfRows は 1 より大きくなければならない。
  • NumberOfLevels … 3D 配列のレベル数。
  • DistBetweenRows … 行の間隔。行の間隔が正数の場合、基本図形から上方へ行が追加される。間隔が負数の場合、行は下方へ追加される。
  • DistBetweenColumns … 列の間隔。列の間隔が正数の場合、基本図形から右方向に列が追加される。間隔が負数の場合、列は左方向に追加される。
  • DistBetweenLevels … 配列レベルの間隔。レベルの間隔が正数の場合、基本図形から正の方向にレベルが追加される。間隔が負数の場合、負の方向に追加される。


戻り値
新しく作成されるオブジェクトの配列。


注意

  • 2D 配列の場合は、NumberOfRows、NumberOfColumns、DistBetweenRow、DistBetweenColumns を指定する。3D 配列を作成する場合は、その他に NumberOfLevels と DistBetweenLevels も指定する。
  • 矩形状配列複写は、選択セット内のオブジェクトを何回か反復して複写することにより構築される。つまり行を 1つ定義したら、複数の列を指定するといった具合になる。
  • 選択セットのオブジェクトは左下コーナーにあるものとみなされ、配列はそのオブジェクトの上および右に向かって生成される。行間が負の値の場合、行は下方に追加される。列の間隔が負数の場合、列は左向きに追加される。
  • CAD では、現在のスナップ回転角度によって定義されたベースラインに沿って、矩形状配列複写が作成される。この角度の既定値は 0 であり、したがって矩形状配列の行と列は図面の X 軸と Y 軸に対し直角になる。この角度を変更してスナップ回転角度を 0 以外の値に設定すれば、回転した配列を作成できる。それには、SnapRotationAngle プロパティを使用する。
  • コレクション内で何度も繰り返しながら、このメソッドを実行できない。このメソッドは読み書きの操作を行うが、繰り返し処理を実行すると読み出し専用の作業領域が開いてしまうため、このメソッドを呼び出す前に、繰り返し処理を完了させる必要がある。
  • AttributeReference オブジェクトにこのメソッドを使用するべきではない。AttributeReference オブジェクトがこのメソッドを継承しているのは、図面オブジェクトの 1 つだからだが、属性参照でこの処理を実行することはできない。


サンプル
(vl-load-com)
(defun c:Example_ArrayRectangular()
    ;; 円を作成して矩形配列を行うサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    ;; 円を作成
    (setq center (vlax-3d-point 2 2 0)  
          radius 0.5)

    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq circleObj (vla-AddCircle modelSpace center radius))
    (vla-ZoomAll acadObj)

    (alert "円を矩形配列します。")

    ;; 矩形配列の設定
    (setq numberOfRows 5
          numberOfColumns 5
          numberOfLevels 2
          distanceBwtnRows 1.0
          distanceBwtnColumns 1.0
          distanceBwtnLevels 1.0)

    ;; 配列の作成
    (setq retObj (vla-ArrayRectangular circleObj numberOfRows numberOfColumns numberOfLevels
		                                 distanceBwtnRows distanceBwtnColumns distanceBwtnLevels))

    (vla-ZoomAll acadObj)
    (alert "矩形配列しますた")
)

関連事項