CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

相关分类

ArrayRectangular Method (ActiveX)

2023-1-4 11:43| 发布者: admin| 查看: 703| 评论: 0|来自: AutoCAD

摘要: 创建对象的二维或三维矩形数组。

创建对象的二维或三维矩形数组。

支持的平台:仅窗口

签名

工 务 局:

RetVal = object.ArrayRectangular(NumberOfRows, NumberOfColumns, NumberOfLevels, DistBetweenRows, DistBetweenColumns, DistBetweenLevels)
对象

类型:所有图形对象

此方法适用的对象。

行数

访问:仅输入

类型:

矩形数组中的行数。这必须是正数。如果此数字为 1,则列数必须大于 1。

列数

访问:仅输入

类型:

矩形数组中的列数。这必须是正数。如果此数字为 1,则行数必须大于 1。

级别数

访问:仅输入

类型:

3D 阵列中的级别数。

DistBetweenRows

访问:仅输入

类型:

行之间的距离。如果行之间的距离为正数,则行将从基实体向上添加。如果距离为负数,则向下添加行。

DistBetweenColumns

访问:仅输入

类型:

列之间的距离。如果列之间的距离为正数,则列将添加到基实体的右侧。如果距离为负数,则列将添加到左侧。

级别之间的距离

访问:仅输入

类型:

数组级别之间的距离。如果标高之间的距离为正数,则从基本图元沿正方向添加标高。如果距离为负数,则在负方向上添加水平。

返回值(RetVal)

类型:变体(对象数组)

新创建的对象的数组。

言论

对于 2D 数组,请指定数、列数、之间和之间。要创建 3D 数组,请同时指定级别数和级别之间

矩形数组是通过将选择集中的对象复制适当的次数来构造的。如果定义一行,则必须指定多个列,反之亦然。

假定选择集中的对象位于左下角,并且数组在向上和右侧生成。如果行之间的距离为负数,则向下添加行。如果列之间的距离为负数,则列将添加到左侧。

AutoCAD 沿由当前捕捉旋转角度定义的基线构建矩形阵列。默认情况下,此角度为零,因此矩形数组的行和列相对于XY绘图轴是正交的。您可以通过将捕捉旋转角度设置为非零值来更改此角度并创建旋转阵列。为此,请使用属性。SnapRotationAngle



Rectangular array with NumberOfRows = 4, NumberOfColumns = 3, DistBetweenRows = a, DistBetweenColumns = b. The base entity is represented in blue.

Note: You cannot execute this method while simultaneously iterating through a collection. An iteration will open the work space for a read-only operation, while this method attempts to perform a read-write operation. Complete any iteration before you call this method.

AttributeReference: You should not attempt to use this method on objects. objects inherit this method because they are one of the drawing objects, however, it is not feasible to perform this operation on an attribute reference. AttributeReferenceAttributeReference

Examples

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.")
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-12 11:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部