オブジェクトの 2 次元または 3 次元の矩形状配列複写を作成します。
サポートされているプラットフォーム: Windows のみ
VBA:
RetVal = object.ArrayRectangular(NumberOfRows, NumberOfColumns, NumberOfLevels, DistBetweenRows, DistBetweenColumns, DistBetweenLevels)
タイプ: すべての図形オブジェクト
このメソッドが適用されるオブジェクト。
アクセス: 入力のみ
タイプ: 長整数型
矩形状配列複写の行数。正数。この数値が 1 の場合、NumberOfColumns は 1 より大きくなければなりません。
アクセス: 入力のみ
タイプ: 長整数型
矩形状配列複写の列数。正数。この数値が 1 の場合、NumberOfRows は 1 より大きくなければなりません。
アクセス: 入力のみ
タイプ: 長整数型
3D 配列のレベル数。
アクセス: 入力のみ
タイプ: 倍精度浮動小数点数型
行の間隔。行の間隔が正数の場合、基本図形から上方へ行が追加されます。間隔が負数の場合、行は下方へ追加されます。
アクセス: 入力のみ
タイプ: 倍精度浮動小数点数型
列の間隔。列の間隔が正数の場合、基本図形から右方向に列が追加されます。間隔が負数の場合、列は左方向に追加されます。
アクセス: 入力のみ
タイプ: 倍精度浮動小数点数型
配列レベルの間隔。レベルの間隔が正数の場合、基本図形から正の方向にレベルが追加されます。間隔が負数の場合、負の方向に追加されます。
タイプ: バリアント型(オブジェクトの配列)
新しく作成されるオブジェクトの配列。
2D 配列の場合は、NumberOfRows、NumberOfColumns、DistBetweenRow、DistBetweenColumns を指定します。3D 配列を作成する場合は、その他に NumberOfLevels と DistBetweenLevels も指定します。
矩形状配列複写は、選択セット内のオブジェクトを何回か反復して複写することにより構築されます。つまり行を 1 つ定義したら、複数の列を指定するといった具合です。
選択セットのオブジェクトは左下コーナーにあるものとみなされ、配列はそのオブジェクトの上および右に向かって生成されます。行間が負の値の場合、行は下方に追加されます。列の間隔が負数の場合、列は左向きに追加されます。
AutoCAD では、現在のスナップ回転角度によって定義されたベースラインに沿って、矩形状配列複写が作成されます。この角度の既定値は 0 であり、したがって矩形状配列の行と列は図面の X 軸と Y 軸に対し直角になります。 この角度を変更してスナップ回転角度を 0 以外の値に設定すれば、回転した配列を作成できます。それには、SnapRotationAngle プロパティを使用します。
NumberOfRows = 4、NumberOfColumns = 3 、 DistBetweenRows = a 、DistBetweenColumns = b の矩形状配列複写。基本図形は青で表されます。
AttributeReference:AttributeReference オブジェクトにこのメソッドを使用するべきではありません。AttributeReference オブジェクトがこのメソッドを継承しているのは、図面オブジェクトの 1 つだからですが、属性参照でこの処理を実行することはできません。
VBA:
Sub Example_ArrayRectangular() ' This example creates a circle and then performs ' a rectangular array on that circle. ' Create the circle Dim circleObj As AcadCircle Dim center(0 To 2) As Double Dim radius As Double center(0) = 2#: center(1) = 2#: center(2) = 0# radius = 0.5 Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius) ThisDrawing.Application.ZoomAll MsgBox "Perform the rectangular array on the circle.", , "ArrayRectangular Example" ' Define the rectangular array Dim numberOfRows As Long Dim numberOfColumns As Long Dim numberOfLevels As Long Dim distanceBwtnRows As Double Dim distanceBwtnColumns As Double Dim distanceBwtnLevels As Double numberOfRows = 5 numberOfColumns = 5 numberOfLevels = 2 distanceBwtnRows = 1 distanceBwtnColumns = 1 distanceBwtnLevels = 1 ' Create the array of objects Dim retObj As Variant retObj = circleObj.ArrayRectangular(numberOfRows, numberOfColumns, numberOfLevels, distanceBwtnRows, distanceBwtnColumns, distanceBwtnLevels) ZoomAll MsgBox "Rectangular array completed.", , "ArrayRectangular Example" End Sub
Visual LISP:
(vl-load-com) (defun c:Example_ArrayRectangular() ;; This example creates a circle and then performs ;; a rectangular array on that circle. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; Create the circle (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 "Perform the rectangular array on the circle.") ;; Define the rectangular array (setq numberOfRows 5 numberOfColumns 5 numberOfLevels 2 distanceBwtnRows 1.0 distanceBwtnColumns 1.0 distanceBwtnLevels 1.0) ;; Create the array of objects (setq retObj (vla-ArrayRectangular circleObj numberOfRows numberOfColumns numberOfLevels distanceBwtnRows distanceBwtnColumns distanceBwtnLevels)) (vla-ZoomAll acadObj) (alert "Rectangular array completed.") )